CloudWatch 지표와, Amazon S3에 대한 AWS CLI 스토리지 지표가 불일치한 이유는 무엇입니까?

4분 분량
0

Amazon Simple Storage Service(Amazon S3)에 대한 Amazon CloudWatch 지표와 AWS Command Line Interface(AWS CLI) 스토리지 지표가 불일치합니다. 두 소스 간에 보고된 스토리지 크기에 큰 차이가 있는 이유는 무엇입니까?

간략한 설명

Amazon S3에 대한 CloudWatch 스토리지 지표와 AWS CLI를 사용하여 계산된 지표가 불일치한 경우 다음을 확인하십시오.

  • 객체 버전 관리.
    참고: Amazon S3의 객체 버전 관리 기능은 버킷에 객체의 여러 버전을 유지합니다. 기본적으로 Amazon S3 객체 버전 관리는 버킷에서 비활성화되므로, 이 기능을 명시적으로 활성화해야 합니다. 또한 AWS CLI 스토리지 지표 계산은 버킷에 저장된 각 객체의 최신 버전 및 크기만 계산합니다.
  • 불완전한 멀티파트 업로드.
    참고: 완료되지 않은 멀티파트 업로드는 AWS CLI 스토리지 계산에 포함되지 않지만, CloudWatch 지표의 스토리지로 계산됩니다.

보고 불일치의 원인을 식별하려면 객체 버전 관리를 활성화했는지 확인하고 버킷에 멀티파트 업로드가 있는지 확인합니다. 이 두 가지 요인으로 인해 CloudWatch의 계산된 버킷 크기의 값이 증가할 수 있습니다. 자세한 내용은 버킷에 대한 Amazon S3 CloudWatch 일일 스토리지 지표 섹션을 참조하세요.

팁: Amazon S3에 불완전한 멀티파트 업로드가 존재하는 경우, 수명 주기 구성 규칙을 생성하는 것이 좋습니다. 이 수명 주기 구성 규칙은 불완전한 부분을 자동으로 정리하여 데이터 스토리지 비용을 낮춥니다. 수명 주기 규칙은 비동기식으로 작동하므로 작업이 지연될 수 있습니다. 그러나 객체가 삭제 표시되자마자 객체가 아직 제거되지 않았더라도 스토리지 요금이 청구되지 않습니다.

또한 Amazon S3 모니터링 지표는 매일 기록되므로 가장 최근에 업데이트된 정보가 표시되지 않을 수 있습니다. 한편 CloudWatch는 AWS 리소스와 애플리케이션을 실시간으로 모니터링합니다.

해결 방법

CloudWatch의 일일 스토리지 지표

CloudWatch에서 BucketSizeBytes 지표는 모든 Amazon S3 및 Amazon S3 Glacier 스토리지 유형, 객체 버전, 불완전한 멀티파트 업로드를 캡처합니다. 이 값은 모든 객체 크기, 버킷의 메타데이터(최신 및 최신이 아닌 객체 모두), 불완전한 멀티파트 업로드 크기를 합산하여 계산됩니다. 예를 들어 BucketSizeBytes 지표는 다음과 같은 모든 객체 스토리지 클래스에서 버킷에 저장되는 데이터의 양(바이트)을 계산됩니다.

  • S3 Standard
  • S3 Intelligent-Tiering
  • S3 스탠다드-IA
  • S3 One Zone-IA
  • S3 Reduced Redundancy Storage
  • S3 Glacier Deep Archive
  • S3 Glacier

또한 CloudWatch의 NumberOfObjects 지표에는 모든 스토리지 클래스에 대해 버킷에 저장된 총 객체 수가 포함됩니다. 이 값은 버킷의 모든 객체(현재 및 비최신 객체 모두) 및 불완전한 멀티파트 업로드의 총 부분 수를 계산합니다. 또한 NumberOfObjects 지표는 버킷에 있는 모든 객체 버전에 대한 총 객체 수를 계산합니다. 예를 들어, 동일한 객체의 버전이 두 개인 경우, 두 버전은 두 개의 개별 객체로 계산됩니다. 자세한 내용은 지표 및 차원을 참조하세요.

AWS CLI를 사용한 일일 스토리지 계산

AWS CLI를 사용하여 Amazon S3에 대한 스토리지 지표를 계산하려면 다음 명령 구문을 사용합니다.

aws s3 ls --summarize --human-readable --recursive s3://bucketname | grep -i total

이 명령 구문은 Amazon S3 버킷에 있는 객체의 총 수와 크기를 계산합니다. 하지만 버킷에 저장된 각 객체의 현재 버전(및 크기)만 계산됩니다. 각 객체의 멀티파트 업로드, 삭제 마커 및 최신이 아닌 버전은 총 버킷 크기 또는 총 객체 수로 계산되지 않습니다.

불완전한 멀티파트 업로드

불완전한 멀티파트 업로드 목록을 검토하려면, list-multipart-uploads 명령을 실행합니다.

aws s3api list-multipart-uploads --bucket <bucket-example>

그런 다음 list-parts 명령과 UploadId 값을 사용하여 멀티파트 업로드의 모든 객체를 나열합니다.

aws s3api list-parts --bucket <bucket-example> --key large_test_file --upload-id <examplevalue>

수명 주기 규칙 생성

멀티파트 업로드를 자동으로 삭제하기 위해 수명 주기 구성 규칙을 생성합니다. 다음 단계를 수행합니다.

1.    Amazon S3 콘솔을 엽니다.

2.    관리 탭을 선택합니다.

3.    **새 정책 생성(Create new policy)**을 선택합니다.

4.    정책의 이름을 추가합니다.

5.    **선택(Select) - 만료된 삭제 마커 또는 불완전한 멀티파트 업로드 삭제(Delete expired delete markers or incomplete multipart uploads)**를 선택합니다.

6.    (선택) 버킷의 버전이 관리되지 않은 경우, 불완전한 멀티파트 업로드 삭제를 선택합니다.

객체 버전 관리

다양한 버전의 객체에 대해 Amazon S3 버킷을 검토하고 감사하려면 Amazon S3 인벤토리 목록을 사용합니다. Amazon S3 인벤토리 목록 파일에는 소스 버킷의 객체 목록과 각 객체의 메타데이터가 포함됩니다. 인벤토리 목록 파일은 버킷 이름, 객체 크기, 스토리지 클래스, 버전 ID와 같은 메타데이터를 캡처합니다.


관련 정보

예 8: 멀티파트 업로드를 중단하기 위한 수명 주기 구성

만료되는 객체

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