※ Comparison of PostgreSQL HA Tools.
안녕하세요. 듀스트림입니다.
오늘은 PostgreSQL의 HA(High Availability) 도구들을 살펴보겠습니다.
현재 PostgreSQL에서 가장 많이 사용되고 있는 오픈 소스 HA 도구는 Patroni와 repmgr이 있습니다.
두 도구의 차이를 아래 표로 비교해 보았습니다.
구분 | Patroni | repmgr |
최소 노드 수 | 3개 이상 | 2개 이상 (Witness 노드 사용 시 3개 이상) |
스플릿 브레인 방지 여부 | ✅ (외부 키-값 스토어 사용) | 🟡 (repmgr만으로는 완전 방지 불가) |
외부 의존성 | Etcd, Consul, Zookeeper 등 필요 | 완전한 스플릿 브레인 방지 시 외부 의존 필요 |
자동 장애 조치 | ✅ | ✅ (repmgrd 사용 시 가능) |
자동 클러스터 복구 | ✅ | 🟡 (재동기화 수동 조치 필요) |
VIP 관리 | 외부 도구 필요 | 외부 도구 필요 |
로드밸런싱 | 외부 도구 필요 | 외부 도구 필요 |
확장성 | 매우 우수 (동적 노드 추가 가능) | 제한적 |
커뮤니티 지원 | 활발한 오픈 소스 커뮤니티 | 활발하지 않음 |
정리하자면,
1. 2개의 노드만 사용해야 하는 환경에서는 repmgr을 선택하는 것이 적합합니다.
• Patroni는 etcd, Consul과 같은 외부 의존성이 필요하며, 최소 3개 이상의 노드 구성을 권장합니다.
• repmgr은 2개의 노드만으로도 고가용성(HA)을 구현할 수 있습니다.
2. 3개 이상의 노드를 사용할 수 있고, 확장이 어려운 On-Premise 환경에서는 두 도구 모두 사용할 수 있습니다.
• 가볍고 단순한 구성을 원한다면 repmgr이 더 나은 선택일 수 있습니다.
→ witness 노드 사용 시 Primary 노드의 완전한 네트워크 단절을 제외한 트러블 상황에서의 스플릿 브레인을 방지할 수 있습니다. (repmgr은 Primary Demote 미지원)
• 안정성과 자동화 수준이 더 중요하다면 Patroni가 적합합니다.
→ Patroni는 자동화된 리더 선출, 장애 조치, Split-Brain 방지 등 기능이 더 강력하지만, 외부 종속성과 운영 복잡도가 더 높습니다.
3. 3개 이상의 노드를 사용할 수 있으며, 확장이 필요한 시스템(클라우드 환경 등)에서는 Patroni가 더 적합합니다.
• Patroni는 동적으로 노드를 추가할 수 있는 유연성을 제공하며, 확장성이 뛰어납니다.
• 노드를 추가할 때 복잡한 절차 없이 자동으로 클러스터에 합류할 수 있습니다.
이번 포스팅은 여기까지입니다. 다음 포스팅도 기대해주세요!
'PostgreSQL' 카테고리의 다른 글
PostgreSQL: repmgr로 고가용성(HA) 구성 방법 (0) | 2024.12.19 |
---|---|
PostgreSQL: 쉘 스크립트로 PostgreSQL 고가용성(HA) 구현 (1) | 2024.12.11 |
PostgreSQL: 이중화 장애 처리, 원상 복구 방법 (32) | 2024.12.09 |
PostgreSQL: DBMS 이중화 구성 방법 (29) | 2024.12.05 |
PostgreSQL: postgresql.conf 파라미터 설정 방법 (33) | 2024.12.02 |