Amazon S3 ストレージレンズダッシュボードを作成する - Amazon Simple Storage Service

Amazon S3 ストレージレンズダッシュボードを作成する

AWS Organizations の組織、またはアカウント内の特定の AWS リージョンやバケットにスコープを設定できる、追加の S3 ストレージレンズカスタムダッシュボードを作成できます。

注記

ダッシュボード構成への更新が正確に表示または視覚化されるまでに最大 48 時間かかる場合があります。

Amazon S3 コンソールで Amazon S3 Storage Lens ダッシュボードを作成するには、次の手順に従います。

ステップ 1: ダッシュボードのスコープを定義する
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョンの名前をクリックします。次に、切り替え先のリージョンを選択します。

  3. ナビゲーションペインの、[S3 ストレージレンズ] で、[ダッシュボード] を選択します。

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

  5. ダッシュボードページの [全般] セクションで、次の操作を行います。

    1. ダッシュボードの [ホームリージョン] を表示します。ホームリージョンとは、この Storage Lens ダッシュボード設定とメトリクスが保存される AWS リージョン です。

    2. ダッシュボード名を入力します。

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

      注記

      ダッシュボードが作成された後は、このダッシュボード名を変更することはできません。

    3. 必要に応じて、ダッシュボードにタグを追加することもできます。タグは、ダッシュボードのアクセス許可を管理し、S3 Storage Lens のコストを追跡するために使用できます。

      詳細については、IAM ユーザーガイドリソースタグを使用したアクセスの制御、および AWS Billing ユーザーガイドAWS 生成コスト配分タグを参照してください。

      注記

      ダッシュボードの設定には、最大 50 個のタグを追加できます。

  6. [ダッシュボードスコープ] セクションで、次の操作を行います。

    1. S3 Storage Lens でダッシュボードに含める、または除外するリージョンとバケットを選択します。

    2. S3 Storage Lens で含める、または除外するバケットを、選択したリージョンの中で選択します。バケットを含めるか除外するかの設定は可能ですが、両方を同時に設定することはできません。このオプションは、組織レベルのダッシュボードを作成するときには使用できません。

    注記
    • リージョンとバケットを、含めるか除外するかの選択が可能です。組織内のメンバーアカウント間で組織レベルのダッシュボードを作成する場合には、このオプションはリージョンのみに対し使用できます。

    • 含めるか除外するバケットは最大 50 個まで選択できます。

ステップ 2: メトリクスの選択を設定する
  1. [メトリクスの選択] セクションで、このダッシュボードで集約するメトリクスのタイプを選択します。

    • バケットレベルで集計され、14 日間のクエリに使用できる無料のメトリクスを含めるには、[Free metrics] (無料のメトリクス) を選択します。

    • 高度なメトリクスやその他の詳細オプションを有効にするには、[Advanced metrics and recommendations] (高度なメトリクスとレコメンデーション) を選択します。これらのオプションには、高度なプレフィックス集約、Amazon CloudWatch パブリッシング、コンテキストに応じた推奨事項が含まれます。データは 15 か月間クエリで使用できます。高度な高度なメトリクスとレコメンデーションには追加料金がかかります。詳細については、「Amazon S3 の料金」を参照してください。

      無料のメトリクスと高度なメトリクスの詳細については、「メトリクスの選択」を参照してください。

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

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

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

    • プレフィックス集約

    重要

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

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

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

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

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

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

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

  4. [プレフィックス集約] を有効にする場合は、次の設定を行います。

    1. このダッシュボードのプレフィックスしきい値の最小サイズを選択します。

      例えば、プレフィックスのしきい値を 5% とした場合は、バケットの合計ストレージサイズが 5% 以上を占めるプレフィックスが集約されることを示します。

    2. プレフィックスの深度を選択します。

      この設定は、プレフィックスが評価される階層レベルの最大数を示します。プレフィックスの深度は、10 未満で指定する必要があります。

    3. プレフィックスの区切り文字を入力します。

      この値は、各プレフィックスのレベルを識別するために使用されます。Amazon S3 でのデフォルト値は、/ 文字ですが、実際のストレージ構造では他の区切り文字を使用することも可能です。

