백엔드 데이터 인프라 42편 — 운영 설치 바이너리·Docker·관리 서비스

2026-05-17백엔드 데이터 인프라

백엔드 데이터 인프라 42편. PostgreSQL 운영 설치 — 바이너리·Docker·관리 서비스(RDS·Cloud SQL) 옵션 비교 풀어쓴 학습 노트.

📚 백엔드 데이터 인프라 · 42편 — 운영 설치 바이너리·Docker·관리 서비스

이 글은 백엔드 데이터 인프라 시리즈 70편 중 42편이에요. Part 3 운영의 시작. 2편 로컬 설치"개발 PC" 였다면, 이번 42편은 운영 환경 PG 설치 옵션 비교.

운영 PG 4가지 선택

옵션 의미 책임
직접 바이너리 본인 서버 + 패키지 설치 DBA 모두 본인
Docker 컨테이너 + 본인 운영 운영 본인
관리 서비스 AWS RDS·Cloud SQL 등 DB 자체는 클라우드
서버리스 Neon·Supabase 등 거의 모두 클라우드

소규모 = 관리 서비스 (RDS), 중규모 = 관리 서비스 또는 Docker, 대규모 = 직접 바이너리 + 전담 DBA. 한국 회사 대부분 = 관리 서비스.

직접 바이너리 — apt·yum

# Ubuntu·Debian
sudo apt install postgresql-18 postgresql-contrib

# RHEL·CentOS
sudo dnf install postgresql-server postgresql-contrib

# 초기화·시동
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql

장점: 완전한 제어. 단점: OS 설치·튜닝·복구·HA 모두 본인.

Docker — 운영용 설정

# docker-compose.yml
services:
  postgres:
    image: postgres:18
    environment:
      POSTGRES_PASSWORD_FILE: /run/secrets/db_password
      POSTGRES_DB: appdb
    volumes:
      - pgdata:/var/lib/postgresql/data
      - ./postgresql.conf:/etc/postgresql/postgresql.conf
      - ./pg_hba.conf:/etc/postgresql/pg_hba.conf
    command:
      - postgres
      - -c
      - config_file=/etc/postgresql/postgresql.conf
    secrets:
      - db_password
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
      interval: 10s
    ports:
      - "5432:5432"

secrets:
  db_password:
    file: ./secrets/db_password.txt

volumes:
  pgdata:

운영 Docker = secrets·healthcheck·volume·외부 설정 4가지.

AWS RDS — 가장 흔함

[Spring App] → [Application Load Balancer] → [RDS PostgreSQL Primary]
                                                ├→ Read Replica 1
                                                └→ Read Replica 2

장점: - 자동 백업·복구 - Multi-AZ 자동 페일오버 - Read Replica 쉽게 추가 - 패치·업그레이드 자동 - 모니터링 통합 (CloudWatch·RDS Performance Insights)

단점: - 슈퍼유저 권한 X (PG 확장 일부 제한) - 비용 (작은 인스턴스도 월 $50+)

설정 핵심: - db.t4g.medium 작게 시작 → 트래픽 따라 스케일 업 - Multi-AZ = 운영 무조건 - 자동 백업 7~30일

AWS Aurora PostgreSQL — 더 강력

Aurora = AWS 의 "PG 호환 분산 스토리지".

RDS PG Aurora PG
스토리지 EBS 분산·자동 복제 6 copy
백업 디스크 스냅샷 지속적 (PITR)
복제 비동기 거의 동기
페일오버 30~60초 10~30초
비용 기본 1.5~2배
호환성 PG 100% PG 95%+

큰 트래픽·금융·중요 시스템 = Aurora. 일반 = RDS.

Google Cloud SQL·Azure DB

비슷한 관리 서비스. 클라우드 전체 스택에 맞춰 선택. Spring 백엔드 = AWS RDS 가 한국에서 가장 흔함.

서버리스 — Neon·Supabase

[Spring App] → [Neon HTTP API] → [Neon Storage]

특징: - 사용량 만큼 과금 (vs 항상 켜진 RDS) - 자동 sleep·wake - Branching (Git 처럼 DB 브랜치) - 학습·작은 사이드 프로젝트에 좋음

대규모 운영엔 아직 RDS·Aurora 우세.

옵션 선택 룰

