Amazon S3 Storage Lens 대시보드 만들기 - Amazon Simple Storage Service

Amazon S3 Storage Lens 대시보드 만들기

AWS Organizations의 조직 또는 계정 내의 특정 AWS 리전이나 버킷으로 범위를 지정할 수 있는 추가 S3 Storage Lens 사용자 지정 대시보드를 만들 수 있습니다.

참고

대시보드 구성을 업데이트하는 경우 올바르게 표시하거나 시각화하는 데 최장 48시간이 걸릴 수 있습니다.

다음 단계에 따라 Amazon S3 콘솔에서 Amazon S3 스토리지 렌즈 대시보드를 생성합니다.

1단계: 일반 설정 구성
  1. AWS Management 콘솔에 로그인한 후 https://console.aws.amazon.com/s3/에서 S3 콘솔을 엽니다.

  2. 페이지 상단의 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그런 다음 전환하려는 리전을 선택합니다.

  3. 왼쪽 탐색 창의 S3 스토리지 렌즈에서 대시보드를 선택합니다.

  4. 대시보드 생성을 선택합니다.

  5. 대시보드(Dashboard) 페이지의 일반(General) 섹션에서 다음을 수행합니다.

    1. 대시보드의 홈 리전을 확인합니다. 홈 리전은 이 Storage Lens 대시보드에 대한 구성 및 지표가 저장되는 AWS 리전입니다.

    2. 대시보드 이름을 입력합니다.

      대시보드 이름은 65자 미만이어야 하며 특수 문자나 공백을 포함할 수 없습니다.

      참고

      대시보드를 생성한 후에는 이 대시보드 이름을 변경할 수 없습니다.

    3. 대시보드에 업데이트된 일일 지표를 표시하려면 활성화됨을 선택합니다.

    4. (선택 사항) 대시보드에 태그를 추가하도록 선택할 수 있습니다. 태그를 사용하여 대시보드에 대한 권한을 관리하고 S3 스토리지 렌즈에 대한 비용을 추적할 수 있습니다. 자세한 내용은 IAM 사용 설명서태그를 사용한 AWS 리소스 액세스 제어AWS Billing 사용 설명서AWS에서 생성된 태그 사용을 참조하세요.

      참고

      대시보드 구성에 최대 50개의 태그를 추가할 수 있습니다.

  6. 다음을 선택하여 변경 사항을 저장하고 계속합니다.

2단계: 대시보드 범위 정의
  1. 대시보드 범위 섹션에서 S3 Storage Lens가 대시보드에 포함하거나 제외할 리전과 버킷을 선택합니다.

  2. S3 스토리지 렌즈에 포함하거나 제외하도록 사용자가 선택한 리전에서 버킷을 선택합니다. 버킷을 포함하거나 제외할 수 있지만, 둘 다 할 수는 없습니다. 조직 수준의 대시보드를 생성할 때는 이 옵션을 사용할 수 없습니다.

    참고
    • 리전과 버킷을 포함하거나 제외할 수 있습니다. 이 옵션은 조직의 구성원 계정에서 조직 수준의 대시보드를 생성할 때만 리전으로 제한됩니다.

    • 포함하거나 제외할 버킷을 최대 50개까지 선택할 수 있습니다.

  3. 다음을 선택하여 변경 사항을 저장하고 계속합니다.

3단계: Storage Lens 티어 선택
  1. Storage Lens 티어 섹션에서 이 대시보드에 대해 집계할 기능 티어를 선택합니다.

    1. 버킷 수준에서 집계되고 14일 동안 쿼리에 사용할 수 있는 무료 지표를 포함하려면 무료 티어를 선택합니다.

    2. 고급 지표를 활성화하려면 고급 티어를 선택합니다. 이러한 옵션에는 접두사 또는 Storage Lens 그룹 집계, Amazon CloudWatch 게시, 확장된 접두사 보고서 및 컨텍스트 권장 사항이 포함됩니다. 데이터는 15개월 동안 쿼리에 사용할 수 있습니다. 고급 지표 및 권장 사항에는 추가 비용이 부과됩니다. 자세한 내용은 Amazon S3 요금을 참조하십시오.

      고급 지표 및 무료 지표에 대한 자세한 내용은 지표 선택 섹션을 참조하십시오.

  2. 고급 지표 범주에서 활성화하려는 지표 범주를 선택합니다.

    • 활동 지표

    • 세부 상태 코드 지표

    • 비용 최적화 지표

    • 데이터 보호 지표

    • 성능 지표

    각 범주에 포함되는 지표를 미리 보려면 지표 범주 확인란 목록 아래의 드롭다운 화살표 버튼을 사용합니다. 비용 범주에 관한 자세한 내용은 지표 범주 섹션을 참조하십시오. 전체 지표 목록은 Amazon S3 스토리지 렌즈 지표 용어집 섹션을 참조하세요.

  3. 접두사 구분 기호를 선택하거나 지정하여 각 접두사 내의 수준을 구분합니다. 이 값은 각 접두사 수준을 식별하는 데 사용되는 값입니다. Amazon S3의 기본값은 ‘/‘ 문자이지만, 사용자 스토리지 구조에서 다른 구분 기호를 사용할 수 있습니다.

  4. 다음을 선택하여 변경 사항을 저장하고 계속합니다.

