Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
웹서버/DB

Patroni와 Etcd를 활용한 PostgreSQL 고가용성 클러스터 구축

Patroni는 Etcd 분산 설정 저장소를 통해 PostgreSQL 자동 장애조치를 구현하며, Etcd의 Raft 합의 알고리즘으로 클러스터 상태 일관성을 보장합니다. 이 조합은 리더 선출, 스트리밍 복제, 동적 설정 관리로 프로덕션급 고가용성 인프라를 제공합니다.

2026.09.08  ·  28회  · 

Patroni-Etcd 클러스터 아키텍처의 핵심 원리

Patroni는 Python 기반의 PostgreSQL 고가용성 템플릿으로, Etcd를 분산 설정 저장소(DCS)로 활용하여 클러스터 상태를 중앙에서 관리합니다. Etcd는 리더-팔로워 모델을 기반으로 Raft 합의 알고리즘을 통해 모든 노드의 데이터 일관성을 보장하며, Patroni의 모든 노드가 Etcd에 접근하여 리더 선출 및 복제 상태를 조정합니다.

리더 선출 메커니즘과 동적 설정

Patroni 노드들은 Etcd의 리더 키(leader key)를 두고 경합하며, 주 데이터베이스는 정기적으로 이 키를 갱신하여 리더십을 유지합니다. TTL(Time-To-Live) 설정에 따라 주 노드가 응답하지 않으면 자동으로 장애조치가 실행되며, 스탠바이 노드 중 가장 최신 데이터를 보유한 노드가 승격됩니다. 동적 설정은 Etcd에 저장되어 patronictl 또는 REST API를 통해 클러스터 전체에 비동기적으로 배포됩니다.

실무 주의점: 구성 및 복제 모드

최소 3개 노드의 Etcd 클러스터 구성이 권장되며, Etcd와 PostgreSQL 노드를 분리하면 한쪽 노드 재시작 시 전체 복원력이 저하되지 않습니다. 비동기 복제의 maximum_lag_on_failover 설정으로 장애조치 전 복제 지연을 제한할 수 있으며, 동기 복제 모드는 데이터 내구성을 높이되 쓰기 지연이 발생합니다. 따라서 비즈니스 요구사항에 맞춰 복제 모드와 타임아웃 값(loop_wait, ttl, retry_timeout)을 신중히 조정해야 합니다.

참고 출처: Patroni Contributors
WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원