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
| 클라우드 | 옵션 |
|---|---|
| AWS | Reserved Instance (1·3년, 30~60% 절감) |
| Azure | Reserved Capacity (1·3년) |
| GCP | Committed 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 v2 | IOPS·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·cronGCP 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
클라우드별 비용 절감 요약
| 클라우드 | 권장 |
|---|---|
| AWS | Reserved Instance + Multi-AZ만 production · gp3 +필요 IOPS |
| Azure | Reserved Capacity + stop/start 자동화 + Burstable for dev |
| GCP | Committed 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)에서는 온프레미스 + 클라우드 혼합 — 하이브리드 시나리오를 봅니다.