회사에 3TB 디스크가 박힌 4대의 서버가 있었다.
그래서 postgres 데이터웨어하우스를 만들 계획이다.
보통 데이터웨어하우스는 HADOOP이나
요새는 클라우드로 구굴의 빅쿼리나 AWS의 레드시프트를 쓴다.
근데 내가 할거는 그렇게 비즈니스임팩트가 크지 않다.
CAFE24 API에서 자사몰 데이터를 수집하고
경쟁사 데이터와 비교해서 보는거다
자세한 내용은 알려드릴수 없다 ㅎㅎ
아무튼 데이터웨어하우스가 필요하다.
오픈소스중에 그래서 대용량 처리에 좋은 POSTGRES를 채택했고
HA를 구성해 보겠다.
POSTGRES 클러스터를 만들어 준다.
각 서버에 데이터 복제, FAILOVER 정도를 사용할 계획이다.
딱 장애 대응까지만이다.
나머지 부하분산, 쿼리캐싱 기능이 있지만 안쓸 계획이다.
docker image 설치
sudo docker pull bitnami/postgresql:13.1.0
docker pull bitnami/pgpool:4.2.1
master 구성
sudo docker run -tid \
--name postgresql \
-p 5432:5432 \
-e TZ=Asia/Seoul \
-e POSTGRESQL_REPLICATION_MODE=master \
-e POSTGRESQL_REPLICATION_USER=myname \
-e POSTGRESQL_REPLICATION_PASSWORD=1234 \
-e POSTGRESQL_PASSWORD=1234 \
-e POSTGRESQL_DATABASE=myname \
--privileged=true \
-v /data/postgresql:/bitnami/postgresql \
bitnami/postgresql:13.1.0
slave 구성
sudo docker run -tid \
--name postgresql \
-p 5432:5432 \
-e TZ=Asia/Seoul \
-e POSTGRESQL_REPLICATION_MODE=slave \
-e POSTGRESQL_REPLICATION_USER=myname \
-e POSTGRESQL_REPLICATION_PASSWORD=1234 \
-e POSTGRESQL_MASTER_HOST= master_host\
-e POSTGRESQL_PASSWORD=1234 \
-v /data/postgresql:/bitnami/postgresql \
bitnami/postgresql:13.1.0
pgpool 구성
sudo docker run -ti \
--name pgpool \
-p 5432:5432 \
-e TZ=Asia/Seoul \
-e PGPOOL_BACKEND_NODES=0:master_host:5432,1:slave_host:5432 \
-e PGPOOL_POSTGRES_USERNAME=myname \
-e PGPOOL_POSTGRES_PASSWORD=1234 \
-e PGPOOL_ADMIN_USERNAME=admin \
-e PGPOOL_ADMIN_PASSWORD=1234 \
-e PGPOOL_ENABLE_LOAD_BALANCING=yes \
-e PGPOOL_ENABLE_STATEMENT_LOAD_BALANCING=yes \
-e PGPOOL_NUM_INIT_CHILDREN=10 \
-e PGPOOL_MAX_POOL=1 \
-e PGPOOL_SR_CHECK_USER=myname \
-e PGPOOL_SR_CHECK_PASSWORD=1234 \
bitnami/pgpool:4.2.1