AWS S3 요금체계
TL;DR
- AWS S3 요금체계의 핵심 개념과 용어를 한눈에 정리한다.
- AWS S3 요금체계이(가) 등장한 배경과 필요성을 요약한다.
- AWS S3 요금체계의 특징과 적용 포인트를 빠르게 확인한다.
1. 개념
AWS S3 요금체계은(는) 핵심 용어와 정의를 정리한 주제로, 개발/운영 맥락에서 무엇을 의미하는지 설명한다.
2. 배경
기존 방식의 한계나 현업의 요구사항을 해결하기 위해 이 개념이 등장했다는 흐름을 이해하는 데 목적이 있다.
3. 이유
도입 이유는 보통 유지보수성, 성능, 안정성, 보안, 협업 효율 같은 실무 문제를 해결하기 위함이다.
4. 특징
- 핵심 정의와 범위를 명확히 한다.
- 실무 적용 시 선택 기준과 비교 포인트를 제공한다.
- 예시 중심으로 빠른 이해를 돕는다.
5. 상세 내용
작성일: 2026-02-24 카테고리: Cloud / AWS / S3 포함 내용: S3 요금, 스토리지 클래스, Lifecycle Policy, 비용 최적화, 데이터 전송 비용, Glacier, Intelligent-Tiering, S3 Select, CloudFront
1. 핵심 개념 - S3 요금의 구성 요소
S3 과금은 단순 용량이 아닌 복합 과금이다
┌─────────────────────────────────────────────────────────────┐
│ │
│ 흔한 오해: "S3 = 저장 비용만 내면 된다" │
│ │
│ 실제: S3 요금은 3가지 축으로 구성된다 │
│ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 저장량 요청(API) 데이터 전송 │ │
│ │ (Storage) (Requests) (Transfer) │ │
│ │ │ │
│ │ 월 평균 사용 PUT/GET/LIST 인터넷 아웃 │ │
│ │ GB 단위 과금 건당 과금 바운드 과금 │ │
│ │ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ + 스토리지 클래스에 따라 "데이터 검색 비용" 추가 │
│ (Glacier 등 아카이브 클래스 복원 시) │
│ │
└─────────────────────────────────────────────────────────────┘
2. 과금 항목 상세
스토리지 비용
┌─────────────────────────────────────────────────────────────┐
│ │
│ 스토리지 비용 = 월 평균 저장 용량 × 단가 │
│ │
│ 계산 방식: │
│ ├── 1시간 단위로 측정한 사용량의 월 평균 │
│ ├── GB 단위 과금 │
│ └── 월 중간에 삭제해도 보관한 시간만큼만 과금 │
│ │
│ S3 Standard (us-east-1 기준): │
│ ├── 처음 50TB: ~$0.023 / GB / 월 │
│ ├── 50TB ~ 450TB: ~$0.022 / GB / 월 │
│ └── 450TB 초과: ~$0.021 / GB / 월 │
│ │
│ 서울 리전 (ap-northeast-2): │
│ └── ~$0.025 / GB / 월 (리전별로 차이 있음) │
│ │
└─────────────────────────────────────────────────────────────┘
요청(API) 비용
┌─────────────────────────────────────────────────────────────┐
│ │
│ 요청 비용 = API 호출 횟수 × 단가 │
│ │
│ 쓰기 계열 (비쌈): │
│ ├── PUT, COPY, POST, LIST │
│ └── ~$0.005 / 1,000건 │
│ │
│ 읽기 계열 (저렴): │
│ ├── GET, SELECT │
│ └── ~$0.0004 / 1,000건 │
│ │
│ 무료: │
│ └── DELETE 요청은 무료 │
│ │
│ 주의: 소용량 파일 수백만 개 → 요청 비용 폭탄 가능 │
│ 예) 1KB 파일 100만 개 GET = $0.40 │
│ 100MB 파일 1개 GET = $0.0004 │
│ │
└─────────────────────────────────────────────────────────────┘
데이터 전송 비용
┌─────────────────────────────────────────────────────────────┐
│ │
│ 인바운드 (S3로 업로드): 무료 │
│ │
│ 아웃바운드 (S3에서 다운로드): │
│ ├── 인터넷으로: ~$0.09 / GB (처음 10TB) │
│ ├── 10TB ~ 40TB: ~$0.085 / GB │
│ └── 40TB 초과: ~$0.07 / GB │
│ │
│ AWS 서비스 간: │
│ ├── 같은 리전 내 EC2 ↔ S3: 무료 │
│ ├── 같은 리전 내 Lambda → S3: 무료 │
│ ├── 다른 리전 (Cross-region): ~$0.02 / GB │
│ └── CloudFront → S3: 무료 (Origin 요청) │
│ │
└─────────────────────────────────────────────────────────────┘
데이터 검색 비용 (아카이브 클래스)
┌─────────────────────────────────────────────────────────────┐
│ │
│ Standard 클래스 → 검색 비용 없음 │
│ │
│ Glacier 클래스 → 복원 시 별도 과금: │
│ │
│ Glacier Instant Retrieval: │
│ └── 즉시 복원, ~$0.03 / GB │
│ │
│ Glacier Flexible Retrieval: │
│ ├── Expedited (1~5분): ~$0.03 / GB + $0.01 / 요청 │
│ ├── Standard (3~5시간): ~$0.01 / GB │
│ └── Bulk (5~12시간): 무료 │
│ │
│ Glacier Deep Archive: │
│ ├── Standard (12시간): ~$0.02 / GB │
│ └── Bulk (48시간): ~$0.0025 / GB │
│ │
└─────────────────────────────────────────────────────────────┘
3. 스토리지 클래스별 요금 비교
클래스 비교표
| 스토리지 클래스 | 저장 비용/GB/월 | GET 1,000건 | 최소 보관 | 가용성 | 적합한 용도 |
|---|---|---|---|---|---|
| S3 Standard | ~$0.023 | ~$0.0004 | 없음 | 99.99% | 자주 접근하는 데이터 |
| Intelligent-Tiering | ~$0.023 | ~$0.0004 | 없음 | 99.9% | 접근 패턴 불규칙 |
| Standard-IA | ~$0.0125 | ~$0.001 | 30일 | 99.9% | 월 1회 미만 접근 |
| One Zone-IA | ~$0.01 | ~$0.001 | 30일 | 99.5% | 재생성 가능한 데이터 |
| Glacier Instant | ~$0.004 | ~$0.03 | 90일 | 99.9% | 분기 1회 접근, 즉시 복원 |
| Glacier Flexible | ~$0.0036 | 별도 과금 | 90일 | 99.99% | 연 1~2회 접근 |
| Glacier Deep Archive | ~$0.00099 | 별도 과금 | 180일 | 99.99% | 장기 보관, 거의 접근 안 함 |
클래스별 특성 상세
┌─────────────────────────────────────────────────────────────┐
│ │
│ S3 Standard │
│ ├── 저장 비용: 가장 비쌈 │
│ ├── 요청 비용: 가장 저렴 │
│ ├── 최소 보관 기간 없음 (1초 저장 후 삭제도 OK) │
│ └── 사용 사례: 웹 서비스 이미지, 자주 읽는 데이터 │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ │
│ Intelligent-Tiering │
│ ├── 저장 비용: Standard와 동일하게 시작 │
│ ├── 모니터링 비용: ~$0.0025 / 1,000 객체 / 월 │
│ ├── 30일 미접근 → Infrequent Access 자동 이동 │
│ ├── 90일 미접근 → Archive Instant 자동 이동 (선택) │
│ └── 사용 사례: 접근 패턴 예측 어려운 데이터 │
│ │
│ 주의: 128KB 미만 객체는 Intelligent-Tiering 비효율 │
│ → 항상 Standard 요금 과금됨 │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ │
│ Standard-IA (Infrequent Access) │
│ ├── 저장 비용: Standard의 약 54% 수준 │
│ ├── 요청 비용: Standard보다 비쌈 │
│ ├── 최소 보관 기간: 30일 (30일 전 삭제 시 차액 청구) │
│ └── 사용 사례: 백업, DR 데이터, 월 1회 미만 접근 │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ │
│ One Zone-IA │
│ ├── Standard-IA보다 20% 저렴 │
│ ├── 단일 AZ에만 저장 (AZ 장애 시 데이터 손실 위험) │
│ └── 사용 사례: 재생성 가능한 썸네일, 중간 처리 결과 │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ │
│ Glacier Deep Archive │
│ ├── 저장 비용: ~$0.00099/GB/월 (Standard의 4% 수준) │
│ ├── 최소 보관 기간: 180일 │
│ ├── 복원 시간: 최대 48시간 (Bulk) │
│ └── 사용 사례: 규정 준수 아카이브, 7년 이상 장기 보관 │
│ │
└─────────────────────────────────────────────────────────────┘
4. 비용 최적화 전략
Lifecycle Policy로 자동 전환
┌─────────────────────────────────────────────────────────────┐
│ │
│ Lifecycle Policy = 시간 경과에 따른 자동 클래스 전환 │
│ │
│ 예시: 로그 파일 Lifecycle │
│ │
│ 0일 ──────→ S3 Standard │
│ (빠른 접근 필요, 최근 로그 분석) │
│ │
│ 30일 ──────→ Standard-IA │
│ (가끔 접근, 비용 절감) │
│ │
│ 90일 ──────→ Glacier Flexible │
│ (거의 접근 안 함, 저렴하게 보관) │
│ │
│ 365일 ──────→ Glacier Deep Archive │
│ (규정 준수 보관, 최저 비용) │
│ │
│ 2555일 ──────→ 삭제 (7년 보관 정책) │
│ │
└─────────────────────────────────────────────────────────────┘
Lifecycle Policy 설정 예시
{
"Rules": [
{
"ID": "log-archive-rule",
"Status": "Enabled",
"Filter": { "Prefix": "logs/" },
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": { "Days": 2555 }
}
]
}
Intelligent-Tiering 활용
┌─────────────────────────────────────────────────────────────┐
│ │
│ Intelligent-Tiering이 유리한 경우: │
│ ├── 접근 패턴이 불규칙하거나 예측 불가 │
│ ├── 데이터가 많고 관리 오버헤드를 줄이고 싶을 때 │
│ └── 128KB 이상의 객체 │
│ │
│ Intelligent-Tiering이 불리한 경우: │
│ ├── 128KB 미만 소용량 파일 다수 (모니터링 비용 손해) │
│ ├── 접근 패턴이 명확히 예측 가능할 때 │
│ └── 단기 보관 데이터 (1개월 미만) │
│ │
└─────────────────────────────────────────────────────────────┘
S3 Select로 전송량 절감
┌─────────────────────────────────────────────────────────────┐
│ │
│ 일반 조회: │
│ ├── 파일 전체 다운로드 후 앱에서 필터링 │
│ ├── 1GB CSV에서 10MB 데이터 필요 → 1GB 전송 비용 발생 │
│ └── 전송 비용 + 처리 시간 낭비 │
│ │
│ S3 Select 사용: │
│ ├── SQL 쿼리로 S3 내부에서 필터링 │
│ ├── 1GB CSV에서 필요한 10MB만 반환 │
│ └── 전송 비용 90% 절감 가능 │
│ │
│ 지원 형식: CSV, JSON, Parquet │
│ 과금: 스캔한 데이터 $0.002/GB + 반환 데이터 $0.0007/GB │
│ │
└─────────────────────────────────────────────────────────────┘
CloudFront vs Transfer Acceleration
┌─────────────────────────────────────────────────────────────┐
│ │
│ CloudFront (CDN): │
│ ├── 목적: 엣지에서 콘텐츠 캐싱 → 반복 요청 처리 │
│ ├── S3 아웃바운드 요청 자체를 줄임 │
│ ├── S3 → CloudFront 전송: 무료 │
│ ├── CloudFront → 인터넷: ~$0.01~0.08/GB │
│ └── 적합: 정적 파일, 이미지, 동영상 (반복 조회) │
│ │
│ Transfer Acceleration: │
│ ├── 목적: 업로드 속도 향상 (업로드에 특화) │
│ ├── AWS 엣지 → S3로 고속 네트워크 경유 │
│ ├── 추가 비용: ~$0.04~0.08/GB 추가 │
│ └── 적합: 전 세계 사용자가 대용량 파일 업로드하는 경우 │
│ │
│ 결론: │
│ ├── 다운로드 최적화 → CloudFront │
│ └── 업로드 최적화 → Transfer Acceleration │
│ │
└─────────────────────────────────────────────────────────────┘
기타 최적화 방법
┌─────────────────────────────────────────────────────────────┐
│ │
│ 불필요한 버전/삭제 마커 정리: │
│ ├── 버저닝 활성화 시 이전 버전도 저장 비용 발생 │
│ ├── 오래된 버전 자동 삭제 Lifecycle 설정 권장 │
│ └── 삭제 마커도 누적되면 LIST 성능 저하 + 비용 │
│ │
│ Multipart Upload 미완료 파트 정리: │
│ ├── 업로드 실패/중단 시 파트가 S3에 남아 과금됨 │
│ ├── Lifecycle: AbortIncompleteMultipartUpload 설정 │
│ └── 예) 7일 후 자동 삭제 │
│ │
└─────────────────────────────────────────────────────────────┘
5. 실제 비용 예시 시나리오
소규모 시나리오
┌─────────────────────────────────────────────────────────────┐
│ │
│ 조건: │
│ ├── 저장: 100GB (S3 Standard, us-east-1) │
│ ├── 요청: 월 PUT 1만 건 + GET 10만 건 │
│ └── 전송: 아웃바운드 10GB │
│ │
│ 계산: │
│ ├── 스토리지: 100 × $0.023 = $2.30 │
│ ├── PUT 요청: 10,000 / 1,000 × $0.005 = $0.05 │
│ ├── GET 요청: 100,000 / 1,000 × $0.0004 = $0.04 │
│ └── 전송: 10 × $0.09 = $0.90 │
│ │
│ 월 합계: 약 $3.29 │
│ │
└─────────────────────────────────────────────────────────────┘
중규모 시나리오
┌─────────────────────────────────────────────────────────────┐
│ │
│ 조건: │
│ ├── 저장: 1TB (S3 Standard) │
│ ├── 요청: 월 PUT 10만 건 + GET 100만 건 │
│ └── 전송: 아웃바운드 500GB │
│ │
│ 계산: │
│ ├── 스토리지: 1,024 × $0.023 = $23.55 │
│ ├── PUT 요청: 100,000 / 1,000 × $0.005 = $0.50 │
│ ├── GET 요청: 1,000,000 / 1,000 × $0.0004 = $0.40 │
│ └── 전송: 500 × $0.09 = $45.00 │
│ │
│ 월 합계: 약 $69.45 │
│ │
│ 최적화 포인트: │
│ ├── CloudFront 도입 시 전송 비용 대폭 절감 가능 │
│ └── CloudFront: 500GB × ~$0.02 = $10 (약 78% 절감) │
│ │
└─────────────────────────────────────────────────────────────┘
대규모 시나리오 - Glacier 비교
┌─────────────────────────────────────────────────────────────┐
│ │
│ 조건: 10TB 저장 (로그/아카이브, 접근 드묾) │
│ │
│ S3 Standard로만 저장: │
│ └── 10,240 × $0.023 = $235.52 / 월 │
│ │
│ Lifecycle 전략 적용: │
│ ├── 최근 1개월 (1TB): Standard = $23.55 │
│ ├── 1~3개월 (2TB): Standard-IA = $25.60 │
│ └── 3개월 이상 (7TB): Deep Archive = $7.09 │
│ │
│ Lifecycle 적용 합계: 약 $56.24 / 월 │
│ │
│ 절감 효과: $235.52 → $56.24 (76% 절감) │
│ │
└─────────────────────────────────────────────────────────────┘
6. 주의할 점 / 흔한 실수
소용량 파일 다수 vs 대용량 파일 소수
┌─────────────────────────────────────────────────────────────┐
│ │
│ 같은 총 저장량이라도 파일 구성에 따라 요청 비용 폭탄 │
│ │
│ 케이스 A: 1KB 파일 100만 개 (총 ~1GB) │
│ ├── 스토리지: ~$0.023 │
│ └── GET 100만 건: $0.40 │
│ │
│ 케이스 B: 1GB 파일 1개 │
│ ├── 스토리지: ~$0.023 │
│ └── GET 1건: $0.0000004 │
│ │
│ → 케이스 A의 요청 비용이 100만 배 비쌈 │
│ │
│ 해결책: │
│ ├── 작은 파일은 묶어서 업로드 (TAR, ZIP) │
│ ├── S3 Select로 내부에서 필터링 │
│ └── 또는 DynamoDB/ElasticSearch로 메타데이터 분리 │
│ │
└─────────────────────────────────────────────────────────────┘
전송 비용 함정
┌─────────────────────────────────────────────────────────────┐
│ │
│ 무료인 경우: │
│ ├── 인터넷 → S3 업로드 (인바운드) │
│ ├── 같은 리전 EC2 ↔ S3 │
│ ├── 같은 리전 Lambda → S3 │
│ └── CloudFront ↔ S3 (Origin 요청) │
│ │
│ 과금되는 경우: │
│ ├── S3 → 인터넷 (아웃바운드): ~$0.09/GB │
│ ├── Cross-region 전송: ~$0.02/GB │
│ └── 다른 리전 EC2 ↔ S3 │
│ │
│ 흔한 실수: │
│ ├── 서울 S3 → 도쿄 EC2: Cross-region 과금 발생 │
│ └── 해결: 같은 리전에 S3와 EC2 배치 │
│ │
└─────────────────────────────────────────────────────────────┘
Lifecycle 미설정으로 인한 비용 누적
┌─────────────────────────────────────────────────────────────┐
│ │
│ 버저닝 활성화 후 Lifecycle 미설정: │
│ │
│ 최신 버전: 파일 1개 100MB │
│ 이전 버전: 파일 99개 9.9GB (자동 보관) │
│ │
│ → 이전 버전 9.9GB도 모두 과금됨! │
│ → 6개월이면 이전 버전이 현재 버전의 수십 배가 될 수 있음 │
│ │
│ 해결책 - Lifecycle 규칙 추가: │
│ ├── 이전 버전 30일 후 Standard-IA 이동 │
│ └── 이전 버전 90일 후 삭제 │
│ │
└─────────────────────────────────────────────────────────────┘
Multipart Upload 미완료 파트
┌─────────────────────────────────────────────────────────────┐
│ │
│ 문제: │
│ ├── 100GB 파일 Multipart 업로드 중 클라이언트 오류 │
│ ├── 업로드 중단되면 S3에 파트(조각)가 남음 │
│ ├── 완성된 파일이 없지만 파트 저장 비용은 발생 │
│ └── 인지 못하면 수십 GB가 쌓여 비용 증가 │
│ │
│ 해결책: │
│ ├── Lifecycle: AbortIncompleteMultipartUpload │
│ └── 예) 7일 후 미완료 파트 자동 삭제 │
│ │
│ 현황 확인: │
│ └── aws s3api list-multipart-uploads --bucket 버킷명 │
│ │
└─────────────────────────────────────────────────────────────┘
스토리지 클래스 최소 보관 기간
┌─────────────────────────────────────────────────────────────┐
│ │
│ 최소 보관 기간 미만에 삭제 시 차액 청구: │
│ │
│ Standard-IA: 최소 30일 │
│ One Zone-IA: 최소 30일 │
│ Glacier Instant: 최소 90일 │
│ Glacier Flexible: 최소 90일 │
│ Glacier Deep Archive: 최소 180일 │
│ │
│ 예시: Standard-IA에 저장 후 10일 만에 삭제 │
│ → 10일 실제 저장 + 나머지 20일 요금 청구 │
│ │
│ → 단기 보관 데이터에 아카이브 클래스 사용 금지 │
│ → 단기 데이터는 S3 Standard 사용 │
│ │
└─────────────────────────────────────────────────────────────┘
DELETE 요청은 무료
┌─────────────────────────────────────────────────────────────┐
│ │
│ 오해: DELETE도 API 요청이니 과금되겠지? │
│ 사실: DELETE 요청은 무료 │
│ │
│ 단, 주의: │
│ ├── 버저닝 활성화 시 DELETE → 삭제 마커 생성 (보관됨) │
│ ├── 삭제 마커 자체는 저장 비용 없음 │
│ ├── 하지만 LIST 요청 시 포함되어 LIST 비용 증가 │
│ └── 삭제 마커가 많으면 Lifecycle로 정리 필요 │
│ │
└─────────────────────────────────────────────────────────────┘
관련 키워드
S3, S3 요금, 스토리지 클래스, Lifecycle Policy, Glacier, Glacier Deep Archive, Intelligent-Tiering, Standard-IA, 비용 최적화, 데이터 전송 비용, S3 Select, CloudFront, Transfer Acceleration, Multipart Upload, 버저닝, 아카이브, AWS 요금, 과금 구조