AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

도커 기반 데이터베이스 자율 운영: PostgreSQL/MySQL을 $5 VPS로 안정적으로 운영하는 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

- 대상: 중소규모 애플리케이션 개발자, 학습용 프로젝트 운영자, 내부 툴 개발자

- 난이도: 중급 (Docker 및 Linux 기초 지식 필요)

핵심 요약

  • 도커 + $5 VPS를 활용해 PostgreSQL/MySQL을 안정적으로 운영할 수 있음.
  • 보안 강화(SSH 설정, 방화벽), 자동 백업(cron + S3), 모니터링(Prometheus + Grafana) 구현 필수.
  • 비용 절감($5/month VPS + $0.023/GB S3 백업)과 자율성(환경 설정, 성능 최적화)의 균형 달성.

섹션별 세부 요약

1. 문제 상황: 관리형 DB의 한계

  • 비용: $500/month 이상의 관리형 DB 요금 부담.
  • 제어권 부족: shared_buffers 등 설정 변경 불가.
  • 성능: 앱과 DB 간 지연 발생 가능성.

2. 자율 운영의 핵심 조건

  • VPS 선택:

- DigitalOcean: $6/month (1GB RAM, 25GB SSD).

- Linode: $5/month (1GB RAM, NVMe 저장소).

- Hetzner: €4.49/month (2GB RAM, 독일 기반).

  • 운영체제: Ubuntu 22.04 LTS (Docker 호환성 보장).

3. 도커 설정 예시

  • PostgreSQL:

```yaml

services:

db:

image: postgres:15

volumes: - pg_data:/var/lib/postgresql/data

environment: POSTGRES_PASSWORD: your_strong_password

```

  • MySQL:

```yaml

services:

db:

image: mysql:8.0

volumes: - mysql_data:/var/lib/mysql

environment: MYSQL_ROOT_PASSWORD: your_strong_password

```

4. 보안 및 운영 최적화

  • SSH 보안 강화:

```bash

PermitRootLogin no

PasswordAuthentication no

AllowUsers your_username

```

  • 방화벽 설정:

```bash

ufw allow 22/tcp

ufw allow 5432/tcp # PostgreSQL

ufw enable

```

5. 백업 및 모니터링

  • 자동 백업 스크립트:

```bash

DATE=$(date +%Y-%m-%d)

docker exec postgres_db pg_dump -U postgres mydb > /backups/mydb_$DATE.sql

```

  • 크론 작업:

```bash

  1. 2 * /bin/bash /scripts/backup_db.sh

```

  • 모니터링 도구:

- Prometheus + Grafana 설치 예시:

```yaml

services:

prometheus:

image: prom/prometheus

volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml

grafana:

image: grafana/grafana

ports: - "3000:3000"

```

6. 운영 리스크 및 대응 방안

  • 장애 대응:

- VPS 제공업체 중단 시 장애 복구 절차 필요.

- pg_hba.conf 설정 누락 시 보안 취약점 발생 가능성.

  • 확장성 한계: 100+ writes/sec 시 성능 최적화 어려움.

7. 관리형 DB로 전환 시점

  • 비용 vs 편의성: $200/month 이상 절약이 필요할 때.
  • 수익성: 실질 수익을 창출하는 애플리케이션의 경우.
  • 전문성: DBA 역할을 싫어할 때.

결론

  • 도커 + 저비용 VPS를 활용한 자율 운영은 $10/month 미만의 비용으로 고성능, 고보안의 데이터베이스를 구축할 수 있음.
  • 핵심 팁:

- 도커 컴포즈로 빠른 배포.

- S3/Backblaze로 백업 자동화.

- Prometheus + Grafana로 실시간 모니터링.

- SSH/방화벽 설정으로 보안 강화.

- DB 사용자 권한 최소화(예: app_user 생성).