🪣 S3 Storage Class

S3 Storage Class 는 AWS S3 에 저장된 객체(파일) 들의 저장 유형을 정의하는 설정이다. 모든 Class 는 기본적으로 내구성, 가용성, 가용성 SLA 들을 기본적으로 99% 이상 제공한다. 모든 Storage Class 들은 내구성과 가용성은 높게 보장되니, 사용자는 데이터 종류, 접근 빈도 2가지 요소에 따라 적절한 Storage Class 를 선택하면 된다. 즉, 사용 패턴을 명확히 진단하면 쓴 만큼만 비용을 지불하는 효율적인 Storage 운영이 가능하다.

더 자세한 비교는 아래 표를 참고하자.

Storage Class 내구성 (Durability) 가용성 (Availability) SLA 가용 영역 (AZ) 객체당 최소 용량 요금 최소 Storage 기간 요금 검색 요금 검색 지연 시간
S3 Standard 99.999999999% (11 9’s) 99.99% 99.9% ≥3 - - - 밀리초
S3 Intelligent-Tiering 99.999999999% (11 9’s) 99.9% 99% ≥3 128KB - - 밀리초
S3 Express One Zone 99.999999999% (11 9’s) 99.95% 99.9% 1 - 1시간 GB당 요금 한 자릿수 밀리초
S3 Standard-IA 99.999999999% (11 9’s) 99.9% 99% ≥3 128KB 30일 GB당 요금 밀리초
S3 One Zone-IA 99.999999999% (11 9’s) 99.5% 99% 1 128KB 30일 GB당 요금 밀리초
S3 Glacier Instant Retrieval 99.999999999% (11 9’s) 99.9% 99% ≥3 128KB 90일 GB당 요금 밀리초
S3 Glacier Flexible Retrieval 99.999999999% (11 9’s) 99.99% 99.9% ≥3 40KB 90일 GB당 요금 분~12시간
S3 Glacier Deep Archive 99.999999999% (11 9’s) 99.99% 99.9% ≥3 40KB 180일 GB당 요금 9~48시간
  • S3 Intelligent-Tiering 은 128KB 미만 객체도 저장 가능하나, 항상 Frequent Access tier 요금으로 과금되며 모니터링 요금은 부과되지 않음
  • S3 One Zone-IA는 단일 AZ에 저장되므로 AZ 손실 시 데이터 손실 가능
  • S3 Glacier Flexible Retrieval 과 Deep Archive 각 객체당 추가 메타데이터 40KB(S3 Standard 8KB + Glacier 32KB) 요금 발생

S3 Standard

  • 이름 그대로 가장 일반적인 Storage Class
  • 높은 내구성과 가용성을 제공하며, 지연 시간이 짧아 빠른 데이터 접근 가능
  • 자주 접근하는 데이터를 위함

S3 Intelligent-Tiering

  • 3개의 Access tier (Frequent, Infrequent, Archive) 로 구성
  • 접근 패턴에 따라 자동으로 Access tier 간 전환
  • 접근 빈도가 예측 불가능한 데이터를 위한 Storage Class

S3 Express One Zone

  • S3 Standard 보다 최대 10배 빠른 데이터 접근 속도 제공
  • 자주 Access 하는 데이터와 까다로운 애플리케이션 설계에 적합
  • 단일 가용 영역(AZ)에 저장되어 비용 절감
  • 자주 접근하는 데이터에 적합하지만, AZ 손실 시 데이터 손실

S3 Standard-IA

  • 자주 접근하지 않는 데이터를 위한 Storage Class
  • 높은 내구성과 가용성을 제공하며, 지연 시간은 S3 Standard 와 유사
  • 접근 빈도가 낮은 데이터를 위한 비용 효율적인 옵션

S3 One Zone-IA

  • 단일 가용 영역(AZ)에 저장되어 비용 절감
  • 접근 빈도가 낮은 데이터를 위한 Storage Class
  • AZ 손실 시 데이터 손실 가능
  • S3 Standard-IA 와 유사한 요금 구조


🧊 S3 Glacier

Glacier(빙하) 라는 이름에서 알 수 있듯, 장기 보관을 위한 Storage Class 다. 데이터 접근 빈도가 매우 낮고, 장기간 보관이 필요한 데이터를 위한 옵션이다. (병원 의료 데이터, 금융 기록 등)

다른 Storage Class 와 달리, Glacier 는 완전히 별개의 저장소에 데이터를 보관한다. 때문에 S3 에서 제공하는 다른 기능들을 이용할 수 없으며, S3 Service 에서 Access 가 불가능하다. (복원 작업을 통해서만 접근 가능. 분~시간 단위가 소요된다.) 즉 마음대로 검색이 불가능하며, 마음대로 삭제 또한 불가능하다. Glacier 는 장기간 보관을 주 목적으로 설계한 서비스이고, 그 최소한의 조건이 3개월이기 때문이다. 만약 3개월 이전에 삭제할 경우, 잔여 기간에 대한 요금이 청구된다.

대신 그만큼 저장 비용이 매우 저렴하므로, 보관 특성에 따라 활용을 결정하면 된다.

