S3 Storage Lens에 CloudWatch 게시 사용 - Amazon Simple Storage Service

S3 Storage Lens에 CloudWatch 게시 사용

S3 스토리지 렌즈 지표를 Amazon CloudWatch에 게시하여 CloudWatch 대시보드에서 운영 상태에 대한 통합 보기를 생성할 수 있습니다. 또한 경보 및 트리거된 작업, 지표 수학, 이상 감지와 같은 CloudWatch 기능을 사용하여 S3 스토리지 렌즈 지표를 모니터링하고 조치를 취할 수 있습니다. 또한 CloudWatch API 작업을 사용하면 서드 파티 공급자를 포함한 애플리케이션이 S3 스토리지 렌즈 지표에 액세스할 수 있습니다. CloudWatch 기능에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

S3 Storage Lens 지표는 S3 Storage Lens 구성을 소유한 계정의 CloudWatch에 게시됩니다. 고급 지표 및 권장 사항 내에서 CloudWatch 게시 옵션을 사용하면 CloudWatch에서 조직, 계정, 버킷 수준 지표에 액세스할 수 있습니다. CloudWatch에서는 접두사 수준 지표를 사용할 수 없습니다.

S3 콘솔, Amazon S3 REST API, AWS CLI 및 AWS SDK로 신규 또는 기존 대시보드 구성에 CloudWatch 지원을 사용할 수 있습니다. CloudWatch 게시 옵션은 S3 스토리지 렌즈 고급 지표 및 권장 사항으로 업그레이드된 대시보드에 사용할 수 있습니다. S3 스토리지 렌즈 고급 지표 및 권장 사항 요금은 Amazon S3 요금을 참조하세요. 추가 CloudWatch 지표 게시 요금은 적용되지 않습니다. 그러나 대시보드, 경보, API 호출 등의 다른 CloudWatch 요금이 적용됩니다.

S3 Storage Lens 지표용 CloudWatch 게시 옵션을 사용하려면 다음 주제를 참조하세요.

참고

S3 Storage Lens 지표는 일일 지표이며 하루에 한 번 CloudWatch에 게시됩니다. CloudWatch에서 S3 Storage Lens 지표를 쿼리할 때 쿼리 기간은 1일(86,400초)이어야 합니다. 일일 S3 Storage Lens 지표가 Amazon S3 콘솔의 S3 Storage Lens 대시보드에 표시된 후 동일한 지표가 CloudWatch에 표시되는 데 몇 시간이 걸릴 수 있습니다. S3 Storage Lens 지표에 대해 CloudWatch 게시 옵션을 처음 사용하면 지표가 CloudWatch에 게시되는 데 최대 24시간이 걸릴 수 있습니다.

현재 S3 스토리지 렌즈 지표는 CloudWatch 스트림을 통해 사용할 수 없습니다.

S3 스토리지 렌즈 대시보드를 업데이트할 때 대시보드 이름이나 홈 리전을 변경할 수 없습니다. 또한 전체 계정의 스토리지로 범위가 지정된 기본 대시보드의 범위를 변경할 수 없습니다.

CloudWatch 게시를 사용하도록 S3 스토리지 렌즈 대시보드 업데이트
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 S3 스토리지 렌즈(S3 스토리지 렌즈), Dashboards(대시보드)를 선택합니다.

  3. 편집할 대시보드를 선택한 다음 편집(Edit)을 선택합니다.

  4. 지표 선택(Metrics selection)에서 고급 지표 및 권장 사항(Advanced metrics and recommendations)을 선택합니다.

    고급 지표 및 권장 사항을 추가 요금에 사용할 수 있습니다. 고급 지표 및 권장 사항에는 15개월의 데이터 쿼리 기간, 접두사 수준에서 집계된 사용량 지표, 버킷별로 집계된 활동 지표, CloudWatch 게시 옵션, 스토리지 비용을 최적화하고 데이터 보호 모범 사례를 적용하는 데 도움이 되는 상황별 권장 사항이 포함됩니다. 자세한 내용은 Amazon S3 요금을 참조하세요.

  5. 고급 지표 및 권장 사항 기능 선택(Select Advanced metrics and recommendations features)에서 CloudWatch 게시(CloudWatch publishing)를 선택합니다.

    중요

    구성에서 사용량 지표에 접두사 집계를 사용하면 접두사 수준 지표가 CloudWatch에 게시되지 않습니다. 버킷, 계정 및 조직 수준 S3 Storage Lens 지표만 CloudWatch에 게시됩니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