시나리오 추천
사이드 프로젝트 Neon·Supabase
스타트업 MVP AWS RDS (작은 인스턴스)
일반 회사 AWS RDS Multi-AZ
큰 트래픽·금융 AWS Aurora
온프레미스 (의무) Docker 또는 직접 바이너리
학습 Docker 로컬

99% 한국 회사 = AWS RDS 또는 Aurora.

환경 분리 — dev·staging·prod

[로컬 개발] → Docker (개발자 PC)
[CI 테스트] → Testcontainers (자바 백엔드 입문 54편)
[Dev]       → 작은 RDS 인스턴스
[Staging]   → 운영과 동일 구성 (작은 사이즈)
[Prod]      → RDS Multi-AZ + Read Replica

각 환경의 PG 버전·확장·설정 일치가 운영 안전의 토대.

버전 선택

  • 새 프로젝트 = PG 18 (또는 LTS 16)
  • 운영 중 = 기존 버전 유지, 1~2년 후 major 업그레이드

PG 메이저 버전 = 1년에 한 번. 최신 버전 즉시 채택은 위험 — 1~2년 안정화 후 채택이 운영 표준.

함정 5가지

(1) 작은 인스턴스 + 큰 트래픽

운영 시작 시 너무 작은 인스턴스 → 갑작스러운 트래픽에 폭주. 모니터링 + 스케일링 정책.

(2) Multi-AZ 안 켬

운영 = Multi-AZ 무조건. 단일 인스턴스 = 장애 시 다운타임.

(3) 자동 백업 잘못 설정

RDS 자동 백업 = 7~30일 보존. 너무 짧으면 — 한 달 전 데이터 복구 불가.

(4) Aurora·RDS 혼동

비슷해 보이지만 — 가격·성능·확장성 모두 다름. 큰 결정.

(5) 직접 바이너리 + 작은 팀

DBA 없는 5인 팀이 직접 PG 운영 = 위험. 관리 서비스가 훨씬 안전.

🎯 한국 회사 운영 표준

RDS PostgreSQL Multi-AZ + Read Replica 2~3개 + PG 16/18. 트래픽 증가 시 Aurora 검토. 직접 바이너리는 큰 회사 + DBA 전담 팀일 때만.

한 줄 정리 — 운영 PG 4옵션 = 직접·Docker·RDS·서버리스. 한국 99% = AWS RDS Multi-AZ. 큰 트래픽 = Aurora. PG 18 신규, 운영은 LTS. dev·staging·prod 환경 일치. Multi-AZ + 자동 백업 + Read Replica 표준.

시험 직전 한 번 더 — 운영 설치 입문자가 매번 헷갈리는 것

  • 운영 옵션 4 = 직접·Docker·관리 서비스·서버리스
  • 한국 99% = AWS RDS
  • 큰 트래픽 = AWS Aurora
  • Aurora = 분산 스토리지·빠른 페일오버·1.5~2배 비용
  • 관리 서비스 = 슈퍼유저 X (확장 일부 제한)
  • Multi-AZ = 운영 무조건
  • Read Replica = 읽기 부하 분산
  • 자동 백업 7~30일
  • PITR = Point-In-Time Recovery
  • 작은 인스턴스 시작 + 스케일링
  • dev·staging·prod 환경 일치
  • Testcontainers (CI) = JPA 입문 54편
  • 버전 = LTS 안정화 후 채택
  • Docker 운영 = secrets·healthcheck·volume
  • pg_isready = 헬스 체크
  • Neon·Supabase = 서버리스 (사이드 프로젝트)
  • Cloud SQL·Azure DB = 비슷
  • 직접 바이너리 = 전담 DBA 필요
  • 학습 = Docker 로컬
  • PG 18 = 2025 신버전
  • RDS 비용 = 작은 t4g.medium 월 $50+
  • 모니터링 = CloudWatch + Performance Insights

시리즈 다른 편

  • Part 2 SQL Language 깊이: 28~41편 완주
  • Part 3 운영: 42편 (현재 글)

시리즈 다음 글

다음 글(43편)에서는 postgresql.conf 핵심 설정 — 메모리·로그·복제·확장.

공식 문서: PostgreSQL 18 — Installation에서 더 자세한 사양을 확인할 수 있어요.

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

error: Content is protected !!