AWS 비용 최적화 완전 가이드 — EC2·RDS·S3·Lambda 비용을 50% 줄이는 실전 전략
AWS 청구서의 80%를 차지하는 EC2·RDS·S3·Lambda 4개 영역을 체계적으로 줄이는 방법. Savings Plans vs Reserved Instance 선택 기준, gp2→gp3 전환, VPC Gateway Endpoint로 NAT 비용 제거, CloudFront Egress 절감, Lambda Power Tuning까지 실전 전략을 정리했다.
한 줄 요약: AWS 청구서가 예상보다 2~5배 높게 나왔다면, EC2·RDS·S3·Lambda 네 영역을 순서대로 최적화하는 것만으로 50% 이상 절감할 수 있다.
이 글이 필요한 사람
첫 AWS 청구서에 충격을 받은 스타트업 팀
Reserved Instance와 Savings Plans 차이를 모르고 On-Demand만 쓰고 있는 개발자
데이터 전송 비용이 왜 이렇게 높은지 원인을 모르는 백엔드·DevOps 엔지니어
월 AWS 지출이 $1,000을 넘어 비용 구조를 정리하고 싶은 팀
※ 기준: 2026년 4월 AWS 공개 요금 기준(us-east-1, ap-northeast-2). 리전별 차이 있음.
AWS 비용 구조 — 어디서 돈이 나가는가
AWS 청구서에는 200개가 넘는 과금 항목이 있지만 스타트업 비용의 80%는 실제로 4개 영역에서 나온다.
항목
평균 비중
최적화 난이도
EC2 (컴퓨팅)
35~45%
낮음 — Savings Plans만으로 30% 절감
RDS (데이터베이스)
20~30%
중간 — Reserved Instance + 스토리지 최적화
데이터 전송 (Egress)
10~25%
높음 — 아키텍처 변경 필요
S3 (스토리지)
5~15%
낮음 — 스토리지 클래스 자동 전환
최적화 첫 단계는 Cost Explorer에서 지난 3~6개월 비용을 서비스별로 내려받는 것이다. 숫자를 보기 전까지는 어디서 시작해야 할지 알 수 없다.
Cost Explorer 서비스별 뷰 — 최적화 우선순위 결정의 출발점
EC2 비용 최적화 — Spot, Reserved, Savings Plans 선택 기준
EC2 구매 옵션은 3가지다. 잘못 선택하면 On-Demand 대비 비용 차이가 최대 90%까지 벌어진다.
On-Demand: 시간 단위 과금. 트래픽 예측이 불가한 초기 테스트 구간에만 사용. 가장 비쌈.
Reserved Instances(RI): 1년 또는 3년 약정. On-Demand 대비 최대 72% 할인. 특정 인스턴스 타입·리전에 묶임.
Savings Plans: 시간당 최소 지출 금액을 약정. Compute Savings Plans는 인스턴스 패밀리·리전에 무관하게 적용 — RI보다 유연하다.
Spot Instances: AWS 여유 용량 활용. On-Demand 대비 최대 90% 저렴. 인터럽트 가능성이 있어 배치·CI 등 상태 비저장 워크로드에 적합.
CPU 사용률 평균 30% 미만 인스턴스는 다운사이징 우선 대상이다. Savings Plans를 구매하기 전에 반드시 인스턴스 적정 크기부터 확인할 것. t3.medium → t3.small 전환만으로도 비용이 절반이 된다.
Auto Scaling 그룹에서 On-Demand와 Spot을 혼합하는 Mixed Instances Policy를 활용하면 프로덕션 웹 서버에도 Spot을 안전하게 적용할 수 있다. On-Demand 20% + Spot 80% 비율로 구성하면 Spot 인터럽션 시 On-Demand로 자동 전환되면서 비용은 On-Demand 단일 구성 대비 55~65% 절감된다. AWS Terraform 프로바이더에서 mixed_instances_policy 블록으로 선언할 수 있다.
RDS 비용 최적화 — gp3 전환, Reserved, 개발 환경 정지
RDS는 인스턴스 비용 외에 스토리지, I/O, 백업 스토리지, 데이터 전송이 각각 별도 과금된다. 인스턴스 비용만 보면 전체 RDS 비용의 절반도 안 잡힌다.
최적화 항목
방법
절감 수준
인스턴스 과금
1년 Reserved Instance
40~43%
gp2 스토리지
gp3로 전환 (성능 동일)
20% 절감
개발환경 Multi-AZ
Single-AZ로 전환
50% 절감
백업 보관 기간
35일 → 7일 단축
백업비 80% 절감
개발·스테이징 DB
야간·주말 자동 정지
월 비용 60% 절감
gp2 → gp3 스토리지 전환 (무중단)
# 현재 스토리지 타입 확인
aws rds describe-db-instances \
--query 'DBInstances[*].{ID:DBInstanceIdentifier,Storage:StorageType,SizeGB:AllocatedStorage}' \
--output table
# gp3로 전환 (다운타임 없음, I/O 성능 기본 3,000 IOPS / 125 MB/s)
aws rds modify-db-instance \
--db-instance-identifier my-prod-db \
--storage-type gp3 \
--iops 3000 \
--storage-throughput 125 \
--apply-immediately
# 개발환경 RDS 야간 자동 정지 (EventBridge + Lambda 대안: AWS Instance Scheduler)
aws rds stop-db-instance \
--db-instance-identifier my-dev-db
gp3는 gp2 대비 20% 저렴하면서 기본 IOPS 3,000을 제공한다 — 마이그레이션 이유가 충분하다
Aurora Serverless v2는 간헐적 트래픽 환경에서 유리하다. ACU(Aurora Capacity Unit) 단위로 0.5~128 ACU 사이에서 자동 스케일링되며, 최솟값을 0.5 ACU로 설정하면 미사용 시간에 비용이 거의 발생하지 않는다. 단, 콜드 스타트 latency가 1~3초 발생할 수 있어 항상 트래픽이 있는 프로덕션보다 내부 툴·스테이징 환경에 적합하다.
개발·스테이징 RDS 인스턴스는 EventBridge + Lambda 또는 AWS Instance Scheduler로 야간·주말 자동 정지를 설정하면 해당 인스턴스 월 비용의 60% 이상을 절감할 수 있다.
S3 & 데이터 전송 비용 — 가장 자주 놓치는 숨겨진 청구
데이터 전송(Egress) 비용은 스타트업에서 가장 자주 예상을 초과하는 항목이다. AWS에서 인터넷으로 나가는 트래픽은 GB당 $0.09(첫 10TB/월)가 부과된다.
Egress 비용이 급증하는 패턴 3가지:
NAT Gateway 과사용: 프라이빗 서브넷 EC2가 외부 API를 빈번하게 호출할 때 NAT Gateway 처리 비용(GB당 $0.045)이 빠르게 누적된다.
EC2 → S3 미경유 설정: 같은 리전이라도 VPC Gateway Endpoint를 쓰지 않으면 NAT Gateway를 통해 과금될 수 있다.
AZ 간 통신: 같은 리전이라도 다른 AZ의 EC2 간 트래픽은 GB당 $0.01 부과된다. 로드밸런서 뒤 서비스들이 여러 AZ에 분산되어 있으면 누적이 상당하다.
VPC S3 Gateway Endpoint 생성 — NAT 비용 제거 (Terraform)
CloudFront는 S3 Egress 절감에 가장 효과적인 수단이다. S3 → CloudFront 구간 데이터 전송은 무료이고, CloudFront → 인터넷 단가는 S3 직접 전송보다 저렴하다. 정적 자산이 많은 서비스라면 CloudFront 캐싱 적용만으로 S3 데이터 전송 비용의 50~70%를 줄일 수 있다.
S3 스토리지 클래스 최적화는 Intelligent-Tiering을 라이프사이클 정책으로 한 번만 설정하면 이후 자동 관리된다. 30일 이상 미접근 객체는 IA(Infrequent Access) 티어로, 90일 이상은 Glacier Instant Retrieval로 이동한다. 단, 128KB 미만 소형 파일이 매우 많다면 Intelligent-Tiering 관리 비용($0.0025/1,000 객체)이 오히려 더 나올 수 있어 파일 크기 분포를 먼저 확인해야 한다.
Lambda & 서버리스 비용 — 메모리 크기가 핵심 변수
Lambda 요금은 GB-초 단위다. 메모리를 128MB에서 1024MB로 높여도 실행 시간이 그 이상 줄면 총 비용이 오히려 내려간다. AWS Lambda Power Tuning 도구를 쓰면 실제 함수로 다양한 메모리 크기를 테스트해 최적값을 찾아준다.
메모리
실행 시간
GB-초
비용(100만 호출)
128 MB
800 ms
0.100
$1.67
512 MB
200 ms
0.100
$1.67
1024 MB
80 ms
0.082
$1.37 (최적)
Lambda Power Tuning 실행 (Step Functions 기반)
# AWS Lambda Power Tuning은 SAR에서 1클릭 배포 가능
# https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:451282441545:applications~aws-lambda-power-tuning
# 최적 메모리 탐색 실행
aws stepfunctions start-execution \
--state-machine-arn arn:aws:states:ap-northeast-2:ACCOUNT_ID:stateMachine:powerTuningStateMachine \
--input '{
"lambdaARN": "arn:aws:lambda:ap-northeast-2:ACCOUNT_ID:function:my-function",
"powerValues": [128, 256, 512, 1024, 1536, 3008],
"num": 10,
"parallelInvocation": true,
"strategy": "cost"
}'
# 결과 확인 후 최적 메모리로 함수 업데이트
aws lambda update-function-configuration \
--function-name my-function \
--memory-size 1024
Lambda에서 자주 놓치는 비용 항목이 하나 더 있다. Provisioned Concurrency는 콜드 스타트를 없애주지만 대기 시간에도 비용이 발생한다. 실제로 콜드 스타트 문제가 있는지 먼저 측정하고, 있다면 Provisioned Concurrency 대신 SnapStart(Java), 또는 함수 최적화(패키지 크기 축소, 레이어 분리)를 먼저 시도하는 것이 비용 효율적이다.
Cost Explorer & Anomaly Detection — 청구 폭탄 방지 필수 설정
비용 최적화보다 더 중요한 것은 이상 징후를 즉시 알아채는 것이다. 아래 3가지 알림은 무료로 설정할 수 있으며 세팅에 10분이 걸리지 않는다.
월별 예산 알림: AWS Budgets에서 월 예상 비용의 80%·100% 도달 시 이메일·SNS 알림. 서비스별 세부 예산도 함께 설정할 것.
Cost Anomaly Detection: 전주 대비 비용이 비정상 증가할 때 자동 감지. 활성화 후 수일 학습 기간이 필요하다. NAT Gateway 실수, S3 퍼블릭 오픈, Lambda 무한루프 등을 몇 시간 안에 잡아낸다.
Compute Optimizer 활성화: EC2·Lambda·EBS 적정 크기를 머신러닝으로 분석해 구체적 권고를 제공한다. 계정당 무료. 14일 수집 후 권고가 나온다.
Cost Anomaly Detection — 머신러닝으로 비정상 비용 증가를 자동 감지한다
실제 사례 — 월 $8,200에서 $3,600으로, 6주 최적화 기록
이 사례는 MAU 10만 명 규모 B2B SaaS 스타트업이 6주 동안 수행한 최적화 결과다. 수치는 익명 처리했다.
최적화 전 구성
EC2: t3.xlarge 12대 On-Demand — 월 $3,800
RDS: db.r5.large Multi-AZ, gp2 1 TB — 월 $2,100
S3 + 데이터 전송 — 월 $1,600 (Egress 비중 70%)
NAT Gateway — 월 $700
6주 동안 적용한 변경사항
EC2: CPU 사용률 분석 → 4대 다운사이징 + Compute Savings Plans 1년 구매 → $3,800 → $1,850
RDS: gp2 → gp3 전환 + 1년 RI 구매 → $2,100 → $1,050
S3 Egress: CloudFront 캐싱 적용 (원본 요청 85% 감소) + VPC S3 Gateway Endpoint 추가 → $1,600 → $450
NAT Gateway: VPC Endpoint 추가 + 내부 서비스 직접 통신 전환 → $700 → $250
결과: 월 $8,200 → $3,600 (56% 절감). 엔지니어 2명이 총 6주, 실제 작업 시간은 80시간 미만이었다.
가장 빠른 ROI 순서는 EC2 Savings Plans → RDS gp3·RI → S3 Egress 순이다. 아키텍처 변경 없이 클릭 몇 번으로 바꿀 수 있는 항목부터 시작하고, 데이터 전송 최적화는 그 다음에 진행하는 것이 리스크를 낮추면서 효과를 극대화하는 순서다.