본문으로 건너뛰기
17.6 클라우드 비용 최적화

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.5 ACU ~ 32 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일 보존 같은 과도한 정책은 피함.

정기 비용 점검 — 월간

    flowchart TD
  R["월간 비용 보고"]
  H["인스턴스·스토리지·전송 분류"]
  S{"30%↑ 증가?"}
  I["원인 추적<br/>(scale 변경·DB 폭증·snapshot 누적)"]
  F["최적화·정리"]
  R --> H --> S
  S -- "yes" --> I --> F
  S -- "no" --> R

  classDef step fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
  class R,H,I,F step
  

클라우드별 비용 절감 요약

클라우드권장
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 정리로 스토리지 ↓
  • 월간 비용 보고로 이상 신호 조기 발견

다음 절(17.7)에서는 온프레미스 + 클라우드 혼합 — 하이브리드 시나리오를 봅니다.