홈/인프라/클라우드 비용 최적화: 즉시 적용 가능한 절감 기법
인프라클라우드비용FinOps

클라우드 비용 최적화: 즉시 적용 가능한 절감 기법

유휴 자원, 이그레스, 예약/Savings Plans, 관측 기반 권리 사이징까지 바로 쓰는 클라우드 비용 절감 체크리스트.

클라우드 비용 최적화: 즉시 적용 가능한 절감 기법
목차
  1. 클라우드 낭비의 현실
  2. 전략 1: 미사용 리소스 정리
  3. 전략 2: Reserved Instance / Savings Plans
  4. 전략 3: Spot 인스턴스 (최대 90% 절감)
  5. 전략 4: Auto Scaling 최적화
  6. 전략 5: S3 Intelligent-Tiering
  7. 전략 6: 데이터 전송 비용 줄이기
  8. 전략 7: 개발 환경 스케줄링
  9. 전략 8: VPA로 리소스 requests 최적화
  10. 전략 9: 비용 태깅
  11. 전략 10: 비용 이상 알람
  12. 우선순위 높은 절감
  13. 예산 가드레일
  14. 절감 조치 후 비용이 다시 오를 때 원인 찾기
  15. 참고 자료
  16. 자주 묻는 질문 (FAQ)
  17. 검증 환경·편집자 주
  18. 실무 적용 순서 (요약)

클라우드 낭비의 현실

Flexera 조사에 따르면 기업 클라우드 지출의 평균 32%가 낭비입니다. 월 1,000만 원 지출 시 300만 원은 낭비일 수 있습니다.

전략 1: 미사용 리소스 정리

Bash
# 미사용 EBS 볼륨 찾기
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[*].[VolumeId,Size]'

# 연결 안 된 탄력적 IP (연결 없으면 과금)
aws ec2 describe-addresses \
  --query 'Addresses[?AssociationId==null].[PublicIp]'

전략 2: Reserved Instance / Savings Plans

CODE
On-Demand m5.xlarge: $0.192/시간 = $140/월
1년 RI (선납): $0.095/시간 = $69/월 (51% 절감)
3년 RI (선납): $0.060/시간 = $44/월 (69% 절감)

전략 3: Spot 인스턴스 (최대 90% 절감)

YAML
# EKS Spot 인스턴스 노드 그룹
managedNodeGroups:
- name: spot-workers
  spot: true
  instanceTypes:
  - m5.xlarge
  - m5a.xlarge  # 여러 타입으로 가용성 향상
  - m4.xlarge

전략 4: Auto Scaling 최적화

YAML
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
spec:
  minReplicas: 2
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        averageUtilization: 70
  behavior:
    scaleDown:
      stabilizationWindowSeconds: 300

전략 5: S3 Intelligent-Tiering

Bash
aws s3api put-bucket-intelligent-tiering-configuration \
  --bucket my-bucket \
  --id EntireBucket \
  --intelligent-tiering-configuration '{
    "Status": "Enabled",
    "Tierings": [
      {"Days": 90, "AccessTier": "ARCHIVE_ACCESS"},
      {"Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS"}
    ]
  }'

전략 6: 데이터 전송 비용 줄이기

  • 서비스를 같은 AZ 내에 배치 (AZ 간 전송도 과금!)
  • CloudFront로 오리진 트래픽 감소
  • VPC Gateway Endpoint로 S3 무료 연결

전략 7: 개발 환경 스케줄링

Python
# 평일 밤 10시~오전 8시, 주말 전체 중지
def stop_dev_instances():
    ec2 = boto3.client('ec2')
    instances = ec2.describe_instances(
        Filters=[
            {'Name': 'tag:Environment', 'Values': ['dev', 'staging']},
            {'Name': 'instance-state-name', 'Values': ['running']}
        ]
    )
    ids = [i['InstanceId'] for r in instances['Reservations'] for i in r['Instances']]
    if ids:
        ec2.stop_instances(InstanceIds=ids)

전략 8: VPA로 리소스 requests 최적화

Bash
# Vertical Pod Autoscaler 적정 리소스 추천
kubectl describe vpa my-app-vpa
# 결과: cpu: 120m, memory: 180Mi
# (기존 500m/512Mi 대비 75% 절감)

전략 9: 비용 태깅

Bash
aws ce get-cost-and-usage \
  --time-period Start=2025-01-01,End=2025-01-31 \
  --granularity MONTHLY \
  --metrics BlendedCost \
  --group-by Type=TAG,Key=Service

전략 10: 비용 이상 알람

