본문 바로가기
Infra2025년 1월 13일5분 읽기

AWS S3 비용 최적화 — 스토리지 클래스와 라이프사이클

YS
김영삼
조회 565

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/GB30일99.9%
One Zone-IA$0.01$0.01/GB30일99.5%
Glacier Instant$0.004$0.03/GB90일99.9%
Glacier Flexible$0.0036분~시간90일99.99%
Glacier Deep Archive$0.0009912~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

아직 댓글이 없습니다.
Ctrl+Enter로 등록