버킷 수명주기 구성을 구성해 불완전한 멀티파트 업로드 삭제

버킷 수명주기 구성을 구성해 불완전한 멀티파트 업로드 삭제 (Configuring a bucket lifecycle configuration to delete incomplete multipart uploads)

모범 사례로, AbortIncompleteMultipartUpload 작업을 사용해 수명주기 규칙을 구성해 스토리지 비용을 최소화할 것을 권장해요. 멀티파트 업로드 중단에 대한 자세한 내용은 멀티파트 업로드 중단을 참고하세요.

출처: 문서

본문

Amazon S3는 시작 후 지정된 일 수 안에 완료되지 않은 멀티파트 업로드를 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가 아무 작업도 수행하지 않아요). 또한 이 작업은 객체에는 적용되지 않아요. 이 수명주기 작업으로 삭제되는 객체는 없어요. 그리고 불완전한 멀티파트 업로드 부분을 제거할 때 S3 Lifecycle에 대한 조기 삭제 요금이 발생하지 않아요.

불완전한 멀티파트 업로드를 자동으로 관리하려면 S3 콘솔을 사용해 지정된 일 수 후에 버킷에서 불완전한 멀티파트 업로드 바이트를 만료시키는 수명주기 규칙을 만들 수 있어요. 다음 절차는 7일 후에 불완전한 멀티파트 업로드를 삭제하는 수명주기 규칙을 추가하는 방법을 보여줘요. 수명주기 규칙 추가에 대한 자세한 내용은 버킷에 S3 Lifecycle 구성 설정하기를 참고하세요.

7일이 지난 불완전한 멀티파트 업로드를 중단하는 수명주기 규칙 추가 (To add a lifecycle rule to abort incomplete multipart uploads that are more than 7 days old)

  • AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
  • 버킷(Buckets) 목록에서 수명주기 규칙을 만들 버킷 이름을 선택해요.
  • 관리(Management) 탭을 선택하고 **수명주기 규칙 만들기(Create lifecycle rule)**를 선택해요.
  • **수명주기 규칙 이름(Lifecycle rule name)**에 규칙 이름을 입력해요. 이름은 버킷 내에서 고유해야 해요.
  • 수명주기 규칙의 범위를 선택해요.
    • 특정 접두사가 있는 모든 객체에 대한 수명주기 규칙을 만들려면 **하나 이상의 필터를 사용해 이 규칙의 범위 제한(Limit the scope of this rule using one or more filters)**을 선택하고 접두사(Prefix) 필드에 접두사를 입력해요.
    • 버킷의 모든 객체에 대한 수명주기 규칙을 만들려면 **이 규칙은 버킷의 모든 객체에 적용됩니다(This rule applies to all objects in the bucket)**를 선택하고 **이 규칙이 버킷의 모든 객체에 적용됨을 확인합니다(I acknowledge that this rule applies to all objects in the bucket)**를 선택해요.
  • 수명주기 규칙 작업(Lifecycle rule actions) 아래에서 **만료된 객체 삭제 마커 또는 불완전한 멀티파트 업로드 삭제(Delete expired object delete markers or incomplete multipart uploads)**를 선택해요.
  • 만료된 객체 삭제 마커 또는 불완전한 멀티파트 업로드 삭제(Delete expired object delete markers or incomplete multipart uploads) 아래에서 **불완전한 멀티파트 업로드 삭제(Delete incomplete multipart uploads)**를 선택해요.
  • 일 수(Number of days) 필드에 불완전한 멀티파트 업로드를 삭제할 일 수(이 예시에서는 7일)를 입력해요.
  • **규칙 만들기(Create rule)**를 선택해요.

다음 put-bucket-lifecycle-configuration AWS Command Line Interface(AWS CLI) 명령은 지정된 버킷에 수명주기 구성을 추가해요. 이 명령을 사용하려면 user input placeholders를 자신의 정보로 바꾸세요.

aws s3api put-bucket-lifecycle-configuration  \
        --bucket amzn-s3-demo-bucket  \
        --lifecycle-configuration filename-containing-lifecycle-configuration 

다음 예시는 AWS CLI를 사용해 불완전한 멀티파트 업로드를 중단하는 수명주기 규칙을 추가하는 방법을 보여줘요. 여기에는 7일이 지난 불완전한 멀티파트 업로드를 중단하는 JSON 수명주기 구성 예시가 포함돼요.

이 예시의 CLI 명령을 사용하려면 user input placeholders를 자신의 정보로 바꾸세요.

AWS CLI로 불완전한 멀티파트 업로드를 중단하는 수명주기 규칙 추가 (To add a lifecycle rule to abort incomplete multipart uploads)

  • AWS CLI를 설정해요. 지침은 Amazon S3 API Reference의 AWS CLI를 사용한 Amazon S3 개발을 참고하세요.
  • 다음 예시 수명주기 구성을 파일에 저장해요(예: lifecycle.json). 이 예시 구성은 빈 접두사를 지정하므로 버킷의 모든 객체에 적용돼요. 구성을 객체 하위 집합으로 제한하려면 접두사를 지정할 수 있어요.
{
    "Rules": [
        {
            "ID": "Test Rule",
            "Status": "Enabled",
            "Filter": {
                "Prefix": ""
            },
            "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation": 7
            }
        }
    ]
}
  • 다음 CLI 명령을 실행해 버킷에 이 수명주기 구성을 설정해요.
aws s3api put-bucket-lifecycle-configuration   \
--bucket amzn-s3-demo-bucket  \
--lifecycle-configuration file://lifecycle.json  
  • 버킷에 수명주기 구성이 설정됐는지 확인하려면 다음 get-bucket-lifecycle 명령을 사용해 수명주기 구성을 검색해요.
aws s3api get-bucket-lifecycle  \
--bucket amzn-s3-demo-bucket 
  • 수명주기 구성을 삭제하려면 다음 delete-bucket-lifecycle 명령을 사용해요.
aws s3api delete-bucket-lifecycle \
--bucket amzn-s3-demo-bucket

더 알아보기 (Learn more)