S3 Storage Lens 用の CloudWatch パブリッシングの有効化 - Amazon Simple Storage Service

S3 Storage Lens 用の CloudWatch パブリッシングの有効化

S3 ストレージレンズのメトリクスを Amazon CloudWatch に公開すると、CloudWatch ダッシュボードで運用状況を一元的に表示できます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズのメトリクスをモニタリングしてアクションを実行できます。さらに CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズのメトリクスにアクセスできるようになります。CloudWatch Events の詳細については、 「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 に 1 日 1 回公開されます。CloudWatch で S3 Storage Lens メトリクスをクエリする場合、クエリの期間は 1 日 (86400 秒) にする必要があります。毎日の S3 Storage Lens メトリクスが Amazon S3 コンソールの S3 Storage Lens ダッシュボードに表示された後、これらの同じメトリクスが CloudWatch に表示されるには数時間かかることがあります。初めて S3 Storage Lens メトリクスの CloudWatch 公開オプションを有効にすると、メトリクスが CloudWatch に公開されるまで最大で 24 時間かかることがあります。

現在、S3 ストレージレンズのメトリクスは CloudWatch ストリームを介して使用することはできません。

S3 ストレージレンズのダッシュボードを更新するとき、ダッシュボード名、またはホームリージョンを変更することはできません。また、デフォルトダッシュボードのスコープを変更することもできません。これは、アカウント全体のストレージにスコープされています。

S3 ストレージレンズのダッシュボードを更新して CloudWatch パブリッシングを有効にするには
  1. AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/ を開きます。

  2. ナビゲーションペインで、[S3 Storage Lens] (S3 ストレージレンズ)、[Dashboards] (ダッシュボード) の順にクリックします。

  3. 編集するダッシュボードを選択し、 [編集] をクリックします。

  4. メトリクスの選択[Advanced metrics and recommendations] (アドバンストメトリクスとレコメンデーション) を選択します。

    アドバンストメトリクスとレコメンデーションには追加料金が適用されます。高度なメトリクスとレコメンデーションには、データクエリの 15 か月間、プレフィックスレベルで集計された使用状況メトリクス、バケットごとに集計されたアクティビティメトリクス、CloudWatch 公開オプション、ストレージコストの最適化とデータ保護のベストプラクティスの適用に役立つコンテキストに基づいた推奨事項が含まれています。詳細については、「Amazon S3 の料金」を参照してください。

  5. [Select Advanced metrics and recommendations features] (高度なメトリクスとレコメンデーションを選択) から [CloudWatch publishing] (CloudWatch パブリッシング) を選択します。

    重要

    設定で使用状況メトリクスのプレフィクス集約を有効にすると、プレフィックスレベルのメトリックスは CloudWatch に公開されません。バケット、アカウント、組織レベルの S3 Storage Lens メトリクスのみが CloudWatch に公開されます。

  6. [Save changes] (変更の保存) をクリックします。

CloudWatch サポートを有効にする新しい S3 Storage Lens ダッシュボードを作成するには、次のようにします。
  1. AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/ を開きます。

  2. ナビゲーションペインで、[Storage Lens] (ストレージレンズ)、[Dashboards] (ダッシュボード) の順にクリックします。

  3. [ダッシュボードの作成] を選択します。

  4. [General] (全般) で、次の設定オプションを定義します。

    1. [Dashboard name] (ダッシュボード名) に、ダッシュボード名を入力します。

      ダッシュボード名は 65 文字未満で記述する必要があり、特殊文字またはスペースを含めることはできません。ダッシュボードの作成後にダッシュボード名を変更することはできません。

    2. [ホームリージョン] から、ダッシュボードに対応するものを選択します。

      このダッシュボードスコープに含まれるすべてのリージョンのメトリクスは、指定されたホームリージョンに集約され保存されます。CloudWatch を使用した S3 Storage Lens メトリクスはホームリージョンでも利用できます。ダッシュボードの作成後にホームリージョンを変更することはできません。

  5. (オプション) タグを追加するには、[タグを追加] を選択し、そのタグの キー を入力します。

    注記

    ダッシュボードの設定には、最大 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 pricing] (Amazon S3 の料金) を参照してください。。

  8. [Advanced metrics and recommendations features] (高度なメトリクスとレコメンデーションの機能) で、有効にするオプションを選択します。

    • Advanced metrics (高度なメトリクス)

    • [CloudWatch publishing] (CloudWatch パブリッシング)

      重要

      S3 Storage Lens 設定でプレフィックス集約を有効にすると、プレフィックスレベルのメトリクスは CloudWatch に公開されません。バケット、アカウント、組織レベルの S3 Storage Lens メトリクスのみが CloudWatch に公開されます。

    • プレフィックス集約

    注記

    高度なメトリクスとレコメンデーションの機能の詳細については、「メトリクスの選択」を参照してください。

  9. [Advanced metrics] (高度なメトリクス) を有効にした場合は、S3 ストレージレンズのダッシュボードに表示する [Advanced metrics categories] (高度なメトリクスのカテゴリ) を選択します。

    • アクティビティのメトリクス

    • Detailed status code metrics (詳細なステータスコードのメトリクス)

    • Advanced cost optimization metrics (高度なコスト最適化メトリクス)

    • Advanced data protection metrics (高度なデータ保護メトリクス)

    メトリクスのカテゴリの詳細については、「メトリクスのカテゴリ」を参照してください。メトリクスの一覧については、「Amazon S3 Storage Lens のメトリクスに関する用語集」を参照してください。

  10. (オプション) メトリクスのエクスポートを設定します。

    ウィザードの各ステップの設定方法については、「Amazon S3 Storage Lens ダッシュボードの作成」を参照してください。

  11. [ダッシュボードの作成] を選択します。

次の 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 データをモニタリングおよび分析することもできます。詳細については、次のトピックを参照してください。