비용 최적화
비용 최적화는 단가를 낮추는 것만으로 끝나지 않는다. 중단 가능한 작업에 Spot을 쓸 수 있는지, 사용량을 약정할 수 있는지, 드물게 읽는 데이터의 검색 비용이 저장 비용 절감보다 큰지 함께 봐야 한다. 이 글은 비용 가시화부터 구매 옵션과 저장·전송 비용 조정까지 연결한다.
1. EC2 구매 옵션
온디맨드 (On-Demand)
사용한 시간만큼 초 단위 과금 (Linux), 시간 단위 (Windows)
약정 없음, 언제든 시작·중지
- 사용 시나리오: 단기 워크로드, 예측 불가한 트래픽, 개발·테스트
예약 인스턴스 (Reserved Instances, RI)
1년 또는 3년 약정 → 온디맨드 대비 최대 72% 할인
결제 방식:
전액 선결제 (All Upfront) → 최대 할인
부분 선결제 (Partial Upfront) → 중간 할인
선결제 없음 (No Upfront) → 최소 할인
RI 유형
| 유형 | 특성 |
|---|---|
| Standard RI | 인스턴스 패밀리·리전 고정, 최대 할인 |
| Convertible RI | 인스턴스 패밀리 변경 가능, 할인율 낮음 |
| Scheduled RI | 특정 시간대만 실행 (현재 사용 중단) |
RI 범위
- 리전 RI: 리전 내 어느 AZ든 적용, AZ 간 유연
- AZ RI: 특정 AZ 고정, 용량 예약 보장
RI 마켓플레이스
- 불필요한 RI를 다른 AWS 고객에게 판매 가능
- Standard RI만 판매 가능 (Convertible RI 판매 불가)
Savings Plans
예약 인스턴스보다 유연한 약정 할인. 시간당 사용 금액을 약정한다.
약정: 시간당 $10 사용 → 1년 또는 3년
→ 약정 금액까지는 할인 요금
→ 초과분은 온디맨드 요금
유형 비교
| 유형 | 적용 범위 | 할인율 |
|---|---|---|
| Compute Savings Plans | EC2 전체 + Lambda + Fargate (인스턴스 패밀리·리전 무관) | 최대 66% |
| EC2 Instance Savings Plans | 특정 인스턴스 패밀리·리전 고정 | 최대 72% |
| SageMaker Savings Plans | SageMaker 전용 | 최대 64% |
RI vs Savings Plans 비교
| 항목 | 예약 인스턴스 | Savings Plans |
|---|---|---|
| 약정 방식 | 인스턴스 속성 | 시간당 사용 금액 |
| 유연성 | 낮음 | 높음 |
| Lambda·Fargate 적용 | 불가 | Compute SP만 가능 |
| 마켓플레이스 판매 | 가능 (Standard) | 불가 |
SAP 핵심: 유연하게 인스턴스 변경하면서 할인 = Compute Savings Plans / 최대 할인 고정 워크로드 = EC2 Instance SP or Standard RI
스팟 인스턴스 (Spot)
AWS 유휴 EC2 용량을 경매 방식으로 저렴하게 구매
온디맨드 대비 최대 90% 저렴
단점: AWS가 용량 필요 시 2분 전 알림 후 중단
사용 가능 워크로드 (중단 허용)
- 빅데이터 분석 (EMR)
- 배치 처리
- CI/CD 빌드
- 머신러닝 학습
- 스테이트리스 웹 서버 (Auto Scaling과 조합)
스팟 중단 대응
스팟 중단 알림 (2분 전)
→ EC2 인스턴스 메타데이터에서 감지
→ 진행 중인 작업 체크포인트 저장
→ Auto Scaling → 온디맨드로 교체
스팟 플릿 (Spot Fleet)
여러 인스턴스 유형·AZ 조합 → 목표 용량 유지
할당 전략:
lowestPrice — 최저 가격 우선
diversified — 여러 풀에 분산 (중단 위험 분산)
capacityOptimized — 용량 여유 있는 풀 우선
온디맨드 용량 예약 (On-Demand Capacity Reservation)
특정 AZ에 EC2 용량을 미리 예약 (사용 여부 무관 과금)
RI나 Savings Plans와 결합해 할인 적용 가능
사용 시나리오: 재해 복구, 규정 준수, 중요 이벤트 대비
구매 옵션 선택 기준 요약
| 워크로드 특성 | 구매 옵션 |
|---|---|
| 예측 가능, 1~3년 지속 | 예약 인스턴스 or Savings Plans |
| 인스턴스 유형 변경 가능성 있음 | Convertible RI or Compute Savings Plans |
| 중단 허용, 비용 최소화 | 스팟 인스턴스 |
| 단기·불규칙 | 온디맨드 |
| 용량 보장 필요 | 온디맨드 용량 예약 |
| 혼합 (기본 + 버스트) | RI/SP(기본) + 스팟(버스트) |
2. S3 스토리지 클래스 비용 최적화
스토리지 클래스 비교
| 클래스 | 가용성 | 최소 보존 | 사용 시나리오 |
|---|---|---|---|
| S3 Standard | 99.99% | 없음 | 자주 접근하는 데이터 |
| S3 Intelligent-Tiering | 99.9% | 없음 | 접근 패턴 불규칙 |
| S3 Standard-IA | 99.9% | 30일 | 가끔 접근, 빠른 복원 필요 |
| S3 One Zone-IA | 99.5% | 30일 | 재생성 가능한 데이터 |
| S3 Glacier Instant | 99.9% | 90일 | 분기 1회 접근, 즉시 복원 |
| S3 Glacier Flexible | 99.99% | 90일 | 연 1회 접근, 수 시간 복원 |
| S3 Glacier Deep Archive | 99.99% | 180일 | 7~10년 장기 보존 |
비용 구조 핵심
Standard → 저장 비용 높음, 조회 비용 낮음
Glacier → 저장 비용 낮음, 조회 비용 높음 + 조회 시간 있음
S3 Intelligent-Tiering
접근 패턴을 자동 모니터링
→ 30일 미접근 → Infrequent Access 계층으로 자동 이동 (40% 저렴)
→ 90일 미접근 → Archive Instant Access (68% 저렴)
→ 180일 미접근 → Archive Access (95% 저렴)
→ 접근 시 → 자동으로 Frequent Access 복귀
모니터링 비용: 오브젝트 1,000개당 소액
128KB 미만 오브젝트는 자동 이동 안 함 (Standard 유지)
S3 수명 주기 정책
규칙 예시:
생성 후 30일 → Standard-IA로 전환
생성 후 90일 → Glacier Flexible으로 전환
생성 후 365일 → Glacier Deep Archive로 전환
생성 후 2555일 (7년) → 삭제
SAP 핵심: 접근 패턴 예측 불가 = Intelligent-Tiering / 패턴 명확, 비용 최소화 = 수명 주기 정책
3. 데이터 전송 비용 최적화
비용 발생 구조
무료:
인터넷 → AWS (인바운드)
같은 AZ 내 EC2 간 (프라이빗 IP)
CloudFront → 인터넷
비용 발생:
AWS → 인터넷 (아웃바운드): GB당 과금
리전 간 데이터 전송: GB당 과금
다른 AZ 간 전송: GB당 과금 (같은 리전)
비용 절감 방법
CloudFront 활용
S3 → 직접 인터넷 배포: 아웃바운드 비용 발생
S3 → CloudFront → 인터넷: 아웃바운드 무료 (CloudFront → 사용자)
+ 캐싱으로 오리진 요청 감소
+ 전 세계 엣지에서 빠른 응답
같은 AZ 사용
EC2 (AZ-a) → EC2 (AZ-b): 비용 발생
EC2 (AZ-a) → EC2 (AZ-a): 무료 (프라이빗 IP 사용 시)
→ 데이터 집약적 서비스는 같은 AZ 배치 고려
VPC Endpoint 활용
EC2 → NAT Gateway → 인터넷 → S3: NAT + 아웃바운드 비용
EC2 → S3 Gateway Endpoint → S3: 무료 (VPC 내부 경로)
Direct Connect
대용량 데이터 정기 전송:
인터넷 아웃바운드: GB당 $0.09 (리전별 상이)
Direct Connect: GB당 $0.02 (인터넷의 1/4 수준)
4. 비용 관리 도구
AWS Cost Explorer
과거 비용 분석 (최대 13개월)
→ 서비스별, 리전별, 태그별 비용 분석
→ 비용 이상 탐지
→ 예약 인스턴스 / Savings Plans 추천
→ 미래 12개월 비용 예측
RI/SP 추천 기능
- 과거 사용 패턴 분석 → 최적 RI/SP 추천
- 예상 절감액 자동 계산
AWS Budgets
예산 설정 → 임계값 도달 시 알림
유형:
비용 예산: 월 $1,000 초과 시 SNS 알림
사용량 예산: EC2 시간 500시간 초과 시 알림
RI 활용률: RI 활용률 80% 미만 시 알림
SP 활용률: Savings Plans 활용률 80% 미만 시 알림
액션:
예산 초과 시 자동으로 IAM 정책 적용 → EC2 생성 차단
SNS → Lambda → 리소스 자동 중지
AWS Cost Anomaly Detection
머신러닝으로 비용 이상 자동 탐지
→ 예상치 못한 비용 급증 알림
→ 원인 서비스·리전·태그 자동 식별
→ SNS or 이메일 알림
AWS Trusted Advisor
AWS 환경을 자동으로 검사해 개선 권고를 제공한다.
5가지 검사 카테고리
| 카테고리 | 예시 |
|---|---|
| 비용 최적화 | 사용하지 않는 RI, 낮은 활용률 EC2, 아이들 로드 밸런서 |
| 성능 | CloudFront 미사용, 고활용률 EC2 |
| 보안 | MFA 미설정, 공개 S3 버킷, 루트 계정 사용 |
| 내결함성 | Multi-AZ 미사용, 스냅샷 없는 EBS |
| 서비스 한도 | 한도 80% 초과 리소스 |
지원 플랜별 접근
- Basic / Developer: 기본 7개 검사
- Business / Enterprise: 전체 검사 + API 접근
AWS Compute Optimizer
EC2, Auto Scaling, Lambda, EBS의 사용률 분석
→ 최적 인스턴스 유형·크기 추천
→ 과도하게 프로비저닝된 리소스 식별
→ 비용 절감 예상액 제시
예시:
현재: m5.4xlarge (CPU 평균 8% 사용)
추천: m5.large (비용 75% 절감)
5. 태그 기반 비용 배분
비용 배분 태그
리소스에 태그 부착:
Environment: Production
Team: Backend
Project: UserService
Cost Explorer → 태그별 비용 분석
→ 팀별, 프로젝트별, 환경별 비용 파악
→ 부서 간 비용 배분 (Chargeback)
AWS Organizations + 태그 정책
Organizations 태그 정책
→ 모든 계정에 필수 태그 강제
→ 태그 없는 리소스 생성 차단 (SCP 활용)
6. 비용 최적화 패턴
패턴 1: 혼합 구매 전략
기본 워크로드 (항상 실행):
→ 1년 Savings Plans or 예약 인스턴스
→ 온디맨드 대비 40~60% 절감
피크 트래픽 대응:
→ 스팟 인스턴스 (Auto Scaling 혼합 정책)
→ 온디맨드 대비 70~90% 절감
결과: 전체 비용 50~70% 절감
패턴 2: 개발 환경 비용 절감
EventBridge 스케줄 (평일 오전 8시)
→ Lambda → EC2 개발 인스턴스 시작
EventBridge 스케줄 (평일 오후 7시)
→ Lambda → EC2 개발 인스턴스 중지
결과: 개발 인스턴스 비용 70% 절감 (하루 11시간만 실행)
패턴 3: S3 비용 최적화
신규 오브젝트 → S3 Standard
→ 30일 후 → S3 Standard-IA (자동)
→ 90일 후 → S3 Glacier Flexible (자동)
→ 7년 후 → 삭제 (자동)
접근 패턴 불규칙한 버킷:
→ S3 Intelligent-Tiering (자동 계층 이동)
패턴 4: 데이터 전송 비용 최적화
S3 정적 콘텐츠 배포:
S3 → CloudFront → 사용자 (아웃바운드 절감)
내부 AWS 서비스 통신:
EC2 → VPC Endpoint → S3/DynamoDB (NAT 비용 제거)
대용량 데이터 센터 → AWS:
Direct Connect (인터넷 대비 1/4 비용)
패턴 5: 비용 이상 자동 대응
Cost Anomaly Detection
→ 비용 이상 탐지 (예: 어제 대비 300% 증가)
→ SNS 알림
→ Lambda
→ Budgets 액션: IAM 정책 적용 (추가 EC2 생성 차단)
→ Slack 알림 (운영팀)
7. 핵심 암기 포인트
| 키워드 | 선택 |
|---|---|
| 1~3년 고정 워크로드 최대 할인 | Standard RI (전액 선결제) |
| 인스턴스 유형 변경 가능성, 할인 | Convertible RI or Compute Savings Plans |
| EC2 + Lambda + Fargate 통합 할인 | Compute Savings Plans |
| 중단 허용 배치·빅데이터 최저 비용 | 스팟 인스턴스 |
| 접근 패턴 불규칙한 S3 | Intelligent-Tiering |
| S3 장기 보존 최저 비용 | Glacier Deep Archive |
| S3 → 인터넷 아웃바운드 절감 | CloudFront |
| EC2 → S3 전송 비용 제거 | S3 Gateway Endpoint |
| 대용량 온프레미스 → AWS 전송 비용 절감 | Direct Connect |
| 과거 비용 분석·RI 추천 | Cost Explorer |
| 예산 초과 시 알림·자동 조치 | AWS Budgets |
| 비용 급증 자동 탐지 | Cost Anomaly Detection |
| 과도 프로비저닝 EC2 감지 | Compute Optimizer |
| 사용하지 않는 RI·낮은 활용률 감지 | Trusted Advisor |
| 팀·프로젝트별 비용 분리 | 비용 배분 태그 + Cost Explorer |
핵심 내용을 다시 정리하면
- EC2 구매 옵션: 온디맨드(단기) → Savings Plans/RI(장기) → 스팟(중단 허용), 혼합 전략으로 최적화
- S3: 접근 빈도에 따라 Standard → IA → Glacier 계층 이동, 불규칙 패턴은 Intelligent-Tiering
- 데이터 전송: CloudFront(아웃바운드), VPC Endpoint(내부), Direct Connect(대용량)로 절감
- 비용 관리 도구: Cost Explorer(분석), Budgets(예산·알림), Anomaly Detection(이상 탐지), Trusted Advisor(권고), Compute Optimizer(우측 사이징)
- 태그: 팀·프로젝트별 비용 배분의 기초