Amazon S3 Lifecycle을 사용한 객체 전환
Amazon S3 Lifecycle을 사용한 객체 전환
S3 Lifecycle 구성에 전환 작업을 추가해 Amazon S3에 객체를 다른 Amazon S3 스토리지 클래스로 옮기라고 지시할 수 있어요. 스토리지 클래스에 대한 자세한 내용은 "Amazon S3 스토리지 클래스 이해 및 관리"를 참고하세요. 이런 방식으로 S3 Lifecycle 구성을 사용할 수 있는 예시는 다음과 같아요.
- 객체가 드물게 접근된다는 것을 알면 S3 Standard-IA 스토리지 클래스로 전환할 수 있어요.
- 실시간으로 접근할 필요 없는 객체를 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스로 아카이브하고 싶을 수 있어요.
참고: 암호화된 객체는 스토리지 클래스 전환 과정 전반에 걸쳐 암호화 상태를 유지해요.
출처: 문서
본문
지원되는 전환
S3 Lifecycle 구성에서 객체를 한 스토리지 클래스에서 다른 스토리지 클래스로 전환하는 규칙을 정의해 저장 비용을 절약할 수 있어요. 객체의 접근 패턴을 모르거나 접근 패턴이 시간에 따라 변한다면 객체를 S3 Intelligent-Tiering 스토리지 클래스로 전환해 자동으로 비용을 절약할 수 있어요. 스토리지 클래스에 대한 자세한 내용은 "Amazon S3 스토리지 클래스 이해 및 관리"를 참고하세요.
Amazon S3는 스토리지 클래스 간 전환에 폭포(waterfall) 모델을 지원해요.
지원되는 Lifecycle 전환
Amazon S3는 S3 Lifecycle 구성을 사용해 스토리지 클래스 간 다음 Lifecycle 전환을 지원해요.
- S3 Standard 스토리지 클래스 → S3 Standard-IA, S3 Intelligent-Tiering, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive 스토리지 클래스.
- S3 Standard-IA 스토리지 클래스 → S3 Intelligent-Tiering, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive 스토리지 클래스.
- S3 Intelligent-Tiering 스토리지 클래스는 S3 Intelligent-Tiering 접근 계층에 따라 다른 스토리지 클래스로 전환할 수 있어요. 각 접근 계층에 가능한 전환은 다음과 같아요.
- Frequent Access 계층 또는 Infrequent Access 계층 → S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive 스토리지 클래스.
- Archive Instant Access 계층 → S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive 스토리지 클래스.
- Archive Access 계층 → S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive 스토리지 클래스.
- Deep Archive Access 계층 → S3 Glacier Deep Archive 스토리지 클래스.
- S3 One Zone-IA 스토리지 클래스 → S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스.
- S3 Glacier Instant Retrieval 스토리지 클래스 → S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스.
- S3 Glacier Flexible Retrieval 스토리지 클래스 → S3 Glacier Deep Archive 스토리지 클래스.
참고: 버전 관리가 활성화되었거나 일시 중지된 버킷에서는 복제 상태가
Pending또는Failed인 객체를 전환할 수 없어요.
전환의 제약과 고려 사항
Lifecycle 스토리지 클래스 전환에는 다음 제약이 있어요.
128KB보다 작은 객체는 기본적으로 어떤 스토리지 클래스로도 전환되지 않아요 — Amazon S3는 128KB보다 작은 객체가 어떤 스토리지 클래스로도 전환되지 않도록 하는 기본 동작을 S3 Lifecycle 구성에 적용해요. 객체마다 전환 요청 비용이 부과되므로 128KB 미만 객체의 전환은 권장하지 않아요. 이는 작은 객체의 경우 전환 비용이 저장 절감액보다 클 수 있기 때문이에요. 전환 요청 비용에 대한 자세한 내용은 Amazon S3 pricing 페이지의 Storage & requests 탭에서 Requests & data retrievals를 참고하세요.
작은 객체도 전환되도록 하려면 Lifecycle 전환 규칙에 사용자 지정 최소 크기(ObjectSizeGreaterThan)나 최대 크기(ObjectSizeLessThan)를 지정하는 객체 크기 필터를 추가할 수 있어요. 자세한 내용은 "예제: 128KB보다 작은 객체 전환 허용"을 참고하세요.
참고: 2024년 9월 Amazon S3는 작은 객체의 기본 전환 동작을 다음과 같이 업데이트했어요.
- 업데이트된 기본 전환 동작 — 2024년 9월부터 기본 동작은 128KB보다 작은 객체가 어떤 스토리지 클래스로도 전환되지 않도록 해요.
- 이전 기본 전환 동작 — 2024년 9월 이전에는 기본 동작이 128KB보다 작은 객체를 S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive 스토리지 클래스로만 전환할 수 있게 했어요.
2024년 9월 이전에 만든 구성은 수정하지 않는 한 이전 전환 동작을 유지해요. 즉, 규칙을 만들거나 편집하거나 삭제하면 구성의 기본 전환 동작이 업데이트된 동작으로 바뀌어요. 사용 사례에 필요하다면 128KB보다 작은 객체가 S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive로 전환되도록 기본 전환 동작을 바꿀 수 있어요. 그러려면 PutBucketLifecycleConfiguration 요청에서 선택적
x-amz-transition-default-minimum-object-size헤더를 사용하세요.
최소 저장 기간 전에 객체를 전환하면 요금이 부과돼요 — 일부 스토리지 클래스에는 최소 객체 저장 기간이 있어요. 최소 기간 전에 객체를 이 스토리지 클래스에서 전환하면 그 기간의 나머지 부분에 대한 요금이 부과돼요. 최소 저장 기간이 있는 스토리지 클래스에 대한 자세한 내용은 "Amazon S3 스토리지 클래스 비교"를 참고하세요.
최소 저장 기간이 지나기 전에 객체를 한 스토리지 클래스에서 다른 스토리지 클래스로 전환하는 단일 Lifecycle 규칙은 만들 수 없어요.
예를 들어 S3 Glacier Instant Retrieval의 최소 저장 기간은 90일이에요. 4일 후 S3 Glacier Instant Retrieval로 전환하고 20일 후 S3 Glacier Deep Archive로 전환하는 Lifecycle 규칙은 지정할 수 없어요. 이 경우 S3 Glacier Deep Archive 전환은 최소 94일이 지난 후에 이루어져야 해요.
이를 달성하려면 규칙 두 개를 지정할 수 있지만, 최소 기간 저장 요금을 지불하게 돼요. 비용 고려 사항에 대한 자세한 내용은 Amazon S3 pricing을 참고하세요.
S3 Lifecycle 생성에 대한 자세한 내용은 "버킷에 S3 Lifecycle 구성 설정"을 참고하세요.
태그 기반 필터와 대상 평가
S3 Lifecycle은 매일 객체를 태그 기반 필터와 대조해 평가해요. 객체가 태그 기반 전환 규칙과 일치하면 Amazon S3는 비동기 처리를 위해 작업을 대기열에 넣어요. 실행 시점에 Amazon S3는 객체의 현재 태그를 다시 평가해요. 작업이 실행될 때 트리거 태그가 더 이상 없으면 전환이 진행되지 않아요.
평가와 실행 사이의 시간이 결정적이지 않기 때문에 태그를 제거해도 즉시 취소된다는 보장은 없어요. 작업이 태그 제거가 관찰되기 전에 실행될 수도 있고, 태그 제거가 다음 평가 주기 전에 적용될 수도 있어요.
객체에 태그를 건 후 전환을 안정적으로 막으려면 태그를 제거하기 전에 작업이 완료됐음을 확인하는 Lifecycle 이벤트 알림을 기다리세요. 실행 전에 전환을 막아야 한다면 규칙을 비활성화하는 대신 태그를 제거하세요(규칙 정책 업데이트는 전파되는 데 최대 15분이 걸릴 수 있어요).
S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 스토리지 클래스로 전환(객체 아카이브)
S3 Lifecycle 구성을 사용해 객체를 보관을 위해 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스로 전환할 수 있어요.
객체를 아카이브하기 전에 다음 섹션에서 관련 고려 사항을 검토하세요.
일반 고려 사항
객체를 아카이브하기 전에 고려해야 할 일반 고려 사항은 다음과 같아요.
- 암호화된 객체는 스토리지 클래스 전환 과정 전반에 걸쳐 암호화 상태를 유지해요.
- S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스에 저장된 객체는 실시간으로 사용할 수 없어요. 아카이브된 객체는 Amazon S3 객체지만, 아카이브된 객체에 접근하려면 먼저 임시 복사본을 복원해야 해요. 복원된 객체 복사본은 복원 요청에서 지정한 기간 동안만 사용할 수 있어요. 그 후에는 Amazon S3가 임시 복사본을 삭제하고 객체는 S3 Glacier Flexible Retrieval에 아카이브된 상태로 남아요. Amazon S3 콘솔을 사용하거나 코드에서 AWS SDK 래퍼 라이브러리나 Amazon S3 REST API로 프로그래밍 방식으로 객체를 복원할 수 있어요. 자세한 내용은 "아카이브된 객체 복원"을 참고하세요.
- S3 Glacier Flexible Retrieval 스토리지 클래스에 저장된 객체는 S3 Glacier Deep Archive 스토리지 클래스로만 전환할 수 있어요. S3 Lifecycle 구성 규칙으로 객체의 스토리지 클래스를 S3 Glacier Flexible Retrieval에서 S3 Glacier Deep Archive 스토리지 클래스로만 변환할 수 있어요. S3 Glacier Flexible Retrieval에 저장된 객체의 스토리지 클래스를 S3 Glacier Deep Archive가 아닌 다른 클래스로 바꾸려면 복원 작업으로 객체의 임시 복사본을 먼저 만들어야 해요. 그런 다음 복사 작업으로 S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 One Zone-IA 또는 Reduced Redundancy를 스토리지 클래스로 지정해 객체를 덮어쓰세요.
- 객체가 S3 Glacier Deep Archive 스토리지 클래스로 전환되는 방향은 한 방향뿐이에요. S3 Lifecycle 구성 규칙으로 객체의 스토리지 클래스를 S3 Glacier Deep Archive에서 다른 클래스로 변환할 수 없어요. 아카이브된 객체의 스토리지 클래스를 다른 클래스로 바꾸려면 복원 작업으로 객체의 임시 복사본을 먼저 만들어야 해요. 그런 다음 복사 작업으로 S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval 또는 Reduced Redundancy Storage를 스토리지 클래스로 지정해 객체를 덮어쓰세요.
참고: 복원된 객체에 대한 Copy 작업은 Amazon S3 콘솔에서는 S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive 스토리지 클래스의 객체에 대해 지원되지 않아요. 이런 종류의 Copy 작업에는 AWS Command Line Interface(AWS CLI), AWS SDK 또는 REST API를 사용하세요.
- S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive 스토리지 클래스에 저장된 객체는 Amazon S3를 통해서만 보이고 사용할 수 있어요. 별도의 Amazon Glacier 서비스로는 사용할 수 없어요. 이들은 Amazon S3 객체이며 Amazon S3 콘솔이나 Amazon S3 API로만 접근할 수 있어요. 별도의 Amazon Glacier 콘솔이나 Amazon Glacier API로는 아카이브된 객체에 접근할 수 없어요.
비용 고려 사항
몇 달이나 몇 년 동안 드물게 접근하는 데이터를 아카이브하려 한다면 S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive 스토리지 클래스가 저장 비용을 줄여줄 수 있어요. 하지만 이 스토리지 클래스가 적합한지 판단하려면 다음을 고려하세요.
-
저장 오버헤드 요금 – 객체를 S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive 스토리지 클래스로 전환하면 객체 관리용 메타데이터를 담기 위해 각 객체에 고정된 양의 저장 공간이 추가돼요.
- S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive로 아카이브된 각 객체에 대해 Amazon S3는 객체 이름과 기타 메타데이터에 8KB의 저장 공간을 사용해요. Amazon S3는 이 메타데이터를 저장해 Amazon S3 API로 아카이브된 객체의 실시간 목록을 얻을 수 있게 해 줘요. 자세한 내용은 Get Bucket (List Objects)을 참고하세요. 이 추가 저장 공간에 대해 S3 Standard 요율이 청구돼요.
- S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive로 아카이브된 각 객체에 대해 Amazon S3는 인덱스 및 관련 메타데이터에 32KB의 저장 공간을 추가해요. 이 추가 데이터는 객체를 식별하고 복원하는 데 필요해요. 이 추가 저장 공간에 대해 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 요율이 청구돼요.
작은 객체를 아카이브한다면 이런 저장 요금을 고려하세요. 또한 많은 작은 객체를 적은 수의 큰 객체로 합쳐 오버헤드 비용을 줄이는 것을 고려해 보세요.
-
객체를 아카이브해 둘 계획인 일수 – S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive는 장기 아카이브 솔루션이에요. 최소 저장 기간은 S3 Glacier Flexible Retrieval이 90일, S3 Glacier Deep Archive가 180일이에요. 삭제하는 객체가 최소 저장 기간보다 오래 아카이브되어 있다면 Amazon Glacier로 아카이브된 데이터를 삭제해도 요금이 부과되지 않아요. 최소 기간 안에 아카이브된 객체를 삭제하거나 덮어쓰면 Amazon S3는 비례 배분된 조기 삭제 요금(prorated early deletion fee)을 청구해요. 조기 삭제 요금에 대한 자세한 내용은 Amazon S3 FAQ의 "90일 미만인 Amazon Glacier 객체를 삭제할 때 어떻게 요금이 부과되나요?" 질문을 참고하세요.
-
S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 전환 요청 요금 – S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive 스토리지 클래스로 전환하는 각 객체는 하나의 전환 요청을 구성해요. 각 요청에는 비용이 있어요. 많은 객체를 전환할 계획이라면 요청 비용을 고려하세요. 특히 128KB 미만의 작은 객체가 섞여 있는 경우에는 Lifecycle 객체 크기 필터를 사용해 전환에서 작은 객체를 걸러내 요청 비용을 줄일 것을 권장해요.
-
S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 데이터 복원 요금 – S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive는 드물게 접근하는 데이터의 장기 보관을 위해 설계됐어요. 데이터 복원 요금에 대한 자세한 내용은 Amazon S3 FAQ의 "Amazon Glacier에서 데이터를 검색하는 비용은 얼마인가요?" 질문을 참고하세요. Amazon Glacier에서 데이터를 복원하는 방법은 "아카이브된 객체 복원"을 참고하세요.
참고: S3 Lifecycle은 객체를 S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive로 비동기적으로 전환해요. S3 Lifecycle 구성 규칙의 전환 날짜와 실제 전환 날짜 사이에는 지연이 있을 수 있어요. 실제 전환이 아직 일어나지 않았어도 Lifecycle 규칙이 충족된 날짜부터 목적지 스토리지 클래스 요율(S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive)로 청구돼요. 최소 저장 기간 요금(S3 Glacier Flexible Retrieval 90일, S3 Glacier Deep Archive 180일)과 객체당 저장 오버헤드(총 40KB, 그중 8KB는 S3 Standard 요율, 32KB는 목적지 Glacier 요율)도 이 시점부터 시작돼요. 유일한 예외는 S3 Intelligent-Tiering으로의 전환이며, 이때는 실제 전환이 완료된 후에 청구 변경이 발생해요. 자세한 내용은 "청구 변경"을 참고하세요.
Amazon S3 제품 세부 정보 페이지는 Amazon S3 객체 아카이브에 대한 요금 정보와 예시 계산을 제공해요. 자세한 내용은 다음 주제를 참고하세요.
- Amazon S3 FAQ의 "Amazon Glacier로 아카이브된 Amazon S3 객체의 저장 요금은 어떻게 계산되나요?"
- Amazon S3 FAQ의 "90일 미만인 Amazon Glacier 객체를 삭제할 때 어떻게 요금이 부과되나요?"
- Amazon S3 FAQ의 "Amazon Glacier에서 데이터를 검색하는 비용은 얼마인가요?"
- 다양한 스토리지 클래스의 저장 비용에 대한 Amazon S3 pricing
아카이브된 객체 복원
아카이브된 객체는 실시간으로 접근할 수 없어요. 먼저 복원 요청을 시작한 다음, 요청에서 지정한 기간 동안 객체의 임시 복사본을 사용할 수 있을 때까지 기다려야 해요. 복원된 객체의 임시 복사본을 받은 후에도 객체의 스토리지 클래스는 S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive로 유지돼요. (HeadObject나 GetObject API 작업 요청은 스토리지 클래스로 S3 Glacier Flexible Retrieval이나 S3 Glacier Deep Archive를 반환해요.)
참고: 아카이브를 복원하면 아카이브(S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 요율)와 임시로 복원한 복사본(S3 Standard 스토리지 요율) 둘 다에 대한 비용을 지불해요. 가격에 대한 자세한 내용은 Amazon S3 pricing을 참고하세요.
프로그래밍 방식이나 Amazon S3 콘솔로 객체 복사본을 복원할 수 있어요. Amazon S3는 객체당 한 번에 하나의 복원 요청만 처리해요. 자세한 내용은 "아카이브된 객체 복원"을 참고하세요.