상용 환경에서 DB 아키텍처를 설계/구성할 때, '고가용성'에 대한 고려는 필수일 것이다. 고 가용성(HA)은 장애 상황 발생 시 대응(Fail Over/Fail Back 등)이라는 관점도 있지만, 사전에 장애 가능성을 최소화(적절한 부하 분산 등)한다라는 접근법도 고려해야 한다.
PostgreSQL를 상용 DB로 활용 시, 부하 분산 아키텍처를 구성하는데 활용할 수 있는 옵션들을 살펴보고자 한다.
pgpool II 활용 방식
postgresql 특화 오픈소스 미들웨어인 pgpool II를 활용한 방식이다. pgpool은 postgresql 서버와 client 사이에서 'Connection Pool관리,로드밸런싱(read 부하분산)'역할을 지원해 준다.

보통 PGPool II를 활용한 구성은 위와 같이, PGPool용 노드를 PostgreSQL DB와 별도 클러스터(master/slave)로 구성하는 것 같다.
하지만 아래 그림과 같이 PostgreSQL DB 서버2대에 단촐하게 구성하는 방식도 공식홈에 소개가 되어 있다.

PGPool공홈에 소개된 최소 단위 구성(서버2대,Master/Slave)