Amazon Web Services 한국 블로그

S3 스토리지 관리 기능 업데이트 – 스토리지 분석, 개체 태깅, 인벤토리 및 신규 통계 기능

오늘은 Amazon S3의 새로운 네 가지 기능에 대해 소개합니다. 먼저 저장 내용과 사용량 및 사용 방법을 손쉽게 볼 수 있으며, 이를 통해 S3 스토리지 클래스 선택을 위한 근거 데이터로 의사 결정을 할 수 있습니다. 이는 몇 개의 저장 개체나 수백만개를 가지고 있는 고객 모두에게 유용할 것입니다.

  • S3 분석 기능 – 개체 저장소 및 검색 패턴을 분석하고 그 결과를 사용하여 가장 적합한 저장소 클래스를 선택할 수 있습니다. S3 콘솔 내에서 분석 결과를 살펴보거나, 선호하는 BI 도구에 분석 결과를 보내 심층적으로 분석할 수 있습니다. 어느 방법을 사용하든 스토리지 패턴을 깊이 이해하고, 이에 대한 활용 방식을 파악할 수 있습니다.
  • S3 개체 태그 지정 – 여러 개의 키-값 페어(태그)를 각각 S3 객체와 연결할 수 있으며 언제든지 변경할 수 있습니다. 태그를 통해 접근 관리 및 제어, S3 수명 주기 정책 설정, S3 분석 사용자 정의 및 CloudWatch 메트릭 필터링에 사용할 수 있습니다. 버킷을 데이터 레이크(Datalake)로 생각하고 태그를 사용하여 객체 분류를 만들 수 있습니다. 이는 버킷과 접두사를 사용하는 것보다 유연하며 객체의 이름을 바꾸거나 이동하거나 복사하지 않고도 의미있는 스타일을 변경할 수 있습니다.
  • S3 인벤토리 – S3 인벤토리를 사용하여 비즈니스 워크 플로우와 대규모 데이터 작업 속도를 높일 수 있습니다. 이 기능은 일별 또는 주 단위로 버킷 전부 또는 일부(접두사로 식별) 내용에 대해 CSV 파일 형식으로 제공 받을 수 있습다.
  • S3 CloudWatch Metrics – 13 가지 새로운 Amazon CloudWatch 메트릭을 모니터링하고 알림을 줌으로써 S3 기반 애플리케이션의 성능을 향상시킬 수 있습니다.

이제 각각에 대해 좀 더 자세히 알아보겠습니다.

S3 분석 기능
S3 사용자는 Standard, Standard – Infrequent Access, Glacier라는 세 가지 스토리지 클래스 중에서 선택할 수 있으며, S3의 개체 수명 주기 관리 기능을 사용하여 개체 삭제 혹은 클래스 간 전환 시점을 정할 수 있습니다.

S3 Analytics 기능은 Standard 혹은 Standard – Infrequent Access 하나를 선택하기 위해 필요한 정보를 제공합니다. 많은 고객이 단일 버킷에 여러 가지 유형 또는 정보를 저장해서 처리하기 때문에, 버킷 내 객체의 하위 집합 (공통 접두사 또는 태그 값으로 정의 됨)에서 분석을 실행할 수 있습니다. 각 서브 세트는 필터로 정의됩니다. 각 버킷에는 최대 1000 개의 필터를 만들 수 있습니다. 아래는 버킷의 필터 사용 예입니다.

다음은 www 접두어가 붙은 객체를 분석하는 간단한 필터를 정의하는 방법입니다.

대신 태그 이름과 값으로 필터링 선택도 할 수 있습니다. typepage라는 태그가있는 객체를 분석하는 방법은 다음과 같습니다.

각 필터는 원하는 수의 태그와 함께 최대 하나의 접두사를 가질 수 있습니다. 매일 파일로 분석을 내보내도록 선택할 수도 있습니다.

하나 이상의 필터가 설치되면 분석이 매일 실행되므로 필터를 클릭하기 만하면 분석 결과를 볼 수 있습니다. 예를 들어, Archival 필터를 클릭하면 다음과 같이 표시됩니다.

