
데브옵스
헤맨 만큼 고도화된, Runway DB 인프라 구성 개선기
두줄요약
Runway의 PostgreSQL 인프라를 K8s 환경에 맞게 개선한 과정을 정리했습니다. Bitnami HA의 Split Brain 문제를 겪은 뒤 CloudNativePG로 전환해 자동 복구와 안정성을 높였습니다.
문제 상황
- Runway 초기 PostgreSQL을 K8s Deployment로 단일 Pod 배포해 운영 안정성과 고가용성 요구를 충족하지 못한 상태
- DB 장애 시 전체 서비스 영향이 커서 HA와 복구 자동화가 필요한 상황
원인 분석
- 데이터베이스는 stateful 애플리케이션인데 stateless 워크로드인 Deployment로 다루려는 구조적 한계
- Bitnami PostgreSQL-HA에서도 장애 시 Split Brain, 불완전한 failover, 재기동 시 데이터 재동기화 부담 같은 문제 발생
- 폐쇄망 설치 환경에서 수동 대응이 어렵고 자동화 수준이 높은 구성이 필요
해결 방법
- Bitnami Helm Chart의 PostgreSQL-HA에서 CloudNativePG로 전환 검토
- K8s API 기반 Operator로 상태 감지, failover, 복구를 자동화하는 방향 채택
- primary 장애 시 standby 승격, readiness와 WAL receiver 상태를 활용한 전환, standby 재생성 시 효율적인 복구 흐름 적용
성능/운영 포인트
- 스트리밍 복제로 primary와 standby 간 데이터 일관성 유지
- 폐쇄망 환경을 고려한 높은 자동화 수준의 운영 구조
- Split Brain 완화와 클러스터 복구 절차의 안정성 강화
