S3 스토리지 클래스 이해
AWS S3는 데이터의 접근 패턴에 따라 최적화된 여러 스토리지 클래스를 제공합니다. 자주 접근하는 데이터와 거의 접근하지 않는 아카이브 데이터를 같은 클래스에 저장하면 불필요한 비용이 발생합니다.
스토리지 클래스별 비교 (us-east-1 기준)
| 클래스 | 저장 비용/GB | 검색 비용 | 최소 보관 | 가용성 |
|---|---|---|---|---|
| Standard | $0.023 | 없음 | 없음 | 99.99% |
| Intelligent-Tiering | $0.023~$0.004 | 없음 | 없음 | 99.9% |
| Standard-IA | $0.0125 | $0.01/GB | 30일 | 99.9% |
| One Zone-IA | $0.01 | $0.01/GB | 30일 | 99.5% |
| Glacier Instant | $0.004 | $0.03/GB | 90일 | 99.9% |
| Glacier Flexible | $0.0036 | 분~시간 | 90일 | 99.99% |
| Glacier Deep Archive | $0.00099 | 12~48시간 | 180일 | 99.99% |
라이프사이클 정책 설정
{
"Rules": [
{
"ID": "logs-lifecycle",
"Filter": { "Prefix": "logs/" },
"Status": "Enabled",
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER_IR" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": { "Days": 730 }
},
{
"ID": "multipart-cleanup",
"Filter": { "Prefix": "" },
"Status": "Enabled",
"AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 }
},
{
"ID": "old-versions-cleanup",
"Filter": { "Prefix": "" },
"Status": "Enabled",
"NoncurrentVersionTransitions": [
{ "NoncurrentDays": 30, "StorageClass": "STANDARD_IA" },
{ "NoncurrentDays": 90, "StorageClass": "GLACIER_IR" }
],
"NoncurrentVersionExpiration": { "NoncurrentDays": 180 }
}
]
}
AWS CLI로 라이프사이클 적용
# 라이프사이클 정책 적용
aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration file://lifecycle.json
# 현재 정책 확인
aws s3api get-bucket-lifecycle-configuration --bucket my-bucket
# 스토리지 클래스별 용량 분석
aws s3api list-objects-v2 --bucket my-bucket --query "Contents[].{Key:Key, Size:Size, Class:StorageClass}" --output table
Intelligent-Tiering 활용
# 버킷 기본 클래스를 Intelligent-Tiering으로 설정
aws s3 cp myfile.txt s3://my-bucket/ --storage-class INTELLIGENT_TIERING
# Terraform으로 설정
resource "aws_s3_bucket_intelligent_tiering_configuration" "config" {
bucket = aws_s3_bucket.main.id
name = "AllObjects"
tiering {
access_tier = "ARCHIVE_ACCESS"
days = 90
}
tiering {
access_tier = "DEEP_ARCHIVE_ACCESS"
days = 180
}
}
비용 절감 체크리스트
- S3 Storage Lens로 버킷별 접근 패턴을 먼저 분석한 후 정책을 수립합니다
- Intelligent-Tiering은 접근 패턴이 예측 불가한 데이터에 가장 효과적입니다
- 불완전 멀티파트 업로드를 정리하는 것만으로도 상당한 비용을 절감할 수 있습니다
- 버전 관리 활성화 시 이전 버전에도 라이프사이클 정책을 반드시 설정하세요
- Glacier Deep Archive는 Standard 대비 약 95% 저렴하지만, 검색에 12-48시간이 소요됩니다
댓글 0