객체 만료
객체 만료
S3 Lifecycle 구성에 만료 작업을 추가해 Amazon S3에 객체 수명이 끝나면 객체를 삭제하라고 지시할 수 있어요. Lifecycle 구성에 따라 객체가 수명이 끝에 도달하면 Amazon S3는 버킷이 어떤 S3 버전 관리 상태에 있는지에 따라 Expiration 작업을 수행해요.
- 버전 관리 없는 버킷 – Amazon S3는 객체를 제거 대기열에 넣고 비동기적으로 제거하며, 객체를 영구적으로 삭제해요.
- 버전 관리 활성화 버킷 – 현재 객체 버전이 삭제 마커가 아니면 Amazon S3는 고유한 버전 ID를 가진 삭제 마커를 추가해요. 이렇게 하면 현재 버전이 비현재(noncurrent) 버전이 되고 삭제 마커가 현재 버전이 돼요.
- 버전 관리 일시 중지 버킷 – Amazon S3는 버전 ID가 null인 삭제 마커를 만들어요. 이 삭제 마커는 버전 계층에서 버전 ID가 null인 객체 버전을 대체하며, 사실상 객체를 삭제해요.
버전 관리 버킷(버전 관리 활성화 또는 일시 중지)에는 Amazon S3가 Expiration 작업을 처리하는 방식을 결정하는 몇 가지 고려 사항이 있어요. 버전 관리 활성화 또는 일시 중지 버킷에는 다음이 적용돼요.
- 객체 만료는 객체의 현재 버전에만 적용돼요(비현재 객체 버전에는 영향이 없어요).
- 객체 버전이 하나 이상 있고 삭제 마커가 현재 버전이면 Amazon S3는 아무 작업도 하지 않아요.
- 현재 객체 버전이 유일한 객체 버전이면서 동시에 삭제 마커인 경우(모든 객체 버전이 삭제되고 삭제 마커만 남은 상태를 만료된 객체 삭제 마커라고 해요) Amazon S3는 만료된 객체 삭제 마커를 제거해요.
Expiration작업으로 Amazon S3가 만료된 객체 삭제 마커를 제거하도록 지시할 수도 있어요. 예를 들어 "버전 관리 활성화 버킷에서 만료된 객체 삭제 마커 제거"를 참고하세요. NoncurrentVersionExpiration작업 요소로 Amazon S3가 객체의 비현재 버전을 영구 삭제하도록 지시할 수 있어요. 삭제된 객체는 복구할 수 없어요. 이 만료는 객체가 비현재가 된 후 경과한 일수에 근거할 수 있어요. 일수 외에도 유지할 비현재 버전의 최대 개수(1~100)를 지정할 수도 있어요. 이 값은 Amazon S3가 특정 버전에 관련 작업을 수행하기 전에 몇 개의 더 새로운 비현재 버전이 존재해야 하는지를 지정해요. 최대 비현재 버전 수를 지정하려면Filter요소도 함께 제공해야 해요.Filter요소를 지정하지 않으면 최대 비현재 버전 수를 제공할 때 Amazon S3가InvalidRequest오류를 생성해요.NoncurrentVersionExpiration작업 요소 사용에 대한 자세한 내용은 "Lifecycle 작업을 설명하는 요소"를 참고하세요.- S3 Object Lock 구성이 적용된 객체의 비현재 버전에는 Amazon S3가 아무 작업도 하지 않아요.
- 복제 상태가
Pending또는Failed인 객체의 현재 또는 비현재 버전에는 Amazon S3가 아무 작업도 하지 않아요.
자세한 내용은 "S3 Versioning으로 객체의 여러 버전 유지"를 참고하세요.
중요: 객체는 하루에 하나의 S3 Lifecycle 작업만 대상이 될 수 있어요. 여러 규칙이 일치하면 Amazon S3는 가장 비용이 적은 작업을 적용해요.
중요: S3 Lifecycle 구성에 여러 규칙이 있으면 객체가 같은 날 여러 S3 Lifecycle 작업의 대상이 될 수 있어요. 이 경우 Amazon S3는 다음 일반 규칙을 따릅니다.
- 영구 삭제가 전환보다 우선해요.
- 전환이 삭제 마커 생성보다 우선해요.
- 객체가 S3 Glacier Flexible Retrieval과 S3 Standard-IA(또는 S3 One Zone-IA) 전환 모두의 대상이면 Amazon S3는 S3 Glacier Flexible Retrieval 전환을 선택해요.
예시는 "겹치는 필터 및 충돌하는 Lifecycle 작업의 예시"를 참고하세요.
출처: 문서
본문
기존 객체와 새 객체
버킷에 Lifecycle 구성을 추가하면 구성 규칙이 기존 객체와 나중에 추가하는 객체 모두에 적용돼요. 예를 들어 오늘 특정 접두사의 객체가 생성 후 30일 지나면 만료되게 하는 만료 작업이 있는 Lifecycle 구성 규칙을 추가하면, Amazon S3는 30일보다 오래됐고 지정된 접두사를 가진 기존 객체를 제거 대기열에 넣어요.
중요: 버킷 정책으로 S3 Lifecycle 규칙의 삭제나 전환을 막을 수 없어요. 예를 들어 버킷 정책이 모든 주체의 모든 작업을 거부해도 S3 Lifecycle 구성은 평소처럼 동작해요.
태그 기반 필터와 대상 평가
S3 Lifecycle은 매일 객체를 태그 기반 필터와 대조해 평가해요. 객체가 태그 기반 만료 규칙과 일치하면 Amazon S3는 비동기 처리를 위해 작업을 대기열에 넣어요. 실행 시점에 Amazon S3는 객체의 현재 태그를 다시 평가해요. 작업이 실행될 때 트리거 태그가 더 이상 없으면 만료가 진행되지 않아요.
태그를 제거하기 전에 만료가 발생했음을 안정적으로 확인하려면 Lifecycle 이벤트 알림을 기다리세요. 실행 전에 만료를 막아야 한다면 태그를 제거하세요(태그 업데이트는 전파되는 데 최대 15분 걸릴 수 있는 규칙 정책 변경보다 빨리 적용돼요).
객체가 언제 만료되는지 찾는 방법
객체의 현재 버전이 언제 만료 예정인지 찾으려면 HeadObject 또는 GetObject API 작업을 사용하세요. 이 API 작업은 객체의 현재 버전이 더 이상 캐시 가능하지 않은 날짜와 시각을 제공하는 응답 헤더를 반환해요.
참고:
- 만료 날짜와 Amazon S3가 객체를 제거하는 날짜 사이에는 지연이 있을 수 있어요. 만료된 객체에 대해서는 만료나 관련 저장 시간에 대한 요금이 부과되지 않아요.
- Lifecycle 규칙을 업데이트하거나 비활성화하거나 삭제하기 전에
LISTAPI 작업(ListObjectsV2, ListObjectVersions, ListMultipartUploads 등)이나 "S3 Inventory로 데이터 분류 및 분석"을 사용해 사용 사례에 따라 Amazon S3가 대상 객체를 전환·만료했는지 확인하세요.
최소 저장 기간 요금
S3 Standard-IA 또는 S3 One Zone-IA 저장 기간이 30일 미만인 객체를 만료시키는 S3 Lifecycle 만료 규칙을 만들면 30일분 요금이 청구돼요. S3 Glacier Flexible Retrieval 저장 기간이 90일 미만인 객체를 만료시키는 Lifecycle 만료 규칙을 만들면 90일분 요금이 청구돼요. S3 Glacier Deep Archive 저장 기간이 180일 미만인 객체를 만료시키는 Lifecycle 만료 규칙을 만들면 180일분 요금이 청구돼요.
자세한 내용은 Amazon S3 pricing을 참고하세요.