4단계: (선택 사항) 지표 집계 선택
  1. 추가 지표 집계에서 집계할 지표를 선택합니다.

    • 접두사 집계(Prefix aggregation)

    • Storage Lens 그룹 집계

  2. 접두사 집계를 활성화한 경우 대시보드의 최소 접두사 임계값접두사 깊이를 지정합니다. 그런 뒤에 다음을 선택하여 저장하고 계속합니다.

    참고

    접두사 깊이 설정은 심층 S3 Storage Lens가 객체 접두사를 분석할 계층 수준 수를 결정하며, 최대 제한은 10개 수준입니다. 접두사 임계값은 접두사가 Storage Lens 지표에 포함되기 전에 표시해야 하는 총 스토리지의 최소 백분율을 지정합니다.

  3. Storage Lens 그룹 집계를 활성화한 경우 다음 중 하나를 선택합니다.

    • Storage Lens 그룹 포함

    • Storage Lens 그룹 제외

  4. 집계에 Storage Lens 그룹을 포함하는 경우 홈 리전에 모든 Storage Lens 그룹을 포함하거나 포함할 Storage Lens 그룹을 지정할 수 있습니다.

  5. 다음을 선택하여 변경 사항을 저장하고 계속합니다.

5단계: (선택 사항) 지표 내보내기 및 게시 설정 선택
  1. CloudWatch 대시보드에서 Storage Lens지표에 액세스하려면 지표 게시에서 CloudWatch 게시를 선택합니다.

    참고

    CloudWatch에서는 접두사 수준 지표를 사용할 수 없습니다.

  2. 지표 내보내기에서 매일 내보낼 Storage Lens 대시보드 데이터를 선택합니다.

    • 기본 지표 보고서

    • 확장된 접두사 지표 보고서

  3. (선택 사항) 기본 지표 보고서를 선택한 경우 기본 지표 보고서 설정에서 버킷 유형을 선택합니다. 보고서를 범용 Amazon S3 버킷 또는 AWS 관리형 S3 테이블 버킷으로 내보낼 수 있습니다. 선택한 버킷 유형에 따라 범용 버킷 대상 설정 또는 테이블 버킷 대상 설정 옵션을 업데이트합니다.

    참고

    기본 지표 보고서에는 접두사 집계 설정에서 설정된 임계값 및 깊이 내에 있는 접두사만 포함됩니다.

    암호화 키 지정을 선택한 경우, AWS KMS 키(SSE-KMS) 또는 Amazon S3 관리형 키(SSE-S3) 중 하나를 선택해야 합니다. 대상 버킷 정책에 암호화가 필요한 경우 지표 내보내기를 위한 암호화 키를 제공해야 합니다. 암호화 키가 없으면 S3로 내보내기가 실패합니다. 자세한 내용은 AWS KMS key를 사용하여 지표 내보내기 암호화 섹션을 참조하세요.

  4. (선택 사항) 확장된 접두사 지표 보고서를 선택한 경우 확장된 접두사 지표 보고서 설정에서 버킷 유형을 선택합니다. 보고서를 범용 Amazon S3 버킷 또는 읽기 전용 S3 테이블 버킷으로 내보낼 수 있습니다. 선택한 버킷 유형에 따라 범용 버킷 대상 설정 또는 테이블 버킷 대상 설정을 업데이트합니다.

    참고

    확장된 접두사 지표 보고서에는 대시보드 범위에 지정된 선택한 모든 버킷의 접두사 깊이 50까지의 모든 접두사가 포함됩니다.

    암호화 키 지정을 선택한 경우, AWS KMS 키(SSE-KMS) 또는 Amazon S3 관리형 키(SSE-S3) 중 하나를 선택해야 합니다. 대상 버킷 정책에 암호화가 필요한 경우 지표 내보내기를 위한 암호화 키를 제공해야 합니다. 암호화 키가 없으면 S3로 내보내기가 실패합니다. 자세한 내용은 AWS KMS key를 사용하여 지표 내보내기 암호화 섹션을 참조하세요.

  5. 다음을 선택하여 변경 사항을 저장하고 계속합니다.

  6. 검토 및 생성 페이지의 모든 내용을 검토합니다. 추가 변경 사항이 없는 경우 다음을 선택하여 변경 사항을 저장하고 대시보드를 생성합니다.

