Scikit Web

PostgreSQL PGPool Active StandBy Using Docker 개발 환경 구축 - 1 본문

Backend/PostgresSQL

PostgreSQL PGPool Active StandBy Using Docker 개발 환경 구축 - 1

Keun0 2023. 2. 16. 16:21
728x90
반응형

무중단 서비스를 제공하기 위해 시스템을 구축하던 중 PostgreSQL은 Active - Active 모드와 Active -StandBy 모드가 지원된다는 것을 확인하고 구축해보았다.

 

Active - Standby mode 의 경우 Active 서버는 쓰기/업데이트 가능, StandBy 서버는 읽기만 가능한 상태이다.

 

시스템 OS

Ubuntu 22.04

 

개발 환경

PostgreSQL12 + Docker : Primary Server

PostgreSQL12 + Docker : Standby Server

PgPool2

 

으로 구성 하였다.

 

구축 테스트 방법은 PgPool2 실행 -> Active 서버(Primary) 실행 -> Standby 서버 실행 -> Active 서버 Down -> 동작 검증 -> 재설정의 순서로 하였다.

 

우선 PgPool2 를 설치한다

apt update
apt install pgpool2

최신 버전인 4버전으로 설치가 진행 된다.

 

정상적으로 설치가 완료 되면 아래 명령어로 실행 상태를 확인한다.

systemctl status pgpool2.service

 

도커를 이용하여 Primary PostgreSQL 서버를 실행한다

version: '3.7'

services:
  postgres.primary-srv:
    image: postgres:12
    restart: alway
    environment:
      POSTGRES_DB: default_db
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    volumes:
      - postgresql.primary-srv:/var/lib/postgresql/data
    ports:
      - 0.0.0.0:5432
    logging:
      driver: 'json-file'
      options:
        max-size: '200k'
        max-file: '10'

volumes:
  postgresql.primary-srv:

 

도커를 이용하여 Standby PostgreSQL 서버를 실행한다

version: '3.7'

services:
  postgres.standby-srv:
    image: postgres:12
    restart: always
    environment:
      POSTGRES_DB: default_db
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    volumes:
      - postgresql.standby-srv:/var/lib/postgresql/data
    ports:
      - 0.0.0.0:5433:5432
    logging:
      driver: 'json-file'
      options:
        max-size: '200k'
        max-file: '10'

volumes:
  postgresql.standby-srv:

 

기본적으로 PostgreSQL 과  PgPool2 를 연동하기 위한 설치는 완료 하였다

728x90
반응형
Comments