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는 네트워크로 연결된 노드들 중 리더를 선정해서 클러...

Rancher

Rancher는 멀티 호스트에서 컨테이너를 실행하고 관리하기 위한 오픈소스 소프트웨어 플랫폼이다. Rancher를 이용하면 다른 오픈 소스 기술들을 "골 머리 써가면서" 조합할 필요 없이 간단하게 컨테이너 서비스 플랫폼을 만들 수 있다. Rancher는 4개의 주요 컴포넌트들로 구성된다. 많은 사용자들이 다양한 컨테이너 오케스트레이션 및 스케쥴링 프레임워크...

rancher compose

는 편리하긴 하지만 단일 호스트에서만 사용 할 수 있다. 실제 배포는 멀티호스트에서 이루어지기 때문에, 배포목적으로 사용하기는 애매모호하다. Rancher compose는 Docker compose의 멀티 호스트으로 분산된 노드에서의 컨테이너 실행을 관리한다. 따라서 개발과 테스트 뿐만 아니라, 실제 배포 목적으로 까지 사용 할 수 있다. Rancer는 M...

Kafka exactly-once

IoT 관련일을 하고 있다. 클라이언트로 부터 메시지를 수신하는 메시지 게이트웨이, 수집한 메시지를 백앤드 서버로 안전하게 보내기 위한 메시지 큐, 메시지큐에서 데이터를 처리하고 저장하는 부분에 관심을 가지고 있다.IoT 메시지 인프라는 비교적 작은 크기의 메시지를 대량으로처리할 수 있어야 한다. 사람과 사람과의 메시지 특성과는 차이가 있다. 이 분야는 대...

Apache Hive

아파치 하이브는 하둡위에 구축된 데이터 웨어하우스(Data warehouse)소프트웨어 프로젝트다. Hive는 하둡과 통합되며, SQL과 유사한 인터페이스를 이용해서 데이터를 질의 할 수 있다. 분산 시스템에서 SQL 응용 프로그램을 실해앟기 위해서는 MR을 이용해서 직접 SQL 쿼리를 구현해야 한다. 하이브를 이용하면 저수준의 쿼리를 구현할 필요 없이 S...

Hadoop

Hadoop쪽은 관심 밖이였다. 딱히 사용해야 할 일이 없어서였다. 요즘 데이터 수집/처리 쪽 업무를 하게 되면서, 자연스럽게 하둡을 봐야하게 생겼다. 실제 써먹는 걸 목표로 실용적 관점에서 접근하려 한다.가장 유명한 아파치(Apache) 프로젝트 중 하나일 것이다. 안정적이고 확장 가능한 분산 컴퓨팅 구축을 위한 오픈 소스 소프트웨어다. 주요 모듈은 아래...

Rancher Load balancer

Rancher를 프러덕트에 사용한다고 가정해 보자. 가용성과 확장성을 위해서 컨테이너는 반드시 두 개 이상으로 구성이 될 것이다. 그리고 이들 컨테이너는 로드밸런서로 묶일 것이다. 대략 아래와 같은 구성이 될 것이다.이 로드밸런서는 외부에 구성 할 수 있을테고, Rancher cluster에 함께 구성 할 수도 있을 거다. 실제 인터넷 환경에서 어떻게 효율...