AWS EMR

이 문서는 을 갖췄다는 가정하에 작성했다.맵리듀스(MapReduce)는 분산&병렬처리 알고리즘을 이용 클러스터링 환경에서 빅 데이터 세트를 처리하기 위한 프로그래밍 모델및 관련 구현체를 일컫는다. 맵리듀스 프로그래밍 관련 구현체중 가장 유명한 구현체가 하둡 맵리듀스다. 하둡 스트리밍은 Hadoop에서 배포하는 유틸리티다. 이 유틸리티를 이용하면, mappe...

Consul Multi node 설치

에 대해서 간단히 살펴봤으니, 클러스터를 구성해보려 한다. KVM을 이용해서 3개의 consul 노드를 실행한다. 로 쉽게 설치할 수 있겠지만 노가다를 뛰는 것도 도움이 될 것 같아서. 노드는 우분투 리눅스 서버 18.10을 설치한다. 호스트 운영체제에서 Go 예제 애플리케이션을 만들어서 실행한다.노드 이름은 consul01, consul02, consu...

Protocol Buffer

대대적인 수정 작업 중 .. 2019년 8월 20일Protocol Buffer(이하 PB)는 구글에서 개발한 직렬화 프로토콜이다. 구글 얘네들이 검색 색인 작업에 사용하려고 만들었다고 한다. 다양한 형태의 데이터를 대량으로 빠르게 직렬화&역직렬화 할 수 있다고 한다. 구글에서 다루는 데이터가 워낙에 다양하고 양도 많으니 당연한 요구사항 이었겠지. 을 대체...

Docker swarm

도커를 다룬지 3년이 넘어가는 것 같지만 스웜(Swarm)을 사용하지 않았다. MesOS나 Rancher 같은 녀석을 사용하거나 직접 만들어서 사용하다 보니, 필요성을 느끼지 못했다. 뒤늦게? 스웜을 써보려는 이유는 스웜위에 Spark를 올리기 위해서다. MesoS위에서도 올릴 수 있겠지만 Spark 스터디 용도로 설치하려는데, 너무 나가는 것 같아서 간단...

Docker로 Kafka 클러스터 만들기

이 문서는 Kafka에 대한 최소한의 경험을 가지고 있는 것으로 가정한다. 아래의 지식이 필요하다. 에 대한 기본 이해 에 대한 기본 이해 컨슈머와 프로듀서 파티션 컨슈머 그룹의 경우 가용 영역 갯수 만큼의 브로커를 만들어야 한다. 테스트하려는 도쿄리전은 3개의 가용 영역으로 구성돼 있으니 최소 사양으로 만들 경우 (kafka실행을 위한 최소 스펙)kafk...

Kafka 시작하기

메시지 애플리케이션은 어떤 애플리케이션에서 다른 애플리케이션으로 데이터를 보내는 시스템이다. 메시지 시스템은 두 애플리케이션 사이에서 전령 역할을 한다. 메시지의 전송과 수신은 메시지 시스템이 안전하게 처리해 줄 것이라는 것을 보증한다. 따라서 메시지 애플리케이션은 메시지의 송/수신 과정에 신경 쓸 필요 없이, 메시지(데이터)에만 신경을 쓰면 된다. 메시...

VPC Private link를 이용한 SaaS 개발

PrivateLink는 VPC 내부에서 외부에 있는 다른 서비스를 연결하기 위한 기술이다. PrivateLink를 이용하면, 퍼블릭 네트워크(인터넷)을 거치지 않고도 AWS의 서비스와 다른 서비스(다른 계정의 네트워크, 다른 VPC에 존재하는)를 호출 할 수 있다.PrivateLink는 아래와 같은 장점이 있다. 트래픽보호 간단한 네트워크 구성 마이그레...

The Behavior of Channels

처음 go의 채널을 사용 했을 때, 나는 채널을 데이터 구조체(스트럭처)처럼 다루는 실수를 했다. 채널은 고루틴(goroutine)사이에서 큐를 제공하고, 자동으로 데이터를 동기화 해주는 것이라고 보았기 때문이다. 이렇게 채널을 구조체로 보는 것 때문에, 복잡하고 나쁜 동시성 코드를 만들게 됐다. 시간이 지나면서 채널을 스트럭처로 보는 대신, 행위에 중점...

Kubernets Concepts

쿠버네티스(혹은 K8s)는 컨테이너기반 애플리케이션과 서비스의 운영, 디플로이 자동화, 스케일링을 위한 소프트웨어 도구다. 도커 컨테이너 기반의 운영 툴 중에서는 가장 빠르게 성장하고 있는 소프트웨어라고 할 수 있다. 2014년 구글은 K8s를 오픈소스로 전환했다. 쿠버네티스는 아래의 목적으로 사용하기 위한 기능들을 제공한다. 컨테이너 플랫폼 마이크로 서...

etcd

etcd는 분산 key-value store다. CoreOS에서 coreos 인스턴스의 클러스터를 관리하기 위해서 사용했으며, 구글의 클러스터 컨테이너 관리 소프트웨어인 Kubernetes의 백엔드 시스템으로 사용하면서 더 유명해 졌다. 오픈소스로 GitHub에서 다운로드 해서 사용 할 수 있다. etcd는 네트워크로 연결된 노드들 중 리더를 선정해서 클러...