본문으로 건너뛰기

17.6 클라우드 비용 최적화

매니지드 PostgreSQL은 운영 부담은 줄이지만 비용은 자체 운영보다 높습니다. 운영자가 과도한 비용을 만들지 않으면서 운영 품질을 유지하는 패턴을 정리합니다.

비용 구성​

항목일반 비중
인스턴스 시간~50%
스토리지 (디스크)~20%
IOPS·throughput~10%
백업~10% (DB 크기 초과분)
데이터 전송 (다른 region·인터넷)~5%
read replica추가 인스턴스 비용
HA standby인스턴스 ~2x

클라우드 비용 최적화 순서

최적화 1 — 인스턴스 사이징​

과도한 over-provisioning 회피​

CPU < 30% 평균, 메모리 < 50% — 인스턴스 다운사이즈 검토

CloudWatch·Cloud Monitoring·Azure Monitor의 7일 추세로 판단합니다.

  • peak에 맞춰 사이징하되 과도하지 않게
  • Reserved Instance / Committed Use Discount로 1년·3년 약정

Reserved / Committed Use​

클라우드옵션
AWSReserved Instance (1·3년, 30~60% 절감)
AzureReserved Capacity (1·3년)
GCPCommitted Use Discount (1·3년)

운영 클러스터는 장기 약정 거의 필수입니다. 개발·일시 부하만 on-demand.

Burstable instance (개발용)​

db.t4g.* (AWS) / B series (Azure) / db-custom-shared-core (GCP) — 평소 작고 burst 가능합니다. 개발·staging·낮은 부하에 50~70% 절감합니다.

최적화 2 — 스토리지​

IOPS·throughput provisioning​

옵션사용처
gp3 / Premium SSD v2IOPS·throughput 별도 설정 — 효율적
io2 / io2 Block Express매우 높은 IOPS 필요

작게 시작 + 모니터링 후 필요한 만큼만 증액.

Storage Auto-grow​

활성화. 디스크 풀 사고 방지 + 실제 필요만큼만 자동 확장.

보존 기간 점검​

backup retention: 35일이 디폴트는 아닐 수 있음
  • 컴플라이언스 요구 만큼만
  • 14일이면 충분한 경우가 많음 — 35일은 초과분 비용

최적화 3 — read replica·HA​

read replica는 꼭 필요한 만큼​

  • 평소 read 부하가 primary에서 처리 가능 → replica 0개
  • 한 곳 분석·DR용 1대로 충분한 경우 많음
  • 대기 idle replica는 비용 낭비

HA 비용​

Multi-AZ·Zone-redundant = primary 2배 비용입니다. 모든 클러스터에 HA가 필요한 건 아님:

환경HA
production critical활성
staging비활성 OK
개발비활성
분석·내부 도구비활성·복구로 충분

최적화 4 — 개발·테스트 자동 정지​

Azure Flexible Server​

az postgres flexible-server stop --resource-group rg --name dev-server
# 일과 후 자동 정지 — Logic App·cron

GCP Cloud SQL​

gcloud sql instances patch dev-instance --activation-policy=NEVER # 정지
gcloud sql instances patch dev-instance --activation-policy=ALWAYS # 시작

AWS RDS​

aws rds stop-db-instance --db-instance-identifier dev-pg
# 최대 7일 정지 — 자동 시작

7일 후 자동 시작 — 매주 cron으로 stop 재호출.

개발 environment를 야간·주말에 정지하면 60~80% 비용을 절감합니다.

최적화 5 — Aurora Serverless / 자동 스케일​

Aurora Serverless v2
0 ACU(auto-pause 지원 버전) ~ 256 ACU 범위에서 자동
peak 시간만 큰 용량
사용처메모
매우 가변적 부하효율적
일정 부하provisioned이 더 저렴
야간 거의 무부하좋음
24/7 일정손해

추세 분석 후 결정합니다.

최적화 6 — 백업 비용​

비용 요소메모
DB 크기 이하 백업보통 무료
초과 백업GB·month
수동 snapshot영구 — 안 지우면 계속
cross-region 복사데이터 전송 + 별도 저장

수동 snapshot이 수년 누적되면 사고입니다. 정리 정책 자동화합니다.

최적화 7 — 데이터 전송​

사항비용
같은 AZ무료 또는 매우 적음
다른 AZ약간 (GB당 약 $0.01)
다른 region큼 (GB당 $0.02~0.09)
인터넷 outbound가장 큼

대응:

  • application과 DB를 같은 AZ에
  • cross-region replica는 필요할 때만
  • 백업도 outbound가 큰 region은 비용 점검

최적화 8 — 인덱스·BLOAT 정리​

옵티마이저 효율이 크기 자체를 줄임:

  • 미사용 인덱스 정기 drop (6.6) → 스토리지·백업 비용 ↓
  • BLOAT 정리 (6.7·8.3) → 스토리지 ↓
  • 파티션 retention 적정 → 보존 기간 ↓

매월 DB 크기 추세 점검 — 갑작스러운 증가 = 원인 추적합니다.

최적화 9 — 모니터링 자체 비용​

도구비용
CloudWatch · Azure Monitor · Cloud Monitoring 기본일부 무료
Performance Insights / Query Insights보통 무료 또는 저렴
Custom metric·로그비용 빠름
Datadog·Datadog DBM비싸짐

운영 단계에 따라 필요한 도구만. 모든 메트릭 30일 보존 같은 과도한 정책은 피함.

정기 비용 점검 — 월간​

클라우드별 비용 절감 요약​

클라우드권장
AWSReserved Instance + Multi-AZ만 production · gp3 +필요 IOPS
AzureReserved Capacity + stop/start 자동화 + Burstable for dev
GCPCommitted Use + activation-policy로 dev 정지

TCO 산정 예시​

같은 사양(8 vCPU·32GB·1TB·HA):

환경월 비용
AWS RDS Multi-AZ on-demand~$1100
AWS RDS Multi-AZ 3-year RI~$500
Aurora 3-year RI~$750
Azure HA Reserved~$550
Cloud SQL HA Committed~$550
자체 EC2 + EBS + Patroni~$400 + 운영 인력

자체 vs 매니지드의 차액은 운영 인력 + 사고 비용으로 흡수.

정리​

Reserved/Committed 약정이 가장 큰 절감을 줍니다. HA·read replica는 필요한 곳에만 두고, 개발 환경은 야간 정지를 자동화합니다.

  • Aurora Serverless v2는 매우 가변적인 부하에만 유리합니다
  • 미사용 인덱스·BLOAT 정리로 스토리지를 줄입니다
  • 월간 비용 보고로 이상 신호를 조기에 발견합니다