S3 Glacier Instant Retrieval

  • Glacier Storage Class 중 유일하게 밀리초 단위의 지연 시간 제공
  • 자주 접근하지는 않지만, 필요 시 즉시 접근해야 하는 데이터를 위한 옵션
  • 분기 1회 Access 에 적합

S3 Glacier Flexible Retrieval

  • 분~시간(최대 12시간) 단위의 지연 시간 제공
  • 연 1회 Access 에 적합
  • 장기 보관이 필요하며, 접근 빈도가 매우 낮은 데이터를 위한 옵션

S3 Glacier Deep Archive

  • 가장 저렴한 저장 비용 제공
  • 9~48시간 단위의 지연 시간 제공
  • 연 1회 미만 Access 에 적합
  • 금융, 의료 등 데이터를 초장기간 보관하는 서비스와 고객을 위해 설계


🪣 S3 Storage Class 변경하기

S3 bucket console 에서 대상 객체를 선택한 후, Actions - Change storage class 를 선택하면 쉽게 변경할 수 있다.

Image

보통 S3 에 적게는 수백, 수천에서 많게는 수억, 수십억 개의 객체가 저장하곤 한다. 개발자가 하나하나 수동으로 변경하는 것은 지나치게 비효율적이고, 사실상 불가능에 가깝다. 그리고 S3 는 이러한 문제를 보완하기 위해 Lifecycle(생명주기) 개념을 제공한다.


🪣 S3 Lifecycle

S3 bucket 에 저장된 객체의 생명주기(Lifecycle)을 관리하는 개념이다. 지정한 기간이 경과하면, 객체를 자동으로 다른 Storage Class 로 전환하거나 삭제할 수 있다. 즉, 자신의 서비스 특성에 맞게 S3 객체의 저장 정책을 자동화할 수 있다. S3 Lifecycle 은 크게 2가지 종류가 있다.

Storage Class Transition

  • 지정한 기간이 경과하면, 객체를 자동으로 다른 Storage Class 로 전환
  • 예: 30일 후 S3 Standard-IA 로 전환, 90일 후 S3 Glacier Flexible Retrieval 로 전환 등

단, 전환 대상 Storage Class 에 따라 최소 보관 기간이 존재한다. 예를 들어, S3 Standard-IA 로 전환한 객체는 최소 30일 동안 보관해야 하며, S3 Glacier Flexible Retrieval 로 전환한 객체는 최소 90일 동안 보관해야 한다. 따라서 전환 시점과 최소 보관 기간을 고려하여 정책을 설정해야 한다.

또한 Lifecycle 을 통해 Storage Class 를 전환할 땐 Waterfall 형태의 전환만 가능하다. (역방향 전환 불가능) 아래 그림을 참고하자.

Expiration

  • 지정한 기간이 경과하면, 객체를 자동으로 삭제
  • 예: 365일 후 객체 삭제

2가지 종류를 조합하여, 장기 보관이 필요한 데이터를 저비용으로 관리할 수 있다. 예를 들어, 자주 접근하지 않는 로그 데이터를 S3 Standard-IA 로 전환한 후, 1년 후 삭제하는 정책을 설정할 수 있다.


🪣 S3 Lifecycle rule 설정하기

S3 bucket console 에서 Management - Lifecycle rules - Create lifecycle rule 을 선택하여 설정할 수 있다.

Image

Limit the scope of this rule using one or more filters 옵션을 통해 특정 prefix, tag 혹은 객체의 크기에 따라 규칙을 적용 대상을 한정할 수 있다. Apply to all objects in the bucket 옵션을 선택하면, 버킷 내 모든 객체에 규칙이 적용된다.

Image

Lifecycle rule actions 항목에선 5가지 작업을 설정할 수 있는데, 앞서 알아본 2가지 개념으로 나누어 볼 수 있다.

  • Transition current versions of objects between storage classes
    • Storage Class Transition
    • 경과 기간 선택 후, 전환할 Storage Class 선택
  • Transition noncurrent versions of objects between storage classes
    • Storage Class Transition
    • 버전 관리가 활성화된 버킷에서, 이전 버전 객체에 대해 Storage Class 전환 선택
  • Expire current versions of objects
    • Expiration
    • 현재 버전 객체에 대해 만료 처리, 추가 기간 경과 후 영구 삭제
  • Permanently delete noncurrent versions of objects
    • Expiration
    • 객체의 이전 버전 영구 삭제
  • Delete expired object delete markers or incomplete multipart uploads
    • Expiration
    • 현재 날짜 기준으로 삭제 실행

Image

각 사용 패턴에 맞게 선정 후 최종 생성을 마치면, 설정이 완료된다.

AWS S3 는 Lifecycle rule 적용 기준을 익일 00:00 UTC 로 정하고 있다. 예를 들어 2026-01-08 00:05 UTC 에 생성한 객체에 대해 “10일 후 S3 Standard-IA 로 전환” 규칙을 적용하면, 2026-01-19 00:00 UTC 에 전환이 실행된다. 이 점 유의하여 정책을 설계하면 좋겠다.


References

업데이트:

댓글남기기