불완전한 멀티파트 업로드를 정리하기 위한 Amazon S3 수명 주기 구성 규칙을 확인하려면 어떻게 해야 합니까?

4분 분량
0

불완전한 멀티파트 업로드를 정리하기 위해 Amazon Simple Storage Service(S3) 수명 주기 구성 규칙을 설정했습니다. 규칙이 작동하는지 확인하려면 어떻게 해야 합니까?

간략한 설명

다음과 같은 각 방법으로 Amazon S3 수명 주기 구성 규칙을 확인할 수 있습니다.

  • 서버 액세스 로그를 쿼리합니다.
  • AWS Command Line Interface(AWS CLI)를 사용하여 멀티파트 업로드의 일부를 업로드하여 규칙을 테스트합니다.
    참고: AWS CLI를 사용하여 규칙을 설정할 때 이 규칙을 AbortIncompleteMultipartUpload라고 합니다.

해결 방법

서버 액세스 로그 쿼리

서버 액세스 로그를 쿼리하려면 S3 수명 주기 규칙을 실행하도록 설정하기 전에 버킷에서 서버 액세스 로깅을 활성화해야 합니다. 로그를 사용할 수 있게 되면 로그를 검토하여 규칙이 불완전한 멀티파트 업로드를 정리했는지 확인합니다. 자세한 내용은 S3 수명 주기 및 로깅을 참조하세요.

AWS CLI를 사용해 멀티파트 업로드의 일부를 업로드하여 규칙 테스트

서버 액세스 로깅을 활성화하지 않은 경우 불완전한 멀티파트 업로드를 실행하여 규칙을 테스트할 수 있습니다.

참고: 다음 예시에서는 AWS CLI를 사용하여 멀티파트 업로드를 수행합니다. AWS SDK를 사용하여 멀티파트 업로드를 수행하려면 멀티파트 업로드 API를 사용하여 객체 업로드를 참조하세요.

1.    업로드할 파일을 여러 파트로 분할합니다. 예를 들어 Linux 운영 체제를 사용하는 경우 split 명령을 실행합니다.

split /path/to/filetoupload

2.    AWS CLI를 사용해 create-multipart-upload 명령을 실행하여 멀티파트 업로드를 시작합니다.

aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인합니다.

이 명령은 UploadID가 포함된 출력을 반환합니다.

3.    이후 단계를 위해 UploadID 값을 참조용으로 복사합니다. 명령 출력은 다음과 같습니다.

{
    "AbortDate": "Mon, 03 Jun 2019 00:00:00 GMT",
    "AbortRuleId": "multipartcleanup",
    "Bucket": "awsexamplebucket",
    "Key": "objectname",
    "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk"
}

4.    upload-part 명령을 실행하여 파일의 첫 번째 파트를 업로드합니다.

aws s3api upload-part --bucket awsexamplebucket --key large_test_file --part-number 1 --body large_test_file.001 --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk

참고: 모든 값을 Amazon S3 버킷, 파일 및 멀티파트 업로드 값으로 바꿉니다.

이 명령은 업로드한 파일의 파트에 대해 ETag 값이 포함된 출력을 반환합니다.

5.    이후 단계에 대한 참조로 ETag 값을 복사합니다. 명령 출력은 다음과 같습니다.

{
    "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\""
}

6.    파일의 일부 부분에 대해 3단계와 4단계를 반복합니다. 이 테스트의 경우 파일을 완료하기 위해 모든 파트를 업로드하지 마세요.

참고: 업로드하는 새로운 파트의 파트 번호를 늘립니다.

7.    이 테스트에서는 멀티파트 업로드 작업을 완료하거나 중단하지 마세요. 대신 list-parts 명령을 실행하여 업로드된 파트를 적어 둡니다.

aws s3api list-parts --bucket awsexamplebucket --key large_test_file --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk

이 명령은 파트 목록을 반환합니다.

{
    "Parts": [
        {
            "PartNumber": 1,
            "LastModified": "2019-06-01T18:17:39.000Z",
            "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\"",
            "Size": 162641
        },
        {
            "PartNumber": 2,
            "LastModified": "2019-06-01T18:18:19.000Z",
            "ETag": "\"example246e31ab807da6f62802c1ae8\"",
            "Size": 3961
        }
    ],
    "Initiator": {
        "ID": "arn:aws:iam::111122223333:user/jane",
        "DisplayName": "jane"
    },
    "Owner": {
        "DisplayName": "bucketowner",
        "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d"
    },
    "StorageClass": "STANDARD"
}

8.    list-multipart-uploads 명령을 실행하여 버킷에 대해 진행 중인 멀티파트 업로드를 식별합니다.

aws s3api list-multipart-uploads --bucket awsexamplebucket

이 명령은 진행 중인 멀티파트 업로드 목록을 반환합니다.

{
    "Uploads": [
        {
            "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk",
            "Key": "large_test_file",
            "Initiated": "2019-06-01T17:08:33.000Z",
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "bucketowner",
                "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d"
            },
            "Initiator": {
                "ID": "arn:aws:iam::111122223333:user/jane",
                "DisplayName": "jane"
            }
        }
    ]
}

9.    S3 수명 주기 구성 규칙에 설정한 일수 동안 기다립니다. (S3 수명 주기 구성 규칙에 멀티파트 업로드가 시작되고 며칠 후에 정리가 시작될지 지정했습니다.)

10.    list-parts 명령을 다시 실행하여 불완전한 멀티파트 업로드의 파트가 삭제되었는지 확인합니다. 규칙에 의해 파트가 삭제되면 명령이 다음 응답을 반환합니다.

"An error occurred (NoSuchUpload) when calling the ListParts operation: The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed."

11.    list-multipart-uploads 명령을 다시 실행하여 멀티파트 작업이 중단되었는지 확인합니다. 규칙에 의해 멀티파트 작업이 중단된 후에는 명령이 출력을 반환하지 않습니다.


관련 정보

멀티파트 업로드를 사용한 객체 업로드 및 복사

AWS CLI를 사용하여 Amazon S3로 파일의 멀티파트 업로드를 수행하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 2년 전