불완전한 멀티파트 업로드를 중단하도록 버킷 수명 주기 정책 구성 - Amazon Simple Storage Service

불완전한 멀티파트 업로드를 중단하도록 버킷 수명 주기 정책 구성

모범 사례로, 저장 비용을 최소화하도록 수명 주기 규칙(AbortIncompleteMultipartUpload 작업 사용)을 구성할 것을 권장합니다. 멀티파트 업로드 중단에 대한 자세한 내용은 멀티파트 업로드 중단 단원을 참조하세요.

이제 Amazon S3는 시작된 후 지정 일수 내에 완료되지 않은 멀티파트 업로드를 중단하도록 Amazon S3에 지시하는 데 사용할 수 있는 버킷 수명 주기 규칙을 지원합니다. 멀티파트 업로드가 시간 주기 내에 완료되지 않은 경우, 중단 작업을 할 수 있는 조건이 되어 Amazon S3는 멀티파트 업로드를 중지하고 멀티파트 업로드에 연결된 부분을 삭제합니다.

다음은 AbortIncompleteMultipartUpload 작업으로 규칙을 지정하는 수명 주기 구성의 예시입니다.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix></Prefix> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>

이 예제에서 규칙은 Prefix 요소의 값(객체 키 이름 접두사)을 지정하지 않습니다. 따라서 멀티파트 업로드를 시작한 버킷의 모든 객체에 적용됩니다. 시작되고 7일 이내에 완료되지 않은 멀티파트 업로드는 중단 작업을 수행할 수 있습니다. 중단 작업은 완료된 멀티파트 업로드에 영향을 주지 않습니다.

버킷 수명 주기 구성에 대한 자세한 내용은 스토리지 수명 주기 관리 단원을 참조하십시오.

참고

멀티파트 업로드가 규칙에 지정된 일수 내에 완료되면 AbortIncompleteMultipartUpload 수명 주기 작업은 적용되지 않습니다(즉, Amazon S3는 어떤 작업도 하지 않습니다). 또한 이 작업은 객체에는 적용되지 않습니다. 이 수명 주기 작업으로 객체가 삭제되지는 않습니다.

다음 put-bucket-lifecycle-configuration CLI 명령은 지정된 버킷에 수명 주기 구성을 추가합니다.

$ aws s3api put-bucket-lifecycle-configuration  \ --bucket bucketname  \ --lifecycle-configuration filename-containing-lifecycle-configuration

CLI 명령을 테스트하려면 다음과 같이 합니다.

  1. AWS CLI를 설정합니다. 지침은 AWS CLI를 사용하여 Amazon S3에서 개발 단원을 참조하세요.

  2. 파일(lifecycle.json)에 다음과 같은 수명 주기 구성 예시를 저장합니다. 예시 구성에서는 빈 접두사를 지정하므로 버킷에 있는 모든 객체에 적용됩니다. 접두사를 지정하여 정책을 객체의 하위 집합으로 제한할 수 있습니다.

    { "Rules": [ { "ID": "Test Rule", "Status": "Enabled", "Filter": { "Prefix": "" }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 } } ] }
  3. 다음 CLI 명령을 사용하여 버킷에서 수명 주기 구성을 설정합니다.

    aws s3api put-bucket-lifecycle-configuration   \ --bucket bucketname  \ --lifecycle-configuration file://lifecycle.json
  4. 확인하려면 get-bucket-lifecycle CLI 명령을 사용해 수명 주기 구성을 조회합니다.

    aws s3api get-bucket-lifecycle  \ --bucket bucketname
  5. 수명 주기 구성을 삭제하려면 delete-bucket-lifecycle CLI 명령을 사용합니다.

    aws s3api delete-bucket-lifecycle \ --bucket bucketname