분석 결과를 보면 새로운 사실을 많이 알 수 있습니다.

  • 127 일 동안  30 일보다 오래된 대부분의 객체의 접근 횟수는 낮습니다. 이러한 개체를 다른 클래스의 저장소로 전환하는 개체 생명 주기 규칙을 만들어 비용을 절약 할 수 있습니다.
  • 이 시점에서 내 스토리지 대다수 (6.39 PB)는 표준 스토리지에 있습니다. 아주 작은 부분 (3.24GB)이 Standard – Access Control에 저장되어 있습니다 (실제 버킷에는 많은 데이터가 없습니다!) S3 팀은 제 계정에 일부 테스트 측정 항목을 로드 할 정도로 친절했습니다.)
  • 127 일간의 분석 기간 동안 표준 저장 공간의 16 %에서 30 %가 하루 단위로 검색되었습니다.
  • 30-45일, 45-60일, 60-90일, 90-180일 및 180 일 이상 개체는 낮은 빈도로 접근되며, Standard – Infrequent Access에 저장하는 게 적합합니다.

AWS 콘솔, CLI 또는 S3 API를 통해 스토리지 클래스 분석을 설정할 수 있습니다. 자세한 내용은 S3 Storage Class Analysis를 읽으십시오.

S3 개체 태깅
태그 기능은 기존 위치 기반 S3 객체 관리 모델 (버킷 및 접두어)에 객체가 나타내는 것을 기반으로 저장소를 관리하는 기능을 보완합니다. 예를 들어, 부서 이름으로 개체에 태그를 지정한 다음 태그를 기반으로 접근 권한을 부여하는 IAM 정책을 구성 할 수 있습니다. 이는 단순히 태그를 변경하여 변경 사항을 적용하는 기능을 포함하여 많은 유연성을 제공합니다.

개체 수명 주기의 어느 부분에서나 개체를 만들거나 업데이트하거나 삭제할 수 있습니다. 태그는 IAM 정책, S3 수명 주기 정책 및 위에서 설명한 Storage Analytics 필터에서 참조 할 수 있습니다. 각 객체는 최대 10 개의 태그를 가질 수 있으며, 객체의 각 버전에는 고유 한 태그 집합이 있습니다. 태그를 사용하여 라이프 사이클 정책을 통해 개체의 만료를 관리하고 특정 태그 주위의 활동을 반영하는 CloudWatch 메트릭을 설정할 수 있습니다.

각 개체의 속성 페이지에는 현재 태그 집합이 표시되며 편집 할 수 있습니다.

또한, CLI 또는 S3 API를 통해 태그를 설정할 수 있습니다. 이 두 가지 방법 중 하나를 사용할 때는 항상 전체 태그 세트의 관점에서 작업해야 합니다. 예를 들어, 개체에 네 개의 태그가 있고 다섯 번째 태그를 추가하려면 현재 세트를 읽고 새 세트를 추가 한 다음 전체 세트를 업데이트해야 합니다.

태그는 Cross-Region Replication를 통해 영역간에 복제 될 수 있지만 원본 측의 IAM 정책은 s3:GetObjectVersionTaggings3:ReplicateTags 동작을 활성화해야 합니다.

태그는 한 달에 10,000 태그 당 $ 0.01의 비용이 듭니다. 태그 추가 또는 업데이트 요청 (PUT 및 GET)은 기본 요금으로 청구됩니다.

자세한 내용은 S3 객체 태깅을 참조하십시오.

S3 인벤토리
S3의 LIST 작업은 동기식이며, 한 번에 최대 1000 개의 개체를 반환합니다. 두 번째 LIST를 시작하는 데 사용할 수 있는 키와 함께 첫 번째 개체가 있는 곳을 선택합니다. 작은 크기의 버킷과 단일 스레드 프로그램에서 잘 작동하지만 개체가 많이 저장된 큰 버킷 또는 여러 스레드와 함께 사용하는 것은 어려울 수 있습니다.

많은 AWS 고객이 수천 또는 수억 개의 개체를 하나의 버킷에 저장하고 있으며, 이러한 버킷은 대개 워크 플로의 일환으로 매일 또는 매주 처리합니다.

S3 인벤토리를 사용하면 모든 버킷에 대한 일일 또는 주간 인벤토리 보고서를 받을 수 있습니다. 접두어를 사용하여 보고서를 필터링하거나 크기, 저장소 클래스 및 복제 상태와 같은 선택적 필드를 포함할 수 있습니다. 이 보고서는 계정의 S3 버킷 또는 적절한 권한 설정을 사용하여 다른 계정으로 보낼 수 있습니다.

