Multipart Upload를 활용한 객체 업로드/복사 시 S3 Server access log에서 확인하는 방안

2분 분량
콘텐츠 수준: 기초
0

해당 기사에서는 Multipart를 활용한 업로드/복사 시 S3 Server access log에서 확인하는 방안을 확인하여, 적절한 S3 Server access log의 분석이 가능하도록 합니다.

문제 상황:

S3 Bucket에 업로드/복사를 실행했음에도 불구하고 S3 Server access log에서 REST.PUT.OBJECT/REST.COPY.OBJECT 로 기록을 확인할 수 없는 상황

사전 내용:

AWS CLI, 콘솔 등 일부 AWS 도구는 Default 셋팅 값으로 일정 크기 이상의 객체 업로드/카피 시 Multipart upload를 사용합니다.

해결:

Multipart upload로 객체가 업로드 될 때는 REST.PUT.OBJECT/REST.COPY.OBJECT로 기록되지 않습니다. S3 Server access log를 분석할 때는 operation에 다른 API명을 확인해야합니다. [1]

REST.POST.UPLOADS는 Multipart upload의 시작을 나타냅니다. REST.POST.UPLOAD는 CompleteMultipartUpload, Multipart upload의 종료를 나타냅니다. 이 사이에 Part들이 업로드 되는 API는 REST.PUT.PART입니다. 따라서, 아래와 같이 나타낼 수 있습니다.

REST.POST.UPLOADS (MPU Upload 시작)
...
REST.PUT.PART
REST.PUT.PART
REST.PUT.PART
...
REST.POST.UPLOAD (MPU Upload 종료)

MPU를 통한 Copy 시에도 이와 유사합니다. 다만, REST.PUT.PART가 아닌, REST.COPY.PART입니다. 따라서, REST.POST.UPLOADS는 Multipart upload의 시작을 나타냅니다. REST.POST.UPLOAD는 CompleteMultipartUpload, Multipart upload의 종료를 나타냅니다. 이 사이에 Part들이 복사 되는 API는 REST.COPY.PART입니다. 따라서, 아래와 같이 나타낼 수 있습니다.

REST.POST.UPLOADS (MPU Copy 시작)
...
REST.COPY.PART
REST.COPY.PART
REST.COPY.PART
...
REST.POST.UPLOAD (MPU Copy 종료)

예를 들어, S3 Server access log에서 Multipart upload를 통해 업로드 된 각 파트들의 업로드를 확인하기 위해서는 아래와 같이 쿼리할 수 있습니다. [2]

SELECT * FROM s3_access_logs_db.mybucket_logs where operation = 'REST.PUT.PART'

관련정보:

[1]: 멀티파트 업로드를 사용한 객체 업로드 및 복사 - https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/mpuoverview.html [2]: 아테나에서 S3 Server access log 쿼리 - https://repost.aws/ko/knowledge-center/analyze-logs-athena

AWS
지원 엔지니어
게시됨 8달 전253회 조회
댓글 없음

관련 콘텐츠