View a markdown version of this page

Patroni 및 etcd - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Patroni 및 etcd

자동 장애 조치 관리를 통해 HA를 제공하기 위한 솔루션으로 Patroni를 사용하는 것이 좋습니다. Patroni는 PostgreSQL 데이터베이스의 오픈 소스 자동 장애 조치 관리자입니다. 액세스 가능성을 극대화하기 위해 Python과 etcd와 같은 분산 구성 저장소를 사용함으로써 Patroni를 템플릿으로 사용하여 사용자 지정 HA 솔루션을 생성할 수 있습니다.

또한 Patroni는 PostgreSQL 서비스의 상태와 각 DB 인스턴스 또는 노드의 역할을 확인하는 API를 제공합니다. etcd(분산 구성 저장소)로 작업하려면 각 DB 인스턴스에 Patroni를 설치해야 합니다.

기본적으로 Patroni는 비동기 복제를 위해 PostgreSQL을 구성합니다. 복제 방법 선택은 비즈니스 고려 사항에 따라 달라집니다. Patroni는 고도로 구성 가능하기 때문에 HA를 설정하는 데 가장 적합한 도구 중 하나입니다. 다음은 Patroni 사용의 몇 가지 장점입니다.

  1. 이를 통해 다양한 복제 모드(동기식 및 비동기식) 사이를 쉽게 전환할 수 있습니다.

  2. Patroni에는 풍부한 REST API가 있습니다. Patroni는 자체적으로이 API를 사용하여 HAProxy 또는 다른 로드 밸런서를 사용하여 HTTP 상태 확인을 수행함으로써 리더 레이스 중에 장애 조치를 수행합니다.

  3. Patroni는 분산 구성 저장소(DCS)에서 계속 클러스터 상태를 유지하면서 클러스터 관리를 일시적으로 중단해야 합니다. 예를 들어 수동 유지 관리 기간에 장애 조치가 발생하지 않도록 할 수 있습니다. Patroni는 원치 않는 가동 중지 시간을 방지할 수 있도록 일시 중지 및 재개 명령을 제공합니다.

  4. 브레인 분할 문제를 방지하려면 리더 키가 DCS에서 만료된 후 PostgreSQL이 트랜잭션 커밋을 수락하지 않도록 해야 합니다. 또한 Patroni는 브레인 분할 문제를 방지하기 위해 Watchdog과 같은 디바이스를 지원합니다. 브레인 분할 문제 및 Watchdog에 대한 자세한 내용은 Patroni 설명서의 Watchdog support를 참조하세요.

아키텍처

다음 다이어그램에서는 Patroni 및 etcd를 사용하여 Amazon EC2에서 온프레미스 PostgreSQL 데이터베이스에 대한 HADR을 설정하기 위한 아키텍처를 보여줍니다.

Patroni 아키텍처

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. EC2 인스턴스를 생성합니다.

  2. PostgreSQL 데이터베이스를 설치하세요.

  3. EC2 인스턴스에 Patroni를 설치 및 구성하세요.

  4. Network Load Balancer를 생성 및 구성하세요.

  5. HA를 가져오도록 etcd(Patroni용)에서 각 PostgreSQL 데이터베이스를 구성하세요.

고려 사항

Patroni를 사용하여 마이그레이션을 시작하기 전에 다음과 같은 제한 사항을 고려하는 것이 좋습니다.

  • 사용자가 Patroni를 사용하려면 PostgreSQL 관리 및 DCS 전문 지식이 있어야 합니다.

  • Patroni의 학습 곡선은 가파르며, 여기에서 다양한 구성 옵션을 선택할 수 있습니다.

  • Patroni 전용 추가 포트가 있어야 합니다.