AWS Budgets에서 예산 초과 시 즉시 알림 설정. 갑작스러운 비용 폭탄을 사전에 차단합니다.

클라우드 비용 최적화는 일회성 작업이 아닙니다. 월 1회 비용 리뷰를 팀 루틴으로 만드세요.

우선순위 높은 절감

순위조치예상 효과
1미사용 EBS/IP/스냅샷/로드밸런서 정리즉시
2권리 사이징(CPU 10% 미만 인스턴스)큼
3이그레스 경로 재설계(같은 리전·캐시)큼
4Savings Plans/CUD (안정 워크로드)중~큼
5스토리지 클래스 전환(IA/Archive)중
Bash
# AWS 예시: 유휴 EBS 후보
aws ec2 describe-volumes --filters Name=status,Values=available \
  --query 'Volumes[].{Id:VolumeId,Size:Size,Az:AvailabilityZone}'

예산 가드레일

  • 계정/태그 단위 예산 알람(80/100%)
  • Environment=dev 야간 스케줄 정지
  • GPU/대용량 인스턴스는 승인 태그 없으면 생성 거부(SCP/Policy)

절감 조치 후 비용이 다시 오를 때 원인 찾기

비용 최적화는 한 번 정리하면 끝나지 않고, 몇 달 뒤 다시 오르는 경우가 많습니다. 이때는 서비스별·태그별로 무엇이 늘었는지부터 좁혀야 합니다.

원인

  • 새 서비스가 비용 태그 없이 배포돼 담당자를 알 수 없음
  • 약정(Savings Plans·RI) 만료 후 온디맨드 요금으로 돌아감
  • 로그·스냅샷 보존 기간이 정해지지 않아 누적

확인 명령 (AWS 예시)

Bash
# 최근 두 달 서비스별 비용 비교
aws ce get-cost-and-usage --time-period Start=2026-07-01,End=2026-09-01 \
  --granularity MONTHLY --metrics UnblendedCost --group-by Type=DIMENSION,Key=SERVICE
# 약정 적용률(커버리지)
aws ce get-savings-plans-coverage --time-period Start=2026-08-01,End=2026-09-01
# 오래된 EBS 스냅샷
aws ec2 describe-snapshots --owner-ids self --query "Snapshots[?StartTime<='2026-03-01'].[SnapshotId,VolumeSize,StartTime]" --output table

해결과 재발 방지

  • 태그 없는 리소스 생성을 정책(SCP, 태그 정책)으로 막고, 약정 만료 30일 전 알림을 설정합니다.
  • 스냅샷·로그는 수명 주기 정책(Data Lifecycle Manager, 로그 보존 기간)으로 자동 정리합니다.

참고 자료

자주 묻는 질문 (FAQ)

Q. 예약 할인을 언제 사나요?
사용 패턴이 4~6주 이상 안정된 뒤. 성급한 3년 예약은 잠금 비용이 큽니다.

Q. 쿠버네티스 비용이 안 줄어요.
요청(request) 과다 → bin-pack 실패. VPA/권리 사이징과 클러스터 오토스케일러를 함께 보세요.

검증 환경·편집자 주

  • 검증 시점: 2026-09 (문서·CLI 플래그는 벤더 업데이트에 따라 달라질 수 있음)
  • 명령어는 읽기 전용 조회 위주이며, 프로덕션 적용 전 스테이징에서 plan/dry-run을 권장합니다.
  • 본문은 공식 문서 링크와 운영에서 반복되는 실패 패턴을 기준으로 편집 검토했습니다.

실무 적용 순서 (요약)

  1. 현재 상태 측정(메트릭·비용·오류율) 없이 도구부터 바꾸지 말 것
  2. 가장 작은 범위에서 변경 → 롤백 조건 명시
  3. 체크리스트를 런북/티켓 템플릿에 옮겨 팀 공유
  4. 한 달 뒤 지표로 효과 재평가 후 확대
✦ ✦ ✦
출처·검증 안내

글마다 출처와 확인 범위가 다릅니다. 아래에 확인일·확인 범위·출처가 기록된 글만 그 범위에서 확인된 것입니다. 기록이 없는 글은 적용 전 사용 중인 버전의 공식 문서로 직접 확인하고, 오류는 이메일로 알려주세요. 편집 정책 · 이메일로 제보

이 글에는 사람이 확인한 날짜·범위 기록이 아직 없습니다.

발행 ·
주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)AWS 공식 문서 ↗pgvector 공식 저장소 ↗

댓글

첫 번째 댓글을 남겨보세요.