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 요금
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 스토리지 렌즈 대시보드 업데이트
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
왼쪽 탐색 창에서 S3 스토리지 렌즈(S3 스토리지 렌즈), Dashboards(대시보드)를 선택합니다.
-
편집할 대시보드를 선택한 다음 편집(Edit)을 선택합니다.
-
지표 선택(Metrics selection)에서 고급 지표 및 권장 사항(Advanced metrics and recommendations)을 선택합니다.
고급 지표 및 권장 사항을 추가 요금에 사용할 수 있습니다. 고급 지표 및 권장 사항에는 15개월의 데이터 쿼리 기간, 접두사 수준에서 집계된 사용량 지표, 버킷별로 집계된 활동 지표, CloudWatch 게시 옵션, 스토리지 비용을 최적화하고 데이터 보호 모범 사례를 적용하는 데 도움이 되는 상황별 권장 사항이 포함됩니다. 자세한 내용은 Amazon S3 요금
을 참조하세요. -
고급 지표 및 권장 사항 기능 선택(Select Advanced metrics and recommendations features)에서 CloudWatch 게시(CloudWatch publishing)를 선택합니다.
중요
구성에서 사용량 지표에 접두사 집계를 사용하면 접두사 수준 지표가 CloudWatch에 게시되지 않습니다. 버킷, 계정 및 조직 수준 S3 Storage Lens 지표만 CloudWatch에 게시됩니다.
-
Save changes(변경 사항 저장)를 선택합니다.
CloudWatch 지원을 사용하는 새 S3 Storage Lens 대시보드 생성
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
왼쪽 탐색 창에서 스토리지 렌즈(스토리지 렌즈), Dashboards(대시보드)를 선택합니다.
-
대시보드 생성(Create dashboard)을 선택합니다.
-
General(일반)에서 다음 구성 옵션을 정의합니다.
-
Dashboard name(대시보드 이름)에 대시보드 이름을 입력합니다.
대시보드 이름은 65자 미만이어야 하며 특수 문자나 공백을 포함할 수 없습니다. 대시보드를 생성한 후에는 대시보드 이름을 변경할 수 없습니다.
-
대시보드에 대해 홈 리전(Home Region)을 선택합니다.
이 대시보드 범위에 포함된 모든 리전에 대한 대시보드 지표는 지정된 홈 리전에 중앙 집중식으로 저장됩니다. CloudWatch에서 S3 Storage Lens 지표는 홈 리전에서도 사용할 수 있습니다. 대시보드를 생성한 후에는 홈 리전을 변경할 수 없습니다.
-
-
(선택 사항) 태그를 추가하려면 태그 추가(Add tag)를 선택하고 태그 키(Key)와 값(Value)을 입력합니다.
참고
대시보드 구성에 최대 50개의 태그를 추가할 수 있습니다.
-
구성 범위를 정의합니다.
-
조직 수준 구성을 생성할 때 Include all accounts in your configuration(구성에 모든 계정 포함) 또는 Limit the scope to your signed-in account(로그인한 계정으로 범위 제한)를 사용하여 구성에 포함할 계정을 선택합니다.
참고
모든 계정을 포함하는 조직 수준 구성을 생성할 때 버킷이 아닌 리전만 포함하거나 제외할 수 있습니다.
-
다음에 따라 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개까지 선택할 수 있습니다.
-
-
-
Metrics selection(지표 선택)에서 Advanced metrics and recommendations(고급 지표 및 권장 사항)를 선택합니다.
고급 지표 및 권장 사항 요금에 대한 자세한 내용은 Amazon S3 요금
섹션을 참조하세요. -
Select advanced metrics and recommendations features(고급 지표 및 권장 사항 기능 선택)에서 활성화할 옵션을 선택합니다.
-
Advanced metrics(고급 지표)
-
CloudWatch 게시(CloudWatch publishing)
중요
S3 Storage Lens 구성에 접두사 집계를 사용하면 접두사 수준 지표가 CloudWatch에 게시되지 않습니다. 버킷, 계정 및 조직 수준 S3 Storage Lens 지표만 CloudWatch에 게시됩니다.
-
접두사 집계(Prefix aggregation)
참고
고급 지표 및 권장 사항 기능에 대한 자세한 내용은 지표 선택 섹션을 참조하세요.
-
-
Advanced metrics(고급 지표)를 활성화한 경우 S3 스토리지 렌즈 대시보드에 표시하려는 Advanced metrics categories(고급 지표 범주)를 선택합니다.
-
활동 지표
-
세부 상태 코드 지표
-
고급 비용 최적화 지표
-
고급 데이터 보호 지표
비용 범주에 관한 자세한 내용은 지표 범주 섹션을 참조하세요. 전체 측정치 목록은 Amazon S3 스토리지 렌즈 지표 용어집 단원을 참조하십시오.
-
-
(선택 사항) 지표 내보내기를 구성합니다.
지표 내보내기를 구성하는 방법에 대한 자세한 내용은 Amazon S3 스토리지 렌즈 대시보드 생성 단계를 참조하세요.
-
대시보드 생성(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 데이터를 모니터링하고 분석할 수도 있습니다. 자세한 내용은 다음 주제를 참조하세요.