6단계: 대시보드 구성 검토 및 대시보드 생성
  1. 일반 섹션에서 설정을 검토합니다. 변경하려면 편집을 선택합니다.

  2. 대시보드 범위 섹션에서 설정을 검토합니다. 변경하려면 편집을 선택합니다.

  3. Storage Lens 티어 섹션에서 설정을 검토합니다. 변경하려면 편집을 선택합니다.

  4. 지표 집계 섹션에서 설정을 검토합니다. 변경하려면 편집을 선택합니다.

  5. 지표 내보내기 섹션에서 설정을 검토합니다. 변경하려면 편집을 선택합니다.

  6. 모든 대시보드 구성 설정을 검토하고 확인한 후 제출을 선택하여 대시보드를 생성합니다.

새 Storage Lens 대시보드를 성공적으로 생성한 후에는 Storage Lens 대시보드 페이지에 나열된 새 대시보드를 볼 수 있습니다.

다음 예제 명령에서는 태그가 있는 Amazon S3 Storage Lens 구성을 만듭니다. 이러한 예시를 사용하려면 user input placeholders를 실제 정보로 대체하십시오.

aws s3control put-storage-lens-configuration --account-id=111122223333 --config-id=example-dashboard-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json --tags=file://./tags.json

다음 예제 명령에서는 태그가 없는 Amazon S3 Storage Lens 구성을 만듭니다. 이러한 예시를 사용하려면 user input placeholders를 실제 정보로 대체하십시오.

aws s3control put-storage-lens-configuration --account-id=222222222222 --config-id=your-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json
예 – Amazon S3 Storage Lens 구성 만들기 및 업데이트

다음 예제에서는 SDK for Java에서 Amazon S3 Storage Lens 구성을 만들고 업데이트합니다.