(オプション) ステップ 3: ダッシュボードでメトリクスをエクスポートする
  1. [Metrics export] (メトリクスのエクスポート) セクションで、選択した保存先バケットに毎日出力されるメトリクスのエクスポートを作成するには、[Enable] (有効化) をクリックします。

    メトリクスのエクスポートは、CSV または Apache Parquet 形式で作成されます。メトリクスのエクスポートには、S3 Storage Lens ダッシュボードのデータと同じスコープが適用され、レコメンデーション事項は付加されません。

  2. メトリクスのエクスポートを有効にした場合は、日次メトリクスのエクスポートの出力形式として、[CSV] または [Apache Parquet] を選択します。

    Parquet は、Hadoop 用のオープンソースなファイル形式で、ネストされたデータを平坦な列指向形式で格納します。

  3. メトリクスのエクスポート先の S3 バケットを選択します。

    バケットは、S3 Storage Lens ダッシュボードを使用している現在のアカウント内で選択できます。また、エクスポート先バケットへの許可と、そのバケットの所有者アカウント ID がある場合は、別の AWS アカウント を選択することも可能です。

  4. 送信先 S3 バケット (形式: s3://bucket-name/prefix) を選択します。

    バケットのアドレスは、S3 ストレージレンズダッシュボードのホームリージョンにある必要があります。S3 コンソールには、Amazon S3 によって保存先バケットのポリシーに追加される [Destination bucket permission] (エクスポート先バケットのアクセス許可) が表示されます。Amazon S3 は、エクスポート先バケットのバケットポリシーを更新し、S3 がそのバケットにデータを配置できるようにします。

  5. (オプション) メトリクスのエクスポートでサーバー側の暗号化を有効にするには、[Specify an encryption key] (暗号化キーの指定) を選択します。その後、[暗号化タイプ] として [Amazon S3 マネージドキー (SSE-S3)] または [AWS Key Management Service キー (SSE-KMS)] を選択します。

    キーのタイプは、Amazon S3 が管理するキー (SSE-S3) と AWS Key Management Service (AWS KMS) キー (SSE-KMS) のいずれかから選択できます。

  6. (オプション) AWS KMS キーを指定するには、KMS マスターキーを選択するか、キーとなる Amazon リソースネーム (ARN) を入力する必要があります。

    カスタマーマネージドキーを選択した場合、Amazon S3 ストレージレンズに暗号化する許可を AWS KMS キーポリシーで付与する必要があります。詳細については、「AWS KMS key を使用してメトリクスのエクスポートを暗号化する」を参照してください。

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

次のコマンド例では、タグを使用して Amazon S3 ストレージレンズ設定を作成します。これらの例を実行するには、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 ストレージレンズ設定を作成します。これらの例を実行するには、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 ストレージレンズ 設定を作成および更新する

以下の例では、SDK for Java により、Amazon S3 ストレージレンズ設定を作成して更新します。

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 = "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 = 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(); } } }

ストレージをさらに可視化するには、1 つ以上の S3 Storage Lens グループを作成してダッシュボードに関連付けることができます。S3 Storage Lens グループは、プレフィックス、サフィックス、オブジェクトタグ、オブジェクトサイズ、オブジェクト経過時間、またはこれらのフィルターの組み合わせに基づいて、オブジェクト用にカスタム定義されたフィルターです。

S3 Storage Lens グループを使用すると、データレイクなどの大規模な共有バケットをきめ細かく可視化し、情報に基づいたビジネス上の意思決定を行うことができます。例えば、1 つのバケット内または複数のバケットにまたがる個々のプロジェクトやコストセンターの特定のオブジェクトグループにストレージ使用量を分類することで、ストレージ割り当てを効率化し、コストレポートを最適化できます。

S3 Storage Lens グループを使用するには、高度なメトリクスとレコメンデーションを使用するようにダッシュボードをアップグレードする必要があります。S3 Storage Lens グループの詳細については、「S3 ストレージレンズグループを使用したメトリクスのフィルタリングと集計」を参照してください。