다음은 www로 시작하는 모든 객체에 대해 WebStuff라는 일일 인벤토리 보고서를 요청하는 방법입니다.

또한, 최종 버킷 (jbarr-s3-inventory)에 쓰는 S3 권한을 부여해야 합니다. 다음은 제가 사용한 IAM 정책입니다 (더 자세한 것은 Granting Permission for Amazon S3 Inventory and Amazon S3 Analytics 을 참고하시기 바랍니다.)

인벤토리 메커니즘은 매니페스트, 매니페스트의 체크섬 및 데이터 파일 등 세 가지 파일을 만듭니다. 매니페스트는 체크섬과 함께 데이터 파일의 위치를 ​​포함합니다.

{
   "sourceBucket":"jbarr-public",
   "destinationBucket":"arn:aws:s3:::jbarr-s3-inventory",
   "version":"2016-11-30",
   "fileFormat":"CSV",
   "fileSchema":"Bucket, Key, Size, LastModifiedDate, ETag, StorageClass",
   "files":[
      {
         "key":"jbarr-public/DailyInventory/data/cf1da322-f52b-4c61-802a-b5c14f4f32e2.csv.gz",
         "size":2270,
         "MD5checksum":"be6d0eb3f9c4f497fe40658baa5a2e7c"
      }
   ]
}

압축을 푼 데이터 파일의 모습은 다음과 같습니다.

인벤토리 보고서를 사용하여 일별 또는 주간 처리 워크 플로우를 공급하는 경우, S3 Notifications을 확인 하시기 바랍니다. 체크섬 파일은 다른 두 파일 뒤에 쓰여 지므로 안전하게 이 파일을 사용하여 움직이는 파일을 사용할 수 있습니다. 또한, 수명 주기 정책을 사용하여 시간이 지남에 따라 축적되는 인벤토리 파일 컬렉션을 관리하는 것을 잊지 마십시오.

추가 보너스로 매일 또는 매주 보고서를 사용하면 여러 LIST 작업과 비교할 때 최대 50 %까지 절약 할 수 있습니다. 이 기능에 대한 자세한 내용은 S3 Storage Inventory를 참조하십시오.

S3 CloudWatch 통계 보기
S3는 이제 CloudWatch에 스토리지, 개체 요청 및 데이터 전송량 통계 등을 게시 할 수 있습니다. 스토리지 통계치는 매일 보고되며 추가 비용 없이 제공됩니다. 개체 요청 및 데이터 전송량은 1 분 간격으로 (일부 처리 지연 후) 사용할 수 있으며, 표준 CloudWatch 요금으로 청구됩니다. S3 애널리틱스의 경우와 마찬가지로 CloudWatch 측정 항목은 전체 버킷 또는 접두어 또는 태그를 통해 선택한 하위 집합에 대해 수집 및 보고 될 수 있습니다.

전체 측정 항목은 다음과 같습니다.

Storage Requests Data Transfer
  • Bucket Size Bytes
  • Number Of Objects
  • GET
  • LIST
  • PUT
  • POST
  • DELETE
  • ALL
  • HEAD
  • 4xx Errors
  • 5xx Errors
  • Total Request Latency
  • First Byte Latency
  • Bytes Uploaded
  • Bytes Downloaded

위의 측정 항목은 S3 및 CloudWatch 콘솔에서 사용할 수 있습니다. 아래  기존 버킷 S3 Console에서 총 요청 대기 시간은 다음과 같습니다.

View in CloudWatch를 클릭하고 원하는 측정 항목에 대한 CloudWatch 알람을 설정할 수 있습니다. 아래는 버킷이 100MB 이상으로 커지면 알림을 받고자 하는 경우입니다.

더 자세한 것은 How Do I Configure Request Metrics for an S3 Bucket?을 참고하시기 바랍니다.

정식 출시
본 기능은 작년 말부터 사용할 수 있습니다. 참고로 Amazon S3 관리 콘솔 역시 새로운 디자인으로 업데이트 되었습니다.  새로운 디자인에 대한 사항은 Introduction to the New Amazon S3 Console 에서 동영상으로 확인할 수 있습니다.

Jeff;

이 글은 S3 Storage Management Update – Analytics, Object Tagging, Inventory, and Metrics의 한국어 번역입니다.