package aws.example.s3control; import software.amazon.awssdk.awscore.exception.AwsServiceException; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3control.S3ControlClient; import software.amazon.awssdk.services.s3control.model.AccountLevel; import software.amazon.awssdk.services.s3control.model.ActivityMetrics; import software.amazon.awssdk.services.s3control.model.AdvancedCostOptimizationMetrics; import software.amazon.awssdk.services.s3control.model.AdvancedDataProtectionMetrics; import software.amazon.awssdk.services.s3control.model.AdvancedPerformanceMetrics; import software.amazon.awssdk.services.s3control.model.BucketLevel; import software.amazon.awssdk.services.s3control.model.CloudWatchMetrics; import software.amazon.awssdk.services.s3control.model.DetailedStatusCodesMetrics; import software.amazon.awssdk.services.s3control.model.Format; import software.amazon.awssdk.services.s3control.model.Include; import software.amazon.awssdk.services.s3control.model.OutputSchemaVersion; import software.amazon.awssdk.services.s3control.model.PrefixLevel; import software.amazon.awssdk.services.s3control.model.PrefixLevelStorageMetrics; import software.amazon.awssdk.services.s3control.model.PutStorageLensConfigurationRequest; import software.amazon.awssdk.services.s3control.model.S3BucketDestination; import software.amazon.awssdk.services.s3control.model.SSES3; import software.amazon.awssdk.services.s3control.model.SelectionCriteria; import software.amazon.awssdk.services.s3control.model.StorageLensAwsOrg; import software.amazon.awssdk.services.s3control.model.StorageLensConfiguration; import software.amazon.awssdk.services.s3control.model.StorageLensDataExport; import software.amazon.awssdk.services.s3control.model.StorageLensDataExportEncryption; import software.amazon.awssdk.services.s3control.model.StorageLensExpandedPrefixesDataExport; import software.amazon.awssdk.services.s3control.model.StorageLensTableDestination; import software.amazon.awssdk.services.s3control.model.StorageLensTag; import java.util.Arrays; import java.util.List; public class CreateAndUpdateDashboard { public static void main(String[] args) { String configurationId = "ConfigurationId"; String sourceAccountId = "111122223333"; String exportAccountId = "Destination Account ID"; String exportBucketArn = "arn:aws:s3:::destBucketName"; // The destination bucket for your metrics export must be in the same Region as your S3 Storage Lens configuration. String awsOrgARN = "arn:aws:organizations::123456789012:organization/o-abcdefgh"; Format exportFormat = Format.CSV; try { SelectionCriteria selectionCriteria = SelectionCriteria.builder() .delimiter("/") .maxDepth(5) .minStorageBytesPercentage(10.0) .build(); PrefixLevelStorageMetrics prefixStorageMetrics = PrefixLevelStorageMetrics.builder() .isEnabled(true) .selectionCriteria(selectionCriteria) .build(); BucketLevel bucketLevel = BucketLevel.builder() .activityMetrics(ActivityMetrics.builder().isEnabled(true).build()) .advancedCostOptimizationMetrics(AdvancedCostOptimizationMetrics.builder().isEnabled(true).build()) .advancedDataProtectionMetrics(AdvancedDataProtectionMetrics.builder().isEnabled(true).build()) .advancedPerformanceMetrics(AdvancedPerformanceMetrics.builder().isEnabled(true).build()) .detailedStatusCodesMetrics(DetailedStatusCodesMetrics.builder().isEnabled(true).build()) .prefixLevel(PrefixLevel.builder().storageMetrics(prefixStorageMetrics).build()) .build(); AccountLevel accountLevel = AccountLevel.builder() .activityMetrics(ActivityMetrics.builder().isEnabled(true).build()) .advancedCostOptimizationMetrics(AdvancedCostOptimizationMetrics.builder().isEnabled(true).build()) .advancedPerformanceMetrics(AdvancedPerformanceMetrics.builder().isEnabled(true).build()) .advancedDataProtectionMetrics(AdvancedDataProtectionMetrics.builder().isEnabled(true).build()) .detailedStatusCodesMetrics(DetailedStatusCodesMetrics.builder().isEnabled(true).build()) .bucketLevel(bucketLevel) .build(); Include include = Include.builder() .buckets(Arrays.asList("arn:aws:s3:::bucketName")) .regions(Arrays.asList("us-west-2")) .build(); StorageLensDataExportEncryption exportEncryption = StorageLensDataExportEncryption.builder() .sses3(SSES3.builder().build()) .build(); S3BucketDestination s3BucketDestination = S3BucketDestination.builder() .accountId(exportAccountId) .arn(exportBucketArn) .encryption(exportEncryption) .format(exportFormat) .outputSchemaVersion(OutputSchemaVersion.V_1) .prefix("Prefix") .build(); StorageLensTableDestination s3TablesDestination = StorageLensTableDestination.builder() .encryption(exportEncryption) .isEnabled(true) .build(); CloudWatchMetrics cloudWatchMetrics = CloudWatchMetrics.builder() .isEnabled(true) .build(); StorageLensDataExport dataExport = StorageLensDataExport.builder() .cloudWatchMetrics(cloudWatchMetrics) .s3BucketDestination(s3BucketDestination) .storageLensTableDestination(s3TablesDestination) .build(); StorageLensAwsOrg awsOrg = StorageLensAwsOrg.builder() .arn(awsOrgARN) .build(); StorageLensExpandedPrefixesDataExport expandedPrefixesDataExport = StorageLensExpandedPrefixesDataExport.builder() .s3BucketDestination(s3BucketDestination) .storageLensTableDestination(s3TablesDestination) .build(); StorageLensConfiguration configuration = StorageLensConfiguration.builder() .id(configurationId) .accountLevel(accountLevel) .include(include) .dataExport(dataExport) .awsOrg(awsOrg) .expandedPrefixesDataExport(expandedPrefixesDataExport) .prefixDelimiter("/") .isEnabled(true) .build(); List<StorageLensTag> tags = Arrays.asList( StorageLensTag.builder().key("key-1").value("value-1").build(), StorageLensTag.builder().key("key-2").value("value-2").build() ); S3ControlClient s3ControlClient = S3ControlClient.builder() .region(Region.US_WEST_2) .credentialsProvider(ProfileCredentialsProvider.create()) .build(); s3ControlClient.putStorageLensConfiguration(PutStorageLensConfigurationRequest.builder() .accountId(sourceAccountId) .configId(configurationId) .storageLensConfiguration(configuration) .tags(tags) .build() ); } catch (AwsServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }

S3 Storage Lens 그룹 또는 확장된 접두사에 액세스하려면 고급 티어를 사용하도록 대시보드를 업그레이드해야 합니다. 추가 요금이 발생합니다. 무료 및 고급 티어에 대한 자세한 정보는 지표 선택 섹션을 참조하세요. S3 스토리지 렌즈 사용에 대한 자세한 내용은 S3 Storage Lens 그룹을 사용하여 지표 필터링 및 집계 섹션을 참조하십시오.