핵심 요약
대부분 회사의 클라우드 비용은 20~50% 낭비. 가장 큰 원인은 (1) 사용 안 하는 리소스, (2) 잘못된 인스턴스 타입, (3) Spot 미활용, (4) Storage class 미최적화. 자동화 도구 + 문화로 해결 가능.
- FinOps Foundation: AWS·GCP·Azure가 모두 채택한 표준
- Karpenter v1.5+: K8s 노드 자동 최적화
- OpenCost·Kubecost: namespace·service 단위 비용 추적
1. 가장 큰 5가지 낭비 영역
| 영역 | 전형적 절감 |
|---|---|
| 유휴 EC2·RDS | 15~25% |
| 잘못된 인스턴스 사이즈 | 10~20% |
| Spot 미활용 | 10~30% |
| Storage class 미최적화 | 5~15% |
| 예약 인스턴스 미활용 | 10~20% |
2. AWS Cost Explorer — 시작점
aws ce get-cost-and-usage \
--time-period Start=2026-04-01,End=2026-04-28 \
--granularity DAILY \
--metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE가장 비싼 5개 서비스 식별 → 이 5개에 80% 노력 집중.
3. Karpenter — K8s 자동 최적화
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: default
spec:
template:
spec:
requirements:
- key: karpenter.sh/capacity-type
operator: In
values: ["spot", "on-demand"]
- key: kubernetes.io/arch
operator: In
values: ["amd64", "arm64"]
- key: node.kubernetes.io/instance-type
operator: In
values:
- "m5.large"
- "m5a.large"
- "m6i.large"
- "m6g.large" # ARM Graviton
disruption:
consolidationPolicy: WhenUnderutilized
consolidateAfter: 30s효과
- 유휴 노드 자동 종료
- under-utilized 노드 통합 (consolidation)
- Spot 활용
- ARM Graviton 자동 선택 (가격 20~40% 저렴)
4. Spot 인스턴스 활용
# Spot 다양화 (회수 빈도 최소화)
requirements:
- key: node.kubernetes.io/instance-type
operator: In
values:
# 동급 5+ 타입 권장
- m5.large
- m5a.large
- m5n.large
- m6i.large
- m6a.large
- key: topology.kubernetes.io/zone
operator: In
values: ["us-east-1a", "us-east-1b", "us-east-1c"]실측: stateless web 워크로드는 Spot으로 80% 절감. batch는 Spot Block (1~6h 보장)으로 30% 절감.
5. ARM Graviton 마이그레이션
| 인스턴스 | 시간당 가격 | 성능 |
|---|---|---|
| m6i.large (Intel) | $0.096 | baseline |
| m6a.large (AMD) | $0.086 | +5% |
| m6g.large (ARM) | $0.077 | +15% |
ARM은 가격 20% 저렴 + 성능 15% 우위. 단 일부 패키지 (canvas·sharp 등) ARM 빌드 검증 필요.
6. 유휴 리소스 자동 정리
# 유휴 EBS 볼륨 (Detach된 지 30일+)
aws ec2 describe-volumes --filters Name=status,Values=available
# 유휴 Elastic IP
aws ec2 describe-addresses
# 사용 안 하는 RDS snapshot (30일+)
aws rds describe-db-snapshots# 자동화 — Lambda + EventBridge
# 매주 월요일 새벽:
# 1) 유휴 리소스 식별
# 2) Slack 알림
# 3) 14일 후 자동 삭제 (태그된 것만)7. S3 Storage Class
| Class | 가격 (1GB/월) | 적합 |
|---|---|---|
| Standard | $0.023 | 자주 액세스 |
| Standard-IA | $0.0125 | 월 1회 미만 |
| Intelligent-Tiering | 자동 | 패턴 불확실 |
| Glacier Instant | $0.004 | 분기 1회 미만 |
| Glacier Deep Archive | $0.00099 | 년 1~2회 |
# Lifecycle Policy 자동화
{
"Rules": [{
"Status": "Enabled",
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER_IR" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": { "Days": 2555 } // 7년 후 삭제
}]
}8. RDS 비용 최적화
- RI (Reserved Instance) — 1년 약정 30% 절감, 3년 50%
- Aurora Serverless v2 — 변동 워크로드
- Read replica를 spot 비슷한 cheaper 인스턴스로
- backup retention 자동 정리 (35일 default → 7~14일)
- idle DB 식별·종료
9. NAT Gateway 비용
의외로 큰 비용. NAT Gateway는 $32/월 + 데이터 처리 $0.045/GB.
# 대안:
# 1) VPC Endpoint (S3·DynamoDB 무료)
# 2) NAT Instance (작은 EC2, 직접 운영)
# 3) Public Subnet (보안 검토 후 일부)10. CloudWatch 비용
- 로그 retention 단축 (30일 → 7일)
- 로그 sampling (production만 100%, staging 10%)
- 비용 큰 metric은 PutMetricData 빈도 줄이기
- CloudWatch Logs Insights 쿼리 비용도 큼
11. CDN·Cloudflare
| 옵션 | 비용 |
|---|---|
| CloudFront | $0.085/GB (egress) |
| Cloudflare Free | $0 (대역폭 무제한) |
| Bunny CDN | $0.005/GB |
egress는 가장 큰 숨은 비용. Cloudflare 앞단으로 80%+ 절감 흔함.
12. FinOps 도구
- OpenCost — K8s 비용 추적, namespace·service 단위
- Kubecost — OpenCost commercial 버전
- Vantage — multi-cloud 비용 분석
- Cloudability — 엔터프라이즈
- Infracost — Terraform PR에 비용 추정 코멘트
13. 문화 — FinOps 도입
- 비용을 팀별 가시화 (대시보드)
- 매달 비용 리뷰 미팅 (CTO·SRE·개발팀)
- 새 기능 launch 전 cost estimation 필수
- tagging 표준화 (team·env·project)
- cost anomaly 자동 알림 (전월 대비 30%+)
14. 실측 — 종합 절감
| 전략 | 월 비용 |
|---|---|
| Baseline | $50,000 |
| + 유휴 리소스 정리 | $42,000 (-16%) |
| + Karpenter consolidation | $36,000 (-14%) |
| + Spot 적극 활용 | $27,000 (-25%) |
| + ARM Graviton 30% | $24,000 (-11%) |
| + S3 Lifecycle | $22,000 (-8%) |
| + Reserved Instance | $17,500 (-20%) |
| + Cloudflare egress | $14,000 (-20%) |
총 72% 절감. 실제 회사 사례.
15. 30일 로드맵
- Day 1-3: 비용 dashboard 구축, 가장 비싼 5개 서비스 식별
- Day 4-7: 유휴 리소스 식별·정리
- Day 8-14: Karpenter 도입 + 인스턴스 다양화
- Day 15-21: Spot·ARM 마이그레이션
- Day 22-28: S3·CloudWatch·NAT 최적화
- Day 29-30: Reserved Instance 검토

댓글 0