더북(TheBook)

5.1.2 구현 솔루션 선택

다행히 시장에서 검증된 많은 오픈 소스 프로젝트를 선택해서 구성 관리 솔루션을 구현할 수 있다. 표 5-1에서 선택 가능한 후보군을 살펴보고 비교해 보자.

▼ 표 5-1 구성 관리 시스템 구현을 위한 오픈 소스 프로젝트

프로젝트 이름

설명

특징

etcd

Go 언어로 작성된 오픈 소스 프로젝트로 서비스 디스커버리와 키-값 관리에 사용된다. 분산 컴퓨팅 모델을 위해 raft 프로토콜(https://raft.github.io)을 사용한다.

• 매우 빠르며 확장 가능

• 분산 가능

• 명령줄 기반

• 사용 및 설치 용이

유레카(Eureka)

넷플릭스가 만들었으며 엄격한 실전 테스트를 거쳤다. 서비스 디스커버리와 키-값 관리에 사용된다.

• 분산형 키-값 저장소

• 유연하지만 구축하는 데 공수 소요

• 기본적으로 클라이언트의 동적 갱신 기능 제공

콘술(Consul)

하시코프(HashiCorp)가 만들었다. etcd나 유레카와 유사하지만 분산 컴퓨팅 모델에 다른 알고리즘을 사용한다.

• 빠르다.

• 직접 DNS와 통합해서 네이티브 서비스 디스커버리 기능을 제공한다.

• 클라이언트 동적 갱신은 기본 기능에 포함하지 않는다.

주키퍼(Zookeeper)

아파치 프로젝트로 분산 잠금(distributed locking) 기능을 제공한다. 주로 키-값 데이터를 액세스하는 구성 관리 솔루션으로 사용된다.

• 가장 오래되어 실전에서 검증된 솔루션이다.

• 사용하기 가장 복잡하다.

• 구성 관리에 사용 가능하지만 이미 아키텍처에서 사용 중일 때만 고려해야 한다.

스프링 클라우드 구성 서버(Spring Cloud Configuration Server)

오픈 소스 프로젝트로 다양한 백엔드와 함께 전반적인 구성 관리 솔루션을 제공한다.

• 비분산형 키-값 저장소

• 스프링 및 스프링이 아닌 서비스와 긴밀한 통합

• 구성 데이터 저장을 위해 공유 파일 시스템, 유레카, 콘술, 깃 등 다양한 백엔드 사용 가능

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.