구성 관리 사용 사례

구성 관리 사용 사례 (Configuration Management Use Case)

Chef·Puppet 같은 구성 관리 도구는 주로 정적 프로비저닝에 초점을 맞춰요. 이 문서는 Consul이 서비스·노드 상태에 따라 서비스를 동적으로 구성하게 해 주며, 정적 구성과 동적 구성을 어떻게 함께 활용하는지 설명할게요.

출처: 문서

본문

예시: Chef, Puppet

구성 관리 도구는 많지만 일반적으로 정적 프로비저닝에 초점을 맞춥니다. Consul은 서비스와 노드 상태를 기반으로 서비스를 동적으로 구성할 수 있게 해 줍니다. 정적 구성과 동적 구성은 모두 중요하며 잘 함께 작동합니다. Consul은 다양한 기능을 제공하므로 때로는 그 기능이 다른 구성 관리 도구와 겹치기도 합니다.

예를 들어 Chef와 Puppet은 서비스 디스커버리 메커니즘을 구축할 수 있는 구성 관리 도구입니다. 그러나 구성 정보가 정적인 것만 지원합니다. 결과적으로 업데이트를 구현하는 데 걸리는 시간은 전환(conversion) 실행 빈도(몇 분에서 몇 시간)에 따라 달라집니다. 또한 이러한 도구는 구성에 시스템 상태를 통합할 수 없습니다. 이로 인해 로드 밸런서가 비정상 노드에 트래픽을 보내 문제를 악화시킬 수 있습니다. 이러한 도구로 여러 데이터센터를 지원하는 것도 까다롭습니다. 중앙 서버 그룹이 모든 데이터센터를 관리해야 하기 때문입니다.

Consul의 서비스 디스커버리 계층은 서비스 상태를 동적으로 추적하고 대응하도록 특별히 설계되었습니다. 통합 헬스 체크를 사용하면 Consul이 비정상 노드에서 트래픽을 돌려 시스템과 서비스가 정상적으로 복구되게 할 수 있습니다. 또한 Consul의 서비스 디스커버리 계층은 Terraform과 함께 작동합니다. Consul-Terraform-Sync (CTS)는 각 서비스의 동적 변경에 따라 네트워크 인프라에 대한 업데이트를 자동화합니다. 예를 들어 서비스가 스케일 업/다운되면 CTS가 Terraform을 트리거하여 방화벽이나 로드 밸런서를 최신 변경 사항을 반영하도록 업데이트할 수 있습니다. 또한 각 데이터센터가 독립적으로 실행되므로 여러 데이터센터 지원은 단일 데이터센터 지원과 다르지 않습니다.

Consul은 다른 구성 관리 도구의 대체물이 아닙니다. 이러한 도구는 Config을 포함한 애플리케이션 설정에 여전히 중요합니다. 정적 프로비저닝은 기존 도구로 가장 잘 관리되며, Consul은 동적 구성과 서비스 디스커버리를 활용할 수 있게 해 줍니다.

구성 관리와 클러스터 관리 도구를 분리하면 더 간단한 워크플로를 활용할 수 있습니다:

  • 서비스 또는 구성 변경에 더 이상 주기적 실행이 필요하지 않습니다.
  • Chef 레시피와 Puppet 매니페스트는 전역 상태가 필요하지 않으므로 더 간단합니다.
  • 구성 관리 실행이 전역 상태를 요구하지 않으므로 인프라를 불변(immutable)으로 만들 수 있습니다.

더 알아보기 (Learn more)