CloudWatch 지원을 사용하는 새 S3 Storage Lens 대시보드 생성
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 스토리지 렌즈(스토리지 렌즈), Dashboards(대시보드)를 선택합니다.

  3. 대시보드 생성(Create dashboard)을 선택합니다.

  4. General(일반)에서 다음 구성 옵션을 정의합니다.

    1. Dashboard name(대시보드 이름)에 대시보드 이름을 입력합니다.

      대시보드 이름은 65자 미만이어야 하며 특수 문자나 공백을 포함할 수 없습니다. 대시보드를 생성한 후에는 대시보드 이름을 변경할 수 없습니다.

    2. 대시보드에 대해 홈 리전(Home Region)을 선택합니다.

      이 대시보드 범위에 포함된 모든 리전에 대한 대시보드 지표는 지정된 홈 리전에 중앙 집중식으로 저장됩니다. CloudWatch에서 S3 Storage Lens 지표는 홈 리전에서도 사용할 수 있습니다. 대시보드를 생성한 후에는 홈 리전을 변경할 수 없습니다.

  5. (선택 사항) 태그를 추가하려면 태그 추가(Add tag)를 선택하고 태그 키(Key)값(Value)을 입력합니다.

    참고

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

  6. 구성 범위를 정의합니다.

    1. 조직 수준 구성을 생성할 때 Include all accounts in your configuration(구성에 모든 계정 포함) 또는 Limit the scope to your signed-in account(로그인한 계정으로 범위 제한)를 사용하여 구성에 포함할 계정을 선택합니다.

      참고

      모든 계정을 포함하는 조직 수준 구성을 생성할 때 버킷이 아닌 리전만 포함하거나 제외할 수 있습니다.

    2. 다음에 따라 S3 스토리지 렌즈가 대시보드 구성에 포함할 리전과 버킷을 선택합니다.

      • 모든 리전을 포함하려면 리전 및 버킷 포함(Include Regions and buckets)을 선택합니다.

      • 특정 리전을 포함하려면 모든 리전 포함(Include all Regions)을 선택 취소합니다. 포함할 리전 선택(Choose Regions to include)에서 S3 Storage Lens가 대시보드에 포함할 리전을 선택합니다.

      • 특정 버킷을 포함하려면 모든 버킷 포함(Include all buckets)을 선택 취소합니다. 포함할 버킷 선택(Choose buckets to include)에서 S3 Storage Lens가 대시보드에 포함할 버킷을 선택합니다.

        참고

        버킷을 최대 50개까지 선택할 수 있습니다.

  7. Metrics selection(지표 선택)에서 Advanced metrics and recommendations(고급 지표 및 권장 사항)를 선택합니다.

    고급 지표 및 권장 사항 요금에 대한 자세한 내용은 Amazon S3 요금 섹션을 참조하세요.

  8. Select advanced metrics and recommendations features(고급 지표 및 권장 사항 기능 선택)에서 활성화할 옵션을 선택합니다.

    • Advanced metrics(고급 지표)

    • CloudWatch 게시(CloudWatch publishing)

      중요

      S3 Storage Lens 구성에 접두사 집계를 사용하면 접두사 수준 지표가 CloudWatch에 게시되지 않습니다. 버킷, 계정 및 조직 수준 S3 Storage Lens 지표만 CloudWatch에 게시됩니다.

    • 접두사 집계(Prefix aggregation)

    참고

    고급 지표 및 권장 사항 기능에 대한 자세한 내용은 지표 선택 섹션을 참조하세요.

  9. Advanced metrics(고급 지표)를 활성화한 경우 S3 스토리지 렌즈 대시보드에 표시하려는 Advanced metrics categories(고급 지표 범주)를 선택합니다.

    • 활동 지표

    • 세부 상태 코드 지표

    • 고급 비용 최적화 지표

    • 고급 데이터 보호 지표

    비용 범주에 관한 자세한 내용은 지표 범주 섹션을 참조하세요. 전체 측정치 목록은 Amazon S3 스토리지 렌즈 지표 용어집 단원을 참조하십시오.

  10. (선택 사항) 지표 내보내기를 구성합니다.

    지표 내보내기를 구성하는 방법에 대한 자세한 내용은 Amazon S3 스토리지 렌즈 대시보드 생성 단계를 참조하세요.

  11. 대시보드 생성(Create dashboard)을 선택합니다.

