왜 데이터베이스가 클라우드 비용의 블랙홀이 되는가
클라우드 비용 청구서를 자세히 뜯어보면, 꽤 충격적인 사실을 발견하게 됩니다. 데이터베이스가 전체 클라우드 지출의 30~40%를 잡아먹고 있거든요. 컴퓨팅이나 스토리지는 비교적 눈에 잘 보이고 최적화 방법도 많이 알려져 있는데, 데이터베이스는 좀 다릅니다. 인스턴스 요금, I/O 과금, 스토리지, 백업, 데이터 전송 등이 복잡하게 얽혀 있어서 도대체 어디서 돈이 새는 건지 파악하기가 쉽지 않죠.
그런데 좋은 소식이 있습니다.
2025년 12월 AWS re:Invent에서 발표된 Database Savings Plans, Aurora I/O-Optimized, DynamoDB Standard-IA, Azure SQL Reserved Capacity, GCP Committed Use Discounts까지 — 2026년 현재 데이터베이스 비용을 확 줄일 수 있는 도구와 전략이 그 어느 때보다 풍부해졌습니다.
이 글에서는 AWS, Azure, GCP 세 가지 주요 클라우드에서 데이터베이스 비용을 체계적으로 최적화하는 방법을 다룹니다. 실전 코드, 구체적인 수치, 그리고 바로 적용 가능한 체크리스트까지 포함했으니 끝까지 읽어보시면 분명 도움이 될 겁니다.
1. AWS 데이터베이스 비용 최적화
1.1 Database Savings Plans — 진짜 게임 체인저
솔직히 말해서, 2025년 12월 re:Invent에서 나온 발표 중 가장 실질적인 영향력이 큰 건 이 Database Savings Plans라고 봅니다. 기존에는 Reserved Instances(RI)가 유일한 할인 옵션이었고, Aurora Serverless v2나 DynamoDB 온디맨드 같은 서버리스 서비스에는 할인을 적용할 방법이 아예 없었거든요.
핵심 특징을 정리하면 이렇습니다:
- 최대 35% 할인: 1년 약정으로 12~35%의 할인율 제공
- 9개 데이터베이스 서비스 지원: Aurora, RDS, DynamoDB, ElastiCache(Valkey만), DocumentDB, Neptune, Keyspaces, Timestream(InfluxDB만), DMS
- 엔진·인스턴스·리전 무관: db.r7g에서 db.r8g으로 바꾸거나, EU(Ireland)에서 US(Ohio)로 워크로드를 옮겨도 할인이 유지됨
- Aurora Serverless v2에 최대 35% 할인: 예전에는 할인 자체가 불가능했던 서비스
- DynamoDB 온디맨드 처리량에도 할인 적용: 서버리스 NoSQL에 약정 할인이 붙는 건 처음
물론 제한 사항도 있습니다:
- 7세대 이상 인스턴스만 적용 (db.r5, db.r6g, db.m5 같은 이전 세대는 제외)
- ElastiCache는 Valkey만 대상 (Redis, Memcached 제외)
- Amazon Redshift는 대상 아님
- 현재 1년 약정만 가능 (3년 약정은 아직 미지원)
- 동일 워크로드에 RI와 중복 적용 불가
AWS 콘솔에서 Savings Plans 추천을 확인하려면 아래 명령어를 사용하세요:
# AWS CLI로 Database Savings Plans 추천 조회
aws ce get-savings-plans-purchase-recommendation \
--savings-plans-type "DATABASE_SAVINGS_PLANS" \
--term-in-years "ONE_YEAR" \
--payment-option "NO_UPFRONT" \
--lookback-period-in-days "SIXTY_DAYS"
# 현재 Savings Plans 활용률 확인
aws ce get-savings-plans-utilization \
--time-period Start=2026-02-01,End=2026-03-01 \
--filter '{"Dimensions": {"Key": "SAVINGS_PLANS_TYPE", "Values": ["DATABASE_SAVINGS_PLANS"]}}'
1.2 Aurora 비용 최적화 — I/O-Optimized vs Standard
Aurora에서 가장 흔한 비용 함정이 뭔지 아시나요? 바로 I/O 과금입니다. Aurora Standard에서는 읽기/쓰기 I/O 요청 건당 과금이 되는데, 이게 예상보다 훨씬 크게 나오는 경우가 정말 많습니다.
간단한 판단 기준이 있습니다. I/O 비용이 총 Aurora 비용의 25%를 넘는다면, Aurora I/O-Optimized로 전환하는 게 맞습니다. 보통 30~40% 정도 절감되거든요.
I/O-Optimized는 스토리지 단가가 좀 더 높은 대신 I/O가 무제한으로 포함됩니다. 성능이나 지연 시간, 처리량은 완전히 동일하고 순수하게 과금 모델만 바뀌는 거라서, 전환 리스크가 사실상 없습니다.
# Aurora I/O 비용 비중 확인 (AWS Cost Explorer CLI)
aws ce get-cost-and-usage \
--time-period Start=2026-02-01,End=2026-03-01 \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--group-by Type=DIMENSION,Key=USAGE_TYPE \
--filter '{"Dimensions": {"Key": "SERVICE", "Values": ["Amazon Relational Database Service"]}}'
# CloudWatch에서 Aurora I/O 메트릭 확인
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name ReadIOPS \
--dimensions Name=DBClusterIdentifier,Value=my-aurora-cluster \
--start-time 2026-02-01T00:00:00Z \
--end-time 2026-03-01T00:00:00Z \
--period 86400 \
--statistics Average Sum
전환 판단을 위한 간단한 계산식:
# I/O 비용 비중 계산
io_cost_ratio = monthly_io_cost / total_aurora_cost
# 25% 이상이면 I/O-Optimized가 유리
if io_cost_ratio > 0.25:
print("I/O-Optimized로 전환 추천")
estimated_savings = monthly_io_cost - (storage_cost_increase)
print(f"예상 월 절감액: ${estimated_savings:.2f}")
else:
print("Standard 유지 추천")
1.3 RDS 라이트사이징 — Compute Optimizer 활용
AWS Compute Optimizer를 쓰고 계신가요? RDS for MySQL, PostgreSQL, Aurora MySQL, Aurora PostgreSQL에 대해 인스턴스 추천을 해주는 기능인데, 의외로 많은 분들이 모르시더라고요. 14일간의 CloudWatch 데이터를 분석해서 과잉 프로비저닝, 부족, 최적으로 분류해 줍니다.
실무에서 이 기능 하나만 켜도 20~40% 절감한 사례가 꽤 됩니다. 설정이 간단하니 아직 안 쓰고 계시면 바로 활성화해 보세요.
# Compute Optimizer에서 RDS 추천 확인
aws compute-optimizer get-rds-database-recommendations \
--filters name=Finding,values=Overprovisioned
# 특정 RDS 인스턴스의 CPU 사용률 확인 (지난 14일)
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name CPUUtilization \
--dimensions Name=DBInstanceIdentifier,Value=my-production-db \
--start-time 2026-02-21T00:00:00Z \
--end-time 2026-03-07T00:00:00Z \
--period 3600 \
--statistics Average Maximum
Graviton 전환도 빼놓을 수 없습니다. Graviton 기반 Aurora/RDS 인스턴스(예: db.r7g)는 x86 대비 약 20% 더 나은 가성비를 제공합니다. 특별한 호환성 이슈가 없다면 항상 Graviton을 선택하는 게 맞습니다.
1.4 DynamoDB 비용 최적화 전략
DynamoDB는 용량 모드 선택 하나로 비용이 5~7배까지 차이 날 수 있습니다. 이건 정말 큰 차이죠. 핵심 전략 세 가지를 짚어보겠습니다.
① 용량 모드 최적화:
- 온디맨드 모드: 트래픽이 예측 불가능하거나 스파이크가 심할 때 좋음. 요청당 과금이라 유휴 비용이 없음
- 프로비저닝 모드 + Auto Scaling: 트래픽 패턴이 어느 정도 예측 가능하면 이쪽이 유리. 온디맨드 대비 약 7배 저렴
- 프로비저닝 + Reserved Capacity: 안정적인 워크로드라면 1년 약정 시 53% 할인, 3년이면 76% 할인
② Standard-IA 테이블 클래스: 스토리지 비용이 읽기/쓰기 비용보다 큰 테이블이 있다면 (로그 데이터나 아카이브 테이블이 대표적이죠) Standard-IA로 바꾸면 스토리지 비용을 최대 60% 줄일 수 있습니다. 다운타임이나 데이터 마이그레이션 없이 설정만 변경하면 끝입니다.
③ 미사용 테이블 정리: 90일 이상 읽기/쓰기가 없는 테이블, 생각보다 많습니다. 이런 좀비 리소스는 비용만 잡아먹으니 주기적으로 정리하는 게 좋습니다.
# DynamoDB 테이블별 사용량 확인 스크립트 (Python + boto3)
import boto3
from datetime import datetime, timedelta
dynamodb = boto3.client('dynamodb')
cloudwatch = boto3.client('cloudwatch')
tables = dynamodb.list_tables()['TableNames']
for table in tables:
# 지난 90일간 읽기/쓰기 확인
end_time = datetime.utcnow()
start_time = end_time - timedelta(days=90)
read_metrics = cloudwatch.get_metric_statistics(
Namespace='AWS/DynamoDB',
MetricName='ConsumedReadCapacityUnits',
Dimensions=[{'Name': 'TableName', 'Value': table}],
StartTime=start_time,
EndTime=end_time,
Period=86400 * 90,
Statistics=['Sum']
)
total_reads = sum(dp['Sum'] for dp in read_metrics['Datapoints'])
if total_reads == 0:
desc = dynamodb.describe_table(TableName=table)['Table']
size_gb = desc['TableSizeBytes'] / (1024**3)
print(f"[미사용] {table} - 크기: {size_gb:.2f} GB - 90일간 읽기 0")
2. Azure 데이터베이스 비용 최적화
2.1 Azure SQL Reserved Capacity + Hybrid Benefit
Azure SQL Database 비용을 줄이는 가장 강력한 조합은 단연 Reserved Capacity + Azure Hybrid Benefit입니다. 각각의 할인율도 꽤 크지만, 이 두 개를 조합하면 최대 80~85%까지 절감이 가능합니다. (네, 제대로 읽으신 겁니다. 80% 이상요.)
- Reserved Capacity: 1년 또는 3년 약정으로 최대 33% 할인
- Azure Hybrid Benefit: 기존 Windows Server 또는 SQL Server 라이선스를 Azure에서 재사용하면 최대 55% 추가 절감
- 두 가지 조합: 최대 80~85% 절감 가능
Reserved Capacity의 또 다른 장점은 크기 유연성(Size Flexibility)입니다. 동일 성능 계층과 지역 안에서 vCore 수를 자유롭게 조정해도 예약 가격이 그대로 유지되거든요. 이게 실무에서는 꽤 유용합니다.
# Azure CLI로 SQL Database 예약 구매 조회
az reservations reservation-order list \
--query "[?contains(displayName, 'SQL')]" \
--output table
# SQL Database 리소스 사용률 확인
az monitor metrics list \
--resource "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Sql/servers/{server}/databases/{db}" \
--metric "cpu_percent" "dtu_consumption_percent" "storage_percent" \
--interval PT1H \
--start-time 2026-02-01T00:00:00Z \
--end-time 2026-03-01T00:00:00Z
2.2 Azure SQL Serverless — 유휴 시간에는 돈을 안 내도 됩니다
트래픽이 들쑥날쑥하거나 간헐적인 워크로드라면 Azure SQL Database Serverless를 한번 살펴보세요. 컴퓨팅을 자동으로 스케일링하고 초 단위로 과금하는데, 진짜 좋은 건 비활성 기간에 자동 일시 중지(Auto-Pause)되면서 스토리지 비용만 나간다는 점입니다.
개발/테스트 환경이나 사용량이 간헐적인 내부 툴에 특히 잘 맞습니다. 프로비저닝 모드 대비 40~70% 절감한 사례도 있으니, 해당 패턴의 워크로드가 있다면 적극 검토해 보시길 추천합니다.
2.3 Elastic Pool로 다중 DB 비용 절감
Azure SQL Database를 여러 개 운영하고 계신다면 Elastic Pool을 써서 컴퓨팅 리소스를 공유하는 방법이 있습니다. 각 데이터베이스의 피크 시간이 서로 다를 때 특히 효과적인데, 개별 DB마다 따로 프로비저닝하는 것보다 훨씬 효율적이고 유휴 DB에 대한 오버헤드도 크게 줄어듭니다.
2.4 Cosmos DB 비용 최적화
Azure의 글로벌 분산 NoSQL인 Cosmos DB는 DynamoDB와 비슷한 과금 구조를 갖고 있습니다. 최적화 포인트도 비슷하죠.
- 오토스케일 프로비저닝: 최대 RU/s의 10%까지 자동 축소되어 유휴 비용 절감
- Reserved Capacity: 1년 약정 시 약 20%, 3년이면 약 38% 할인
- 파티션 키 설계 최적화: 핫 파티션을 방지하면 불필요한 RU 소비를 줄일 수 있음 (이건 설계 단계에서 잡아야 나중에 고생을 덜 합니다)
# Azure CLI로 Cosmos DB RU 소비량 모니터링
az cosmosdb sql database throughput show \
--account-name my-cosmos-account \
--name my-database \
--resource-group my-rg
# Cosmos DB 메트릭 조회 (총 요청 단위)
az monitor metrics list \
--resource "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.DocumentDB/databaseAccounts/{account}" \
--metric "TotalRequestUnits" "NormalizedRUConsumption" \
--interval PT1H \
--start-time 2026-02-01T00:00:00Z \
--end-time 2026-03-01T00:00:00Z
3. GCP 데이터베이스 비용 최적화
3.1 Cloud SQL Committed Use Discounts
GCP Cloud SQL은 MySQL, PostgreSQL, SQL Server를 모두 지원하고, Committed Use Discounts(CUD)로 꽤 괜찮은 할인을 받을 수 있습니다.
- 1년 약정: 25% 할인
- 3년 약정: 52% 할인
CUD가 좋은 점은 리전 내 모든 Cloud SQL 인스턴스의 vCPU와 메모리 사용량에 자동으로 적용된다는 겁니다. 심지어 엔진을 MySQL에서 PostgreSQL로 바꿔도 약정이 깨지지 않아요. 다만 공유 CPU 머신 타입(db-f1-micro, db-g1-small)은 적용 대상이 아니니 참고하세요.
# gcloud CLI로 Cloud SQL 인스턴스 목록 및 크기 확인
gcloud sql instances list \
--format="table(name, databaseVersion, settings.tier, settings.dataDiskSizeGb, state)"
# Cloud SQL CPU 사용률 확인 (Cloud Monitoring)
gcloud monitoring read \
--project=my-project \
"fetch cloudsql_database :: cloudsql.googleapis.com/database/cpu/utilization \
| filter resource.database_id == 'my-project:my-instance' \
| within 30d \
| group_by [], [avg(value.utilization)]"
3.2 AlloyDB — PostgreSQL이 필요하다면 주목
AlloyDB는 Google이 만든 고성능 PostgreSQL 호환 데이터베이스입니다. 표준 Cloud SQL PostgreSQL 대비 트랜잭션 워크로드에서 최대 4배, 분석 쿼리에서 최대 100배 빠르다고 하는데, 실제로 OLAP 혼합 워크로드에서 상당한 성능 차이를 보여줍니다.
CUD 할인율은 Cloud SQL과 동일합니다:
- 1년 약정: 25% 할인
- 3년 약정: 52% 할인
CUD는 모든 리전과 프로젝트에 걸쳐 AlloyDB 인스턴스 사용량에 자동 적용됩니다. 참고로, 2025년 7월 15일 이후에 최초 CUD를 구매한 고객에게는 개선된 새 CUD 프로그램이 자동으로 적용됩니다.
HA 비용은 주의가 필요합니다. 고가용성 구성은 여러 존에 걸쳐 자동 장애 조치를 해주지만, 컴퓨팅 비용이 2배가 됩니다. 프로덕션에서는 비즈니스 연속성 측면에서 충분히 가치가 있지만, 개발/테스트 환경에서는 HA를 끄는 게 현명합니다.
3.3 Cloud Spanner — 글로벌 분산 DB의 약정 할인
Cloud Spanner는 글로벌 규모의 관계형 데이터베이스인데, CUD 할인율이 다른 GCP 데이터베이스와 약간 다릅니다:
- 1년 약정: 20% 할인
- 3년 약정: 40% 할인
Spanner CUD는 단일 Cloud Billing 계정에 연결된 모든 리전의 모든 인스턴스에 자동 적용됩니다. 단, 스토리지나 백업, Data Boost, 아웃바운드 데이터 전송에는 CUD가 적용되지 않으니 이 부분은 별도로 관리가 필요합니다.
4. 3대 클라우드 데이터베이스 할인 한눈에 비교
각 클라우드별로 할인 옵션이 다양하다 보니 헷갈리실 수 있어서, 한눈에 비교할 수 있도록 표로 정리했습니다.
| 클라우드 | 서비스 | 할인 방식 | 1년 약정 | 3년 약정 | 비고 |
|---|---|---|---|---|---|
| AWS | Aurora/RDS | Database Savings Plans | 최대 35% | 미지원 | 7세대 이상 인스턴스만 |
| AWS | Aurora/RDS | Reserved Instances | 최대 40% | 최대 72% | 레거시, 엔진/인스턴스 고정 |
| AWS | DynamoDB | Reserved Capacity | 53% | 76% | 프로비저닝 모드만 |
| Azure | SQL Database | Reserved Capacity | 최대 33% | 최대 33% | Hybrid Benefit 조합 시 85% |
| Azure | Cosmos DB | Reserved Capacity | ~20% | ~38% | 오토스케일과 병용 가능 |
| GCP | Cloud SQL | CUD | 25% | 52% | 엔진 간 전환 유연 |
| GCP | AlloyDB | CUD | 25% | 52% | 전체 리전/프로젝트 적용 |
| GCP | Spanner | CUD | 20% | 40% | 컴퓨팅만 적용 |
5. 실전 데이터베이스 비용 최적화 체크리스트
자, 여기까지 각 클라우드별 전략을 살펴봤는데요. 이제 어떤 클라우드를 쓰든 바로 적용할 수 있는 체크리스트를 정리해 봤습니다. 하나씩 체크하면서 진행하시면 됩니다.
5.1 라이트사이징 (Right-Sizing)
- 최소 14일간의 CPU, 메모리, I/O 메트릭을 수집하고 분석
- AWS Compute Optimizer, Azure Advisor, GCP Recommender 활성화
- CPU 평균 사용률이 30% 미만이면 인스턴스 다운사이징 검토
- 읽기 전용 복제본(Read Replica) 사용률이 30% 미만이면 제거 또는 축소
- Graviton(AWS) 또는 ARM 기반 인스턴스로 전환해서 20% 가성비 향상
5.2 약정 할인 전략
- 안정적인 프로덕션 워크로드에 1년 또는 3년 약정 적용
- AWS: 신규 서비스는 Database Savings Plans, 레거시는 RI 유지
- Azure: Reserved Capacity + Hybrid Benefit 조합 극대화
- GCP: CUD를 리전별로 세밀하게 계획
- 약정 활용률(Utilization)을 주간 단위로 모니터링 — 이걸 안 하면 약정 자체가 낭비될 수 있음
5.3 스토리지 및 백업 최적화
- AWS: gp2에서 gp3 볼륨으로 전환 (약 20% 절감)
- DynamoDB: 스토리지 비중이 높은 테이블은 Standard-IA 전환
- 자동 백업 보존 기간 검토 — 필요 이상으로 길게 잡혀 있지 않은지 확인
- 미사용 수동 스냅샷 정리
5.4 비프로덕션 환경 관리
- 개발/테스트 DB는 업무 시간 외 자동 중지 설정 (이것만으로도 비용이 절반 가까이 줄어듦)
- Azure SQL Serverless의 Auto-Pause 기능 활용
- 비프로덕션에서 HA(고가용성) 비활성화
- 주기적으로 좀비 데이터베이스(90일 이상 미사용) 탐지 및 제거
# AWS: 개발 환경 RDS 인스턴스 야간 자동 중지/시작 (EventBridge + Lambda)
# EventBridge 규칙: 매일 20:00 KST에 중지, 08:00 KST에 시작
import boto3
rds = boto3.client('rds')
# 태그 기반으로 개발 환경 인스턴스 필터링
def stop_dev_instances(event, context):
instances = rds.describe_db_instances()
for instance in instances['DBInstances']:
for tag in instance.get('TagList', []):
if tag['Key'] == 'Environment' and tag['Value'] == 'dev':
if instance['DBInstanceStatus'] == 'available':
rds.stop_db_instance(
DBInstanceIdentifier=instance['DBInstanceIdentifier']
)
print(f"Stopped: {instance['DBInstanceIdentifier']}")
def start_dev_instances(event, context):
instances = rds.describe_db_instances()
for instance in instances['DBInstances']:
for tag in instance.get('TagList', []):
if tag['Key'] == 'Environment' and tag['Value'] == 'dev':
if instance['DBInstanceStatus'] == 'stopped':
rds.start_db_instance(
DBInstanceIdentifier=instance['DBInstanceIdentifier']
)
print(f"Started: {instance['DBInstanceIdentifier']}")
6. 데이터베이스 비용 모니터링 자동화
비용 최적화는 한 번 하고 끝나는 게 아닙니다. 자동화된 모니터링 없이 놔두면 시간이 지나면서 비용이 다시 슬금슬금 올라가거든요. 모니터링 자동화는 선택이 아니라 필수입니다.
6.1 비용 이상 탐지 설정
# AWS: 데이터베이스 비용 이상 탐지를 위한 CloudWatch 알람
aws cloudwatch put-metric-alarm \
--alarm-name "RDS-Cost-Spike-Alert" \
--alarm-description "RDS 비용이 일일 평균의 150%를 초과할 때 알림" \
--metric-name EstimatedCharges \
--namespace AWS/Billing \
--statistic Maximum \
--period 86400 \
--threshold 150 \
--comparison-operator GreaterThanThreshold \
--dimensions Name=ServiceName,Value=AmazonRDS \
--evaluation-periods 1 \
--alarm-actions arn:aws:sns:ap-northeast-2:123456789:billing-alerts
6.2 주간 비용 리포트 자동화
# Python: AWS 데이터베이스 비용 주간 요약 리포트
import boto3
from datetime import datetime, timedelta
ce = boto3.client('ce')
end_date = datetime.utcnow().strftime('%Y-%m-%d')
start_date = (datetime.utcnow() - timedelta(days=7)).strftime('%Y-%m-%d')
# AWS 데이터베이스 서비스별 비용 조회
response = ce.get_cost_and_usage(
TimePeriod={'Start': start_date, 'End': end_date},
Granularity='DAILY',
Metrics=['UnblendedCost'],
Filter={
'Dimensions': {
'Key': 'SERVICE',
'Values': [
'Amazon Relational Database Service',
'Amazon DynamoDB',
'Amazon ElastiCache',
'Amazon DocumentDB (with MongoDB compatibility)'
]
}
},
GroupBy=[{'Type': 'DIMENSION', 'Key': 'SERVICE'}]
)
print("=== AWS 데이터베이스 주간 비용 리포트 ===")
for result in response['ResultsByTime']:
date = result['TimePeriod']['Start']
for group in result['Groups']:
service = group['Keys'][0]
cost = float(group['Metrics']['UnblendedCost']['Amount'])
print(f"{date} | {service}: ${cost:.2f}")
7. 자주 묻는 질문 (FAQ)
Q1: AWS Database Savings Plans와 Reserved Instances, 어떤 걸 골라야 하나요?
결론부터 말하면, 둘을 병행하는 하이브리드 전략이 가장 좋습니다. 이미 돌아가고 있는 레거시 워크로드에는 기존 RI를 유지하고, 신규나 현대화된 워크로드(Aurora Serverless v2, DynamoDB 온디맨드 등)에는 Database Savings Plans를 적용하세요. Database Savings Plans는 엔진, 인스턴스 패밀리, 리전 간 전환이 자유로워서 장기적으로 훨씬 유연합니다. 다만 현재 1년 약정만 가능하므로, 3년 약정의 깊은 할인이 필요하다면 RI가 여전히 답입니다.
Q2: Aurora I/O-Optimized로 전환하면 성능이 바뀌나요?
아니요, 전혀 바뀌지 않습니다. Aurora I/O-Optimized는 순수하게 과금 모델만 바뀌는 것이고, 데이터베이스 성능, 지연 시간, 처리량은 Standard와 완전히 동일합니다. I/O 비용이 총 Aurora 비용의 25%를 넘는 워크로드라면 전환만으로 30~40% 절감됩니다. AWS 콘솔에서 클릭 몇 번이면 되고, 다운타임도 없습니다.
Q3: Azure Hybrid Benefit, 어떤 라이선스가 있어야 하나요?
Software Assurance가 포함된 Windows Server 또는 SQL Server 라이선스가 필요합니다. 온프레미스에서 쓰던 라이선스를 Azure로 가져와서 vCore 기반 Azure SQL Database, Managed Instance, 또는 SQL Server on Azure VM에 적용할 수 있습니다. Reserved Capacity와 조합하면 최대 80~85%까지 절감 가능하니, Microsoft 라이선스를 이미 보유한 기업이라면 이건 꼭 활용해야 합니다.
Q4: GCP Cloud SQL vs AlloyDB, 비용 면에서 뭐가 나은가요?
워크로드에 따라 달라집니다. Cloud SQL은 일반적인 OLTP 워크로드에 적합하고 비용이 더 낮습니다. AlloyDB는 인스턴스 비용 자체는 더 높지만, 트랜잭션 처리에서 최대 4배, 분석 쿼리에서 최대 100배 빠르기 때문에 총소유비용(TCO) 관점에서는 오히려 더 효율적일 수 있습니다. 두 서비스 모두 CUD 할인율(1년 25%, 3년 52%)이 동일하니, 순수하게 성능 대비 비용으로 판단하시면 됩니다.
Q5: DynamoDB 온디맨드에서 프로비저닝 모드로 언제 전환하면 좋을까요?
트래픽 패턴이 2~4주 이상 일정한 모습을 보이기 시작할 때가 전환 적기입니다. CloudWatch에서 ConsumedReadCapacityUnits와 ConsumedWriteCapacityUnits를 확인해서, 피크 대비 평균 사용률이 60% 이상이면 프로비저닝 + Auto Scaling이 비용 효율적입니다. 온디맨드는 프로비저닝 대비 약 7배 비싸기 때문에, 안정적인 워크로드라면 프로비저닝으로 전환한 후 Reserved Capacity(1년 53%, 3년 76% 할인)까지 적용하면 비용이 극적으로 줄어듭니다.