기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Patroni 및 etcd
자동 장애 조치 관리를 통해 HA를 제공하기 위한 솔루션으로 Patroni
또한 Patroni는 PostgreSQL 서비스의 상태와 각 DB 인스턴스 또는 노드의 역할을 확인하는 API를 제공합니다. etcd(분산 구성 저장소)로 작업하려면 각 DB 인스턴스에 Patroni를 설치해야 합니다.
기본적으로 Patroni는 비동기 복제를 위해 PostgreSQL을 구성합니다. 복제 방법 선택은 비즈니스 고려 사항에 따라 달라집니다. Patroni는 고도로 구성 가능하기 때문에 HA를 설정하는 데 가장 적합한 도구 중 하나입니다. 다음은 Patroni 사용의 몇 가지 장점입니다.
-
이를 통해 다양한 복제 모드(동기식 및 비동기식) 사이를 쉽게 전환할 수 있습니다.
-
Patroni에는 풍부한 REST API가 있습니다. Patroni는 자체적으로이 API를 사용하여 HAProxy
또는 다른 로드 밸런서를 사용하여 HTTP 상태 확인을 수행함으로써 리더 레이스 중에 장애 조치를 수행합니다. -
Patroni는 분산 구성 저장소(DCS)에서 계속 클러스터 상태를 유지하면서 클러스터 관리를 일시적으로 중단해야 합니다. 예를 들어 수동 유지 관리 기간에 장애 조치가 발생하지 않도록 할 수 있습니다. Patroni는 원치 않는 가동 중지 시간을 방지할 수 있도록 일시 중지 및 재개 명령을 제공합니다.
-
브레인 분할 문제를 방지하려면 리더 키가 DCS에서 만료된 후 PostgreSQL이 트랜잭션 커밋을 수락하지 않도록 해야 합니다. 또한 Patroni는 브레인 분할 문제를 방지하기 위해 Watchdog과 같은 디바이스를 지원합니다. 브레인 분할 문제 및 Watchdog에 대한 자세한 내용은 Patroni 설명서의 Watchdog support
를 참조하세요.
아키텍처
다음 다이어그램에서는 Patroni 및 etcd를 사용하여 Amazon EC2에서 온프레미스 PostgreSQL 데이터베이스에 대한 HADR을 설정하기 위한 아키텍처를 보여줍니다.
이 다이어그램은 다음 워크플로를 보여줍니다.
-
EC2 인스턴스를 생성합니다.
-
PostgreSQL 데이터베이스를 설치하세요.
-
EC2 인스턴스에 Patroni를 설치 및 구성하세요.
-
Network Load Balancer를 생성 및 구성하세요.
-
HA를 가져오도록 etcd(Patroni용)에서 각 PostgreSQL 데이터베이스를 구성하세요.
고려 사항
Patroni를 사용하여 마이그레이션을 시작하기 전에 다음과 같은 제한 사항을 고려하는 것이 좋습니다.
-
사용자가 Patroni를 사용하려면 PostgreSQL 관리 및 DCS 전문 지식이 있어야 합니다.
-
Patroni의 학습 곡선은 가파르며, 여기에서 다양한 구성 옵션을 선택할 수 있습니다.
-
Patroni 전용 추가 포트가 있어야 합니다.