다음 AWS CLI 예에서는 S3 스토리지 렌즈 조직 수준 고급 지표 및 권장 사항 구성으로 CloudWatch 게시 옵션을 사용하도록 설정합니다. 이 예제를 사용하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3control put-storage-lens-configuration --account-id=555555555555 --config-id=your-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json config.json { "Id": "SampleS3StorageLensConfiguration", //Use this property to identify your S3 Storage Lens configuration. "AwsOrg": { //Use this property when enabling S3 Storage Lens for AWS Organizations. "Arn": "arn:aws:organizations::123456789012:organization/o-abcdefgh" }, "AccountLevel": { "ActivityMetrics": { "IsEnabled":true }, "AdvancedCostOptimizationMetrics": { "IsEnabled":true }, "AdvancedDataProtectionMetrics": { "IsEnabled":true }, "DetailedStatusCodesMetrics": { "IsEnabled":true }, "BucketLevel": { "ActivityMetrics": { "IsEnabled":true //Mark this as false if you want only free metrics. }, "ActivityMetrics": { "IsEnabled":true //Mark this as false if you want only free metrics. }, "AdvancedCostOptimizationMetrics": { "IsEnabled":true //Mark this as false if you want only free metrics. }, "DetailedStatusCodesMetrics": { "IsEnabled":true //Mark this as false if you want only free metrics. }, "PrefixLevel":{ "StorageMetrics":{ "IsEnabled":true, //Mark this as false if you want only free metrics. "SelectionCriteria":{ "MaxDepth":5, "MinStorageBytesPercentage":1.25, "Delimiter":"/" } } } } }, "Exclude": { //Replace with "Include" if you prefer to include Regions. "Regions": [ "eu-west-1" ], "Buckets": [ //This attribute is not supported for AWS Organizations-level configurations. "arn:aws:s3:::source_bucket1" ] }, "IsEnabled": true, //Whether the configuration is enabled "DataExport": { //Details about the metrics export "S3BucketDestination": { "OutputSchemaVersion": "V_1", "Format": "CSV", //You can add "Parquet" if you prefer. "AccountId": "111122223333", "Arn": "arn:aws:s3:::destination-bucket-name", // The destination bucket for your metrics export must be in the same Region as your S3 Storage Lens configuration. "Prefix": "prefix-for-your-export-destination", "Encryption": { "SSES3": {} } }, "CloudWatchMetrics": { "IsEnabled": true //Mark this as false if you want to export only free metrics. } } }
package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.AccountLevel; import com.amazonaws.services.s3control.model.ActivityMetrics; import com.amazonaws.services.s3control.model.BucketLevel; import com.amazonaws.services.s3control.model.CloudWatchMetrics; import com.amazonaws.services.s3control.model.Format; import com.amazonaws.services.s3control.model.Include; import com.amazonaws.services.s3control.model.OutputSchemaVersion; import com.amazonaws.services.s3control.model.PrefixLevel; import com.amazonaws.services.s3control.model.PrefixLevelStorageMetrics; import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest; import com.amazonaws.services.s3control.model.S3BucketDestination; import com.amazonaws.services.s3control.model.SSES3; import com.amazonaws.services.s3control.model.SelectionCriteria; import com.amazonaws.services.s3control.model.StorageLensAwsOrg; import com.amazonaws.services.s3control.model.StorageLensConfiguration; import com.amazonaws.services.s3control.model.StorageLensDataExport; import com.amazonaws.services.s3control.model.StorageLensDataExportEncryption; import com.amazonaws.services.s3control.model.StorageLensTag; import java.util.Arrays; import java.util.List; import static com.amazonaws.regions.Regions.US_WEST_2; public class CreateAndUpdateDashboard { public static void main(String[] args) { String configurationId = "ConfigurationId"; String sourceAccountId = "Source Account ID"; 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 = new SelectionCriteria() .withDelimiter("/") .withMaxDepth(5) .withMinStorageBytesPercentage(10.0); PrefixLevelStorageMetrics prefixStorageMetrics = new PrefixLevelStorageMetrics() .withIsEnabled(true) .withSelectionCriteria(selectionCriteria); BucketLevel bucketLevel = new BucketLevel() .withActivityMetrics(new ActivityMetrics().withIsEnabled(true)) .withAdvancedCostOptimizationMetrics(new AdvancedCostOptimizationMetrics().withIsEnabled(true)) .withAdvancedDataProtectionMetrics(new AdvancedDataProtectionMetrics().withIsEnabled(true)) .withDetailedStatusCodesMetrics(new DetailedStatusCodesMetrics().withIsEnabled(true)) .withPrefixLevel(new PrefixLevel().withStorageMetrics(prefixStorageMetrics)); AccountLevel accountLevel = new AccountLevel() .withActivityMetrics(new ActivityMetrics().withIsEnabled(true)) .withAdvancedCostOptimizationMetrics(new AdvancedCostOptimizationMetrics().withIsEnabled(true)) .withAdvancedDataProtectionMetrics(new AdvancedDataProtectionMetrics().withIsEnabled(true)) .withDetailedStatusCodesMetrics(new DetailedStatusCodesMetrics().withIsEnabled(true)) .withBucketLevel(bucketLevel); Include include = new Include() .withBuckets(Arrays.asList("arn:aws:s3:::bucketName")) .withRegions(Arrays.asList("us-west-2")); StorageLensDataExportEncryption exportEncryption = new StorageLensDataExportEncryption() .withSSES3(new SSES3()); S3BucketDestination s3BucketDestination = new S3BucketDestination() .withAccountId(exportAccountId) .withArn(exportBucketArn) .withEncryption(exportEncryption) .withFormat(exportFormat) .withOutputSchemaVersion(OutputSchemaVersion.V_1) .withPrefix("Prefix"); CloudWatchMetrics cloudWatchMetrics = new CloudWatchMetrics() .withIsEnabled(true); StorageLensDataExport dataExport = new StorageLensDataExport() .withCloudWatchMetrics(cloudWatchMetrics) .withS3BucketDestination(s3BucketDestination); StorageLensAwsOrg awsOrg = new StorageLensAwsOrg() .withArn(awsOrgARN); StorageLensConfiguration configuration = new StorageLensConfiguration() .withId(configurationId) .withAccountLevel(accountLevel) .withInclude(include) .withDataExport(dataExport) .withAwsOrg(awsOrg) .withIsEnabled(true); List<StorageLensTag> tags = Arrays.asList( new StorageLensTag().withKey("key-1").withValue("value-1"), new StorageLensTag().withKey("key-2").withValue("value-2") ); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest() .withAccountId(sourceAccountId) .withConfigId(configurationId) .withStorageLensConfiguration(configuration) .withTags(tags) ); } catch (AmazonServiceException 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(); } } }

Amazon S3 REST API로 CloudWatch 게시 옵션을 사용하도록 설정하려면 PutStorageLensConfiguration을 사용합니다.

다음 단계

CloudWatch 게시 옵션을 사용하도록 설정한 후 CloudWatch의 S3 Storage Lens 지표에 액세스할 수 있습니다. CloudWatch 기능을 활용하여 CloudWatch에서 S3 Storage Lens 데이터를 모니터링하고 분석할 수도 있습니다. 자세한 내용은 다음 주제를 참조하세요.