Patroni 및 등 - AWS 권장 가이드

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

Patroni 및 등

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

또한 Patroni는 PostgreSQL 서비스의 상태와 각 DB 인스턴스 또는 노드의 역할을 확인하는 APIs를 제공합니다. 각 DB 인스턴스에 Patroni를 설치해야만 etcd(분산 구성 스토어)와 함께 사용할 수 있습니다.

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

  1. 다양한 복제 모드(동기식 및 비동기식) 간에 쉽게 전환할 수 있습니다.

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

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

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

아키텍처

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

Patroni 아키텍처

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

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

  2. PostgreSQL 데이터베이스를 설치합니다.

  3. EC2 인스턴스에 Patroni를 설치하고 구성합니다.

  4. Network Load Balancer를 생성하고 구성합니다.

  5. HA를 가져오도록 각 PostgreSQL 데이터베이스를 etcd (patroni용)로 구성합니다.

고려 사항

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

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

  • Patroni에는 가파른 학습 곡선과 선택할 수 있는 다양한 구성 옵션이 있습니다.

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