[アップデート] S3 Storage Lens メトリクスを CloudWatch にパブリッシュできるようになりました

S3 Storage Lens メトリクスを CloudWatch メトリクスにパブリッシュ!

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンバンハ、千葉(幸)です。

Amazon S3 Storage Lens のメトリクスを CloudWatch にパブリッシュし、CloudWatch メトリクスとして利用できるようになりました。

これまでは S3 Storage Lens ダッシュボードの中でのみ利用可能だったメトリクスが CloudWatch メトリクスとして利用できるようになったため、CloudWatch ダッシュボードや CloudWatch アラームといった CloudWatch でお馴染みの機能が使用できるようになりました。

Amazon S3 Storage Lens とは

Storage Lens は S3 ストレージの利用状況とアクティビティを可視化する分析機能です。 Organizations を使用している場合は組織単位で可視化することも可能です。設定を有効化しておけば CSV または Apache Parquet 形式で S3 バケットに日次でエクスポートすることもできます。

機能の詳細は以下をご参照ください。

Storage Lens で使用できるメトリクスは無料のメトリクスと高度なメトリクスに分類されます。

無料のメトリクス(使用状況メトリクス)

  • ストレージの合計
  • オブジェクト数
  • 現行バージョンのバイト数
  • 現行バージョンのオブジェクト数
  • 旧バージョンのバイト数
  • 旧バージョンのオブジェクト数
  • 削除マーカーのオブジェクト数
  • 暗号化されたバイト数
  • 暗号化されたオブジェクト数
  • レプリケートされたバイト数
  • レプリケートされたオブジェクト数
  • オブジェクトロックのバイト数
  • オブジェクトロックのオブジェクト数
  • 未完了の MPU バイト数
  • 未完了の MPU オブジェクト数

これらのメトリクスを取得する Storage Lens ダッシュボードはデフォルトで作成されています。

高度なメトリクス(アクティビティメトリクス)

  • すべてのリクエスト
  • GET リクエスト
  • PUT リクエスト
  • HEAD リクエスト
  • POST リクエスト
  • DELETE リクエスト
  • LIST リクエスト
  • SELECT リクエスト
  • SELECT でスキャンされたバイト
  • SELECT で返されたバイト
  • ダウンロード済みバイト数
  • アップロード済みバイト数
  • 4xx エラー
  • 5xx エラー

高度なメトリクスは「モニタリングされる 100 万個のオブジェクトあたり 0.20USD/月」の料金がかかります。(東京リージョンの場合)

オブジェクト数はデフォルトの Storage Lens ダッシュボードから確認できるため、事前に規模感を確認しておくと良いでしょう。

default-account-dashboard_-_S3_Storage_Lens_dashboard

このくらいの規模感であれば月に 0.5 USD 弱で済みます。

Storage Lens メトリクスの CloudWatch へのパブリッシュ

Storage Lens ダッシュボードで高度なメトリクスの取得を有効化している場合、オプションで CloudWatch へのパブリッシュを有効化できます。

CloudWatch へのパブリッシュ自体には追加料金は発生しません。高度なメトリクスの取得にかかる S3 料金と API リクエストやアラームの利用にかかる CloudWatch 料金は通常通り発生します。

Storage Lens で CloudWatch パブリッシュを有効化してみた

今回は既存の Storage Lens ダッシュボードの設定を変更して CloudWatch パブリッシュを有効化してみます。

Storage Lens ダッシュボードの一覧から、ダッシュボードの詳細に遷移します。

S3_Storage_Lens_dashboard_advanced

「ダッシュボード設定を表示」を押下します。

adnanced_-_S3_Storage_Lens_dashboard

「編集」を押下します。

S3_Storage_Lens_dashboard_edit

ダッシュボードの設定項目はさまざまありますが、今回追加された「CloudWatch パブリッシュ」にチェックを入れて変更を保存します。

CloudWatch パブリッシュを選択するためには「高度なメトリクスとレコメンデーション」を選択する必要があります。

これで設定は完了です。即時にメトリクスに反映されるわけではないので、ここから一晩ほど寝かせましょう。

After your daily S3 Storage Lens metrics appear in your S3 Storage Lens dashboard in the Amazon S3 console, it can a few hours for these same metrics to appear in CloudWatch. When you enable the CloudWatch publishing option for S3 Storage Lens metrics for the first time, it can take up to 24 hours for your metrics to publish to CloudWatch.

(機械翻訳)

毎日のS3 Storage LensメトリクスがAmazon S3コンソールのS3 Storage Lensダッシュボードに表示された後、同じメトリクスがCloudWatchに表示されるまで数時間かかることがあります。S3 Storage LensのメトリクスのCloudWatch公開オプションを初めて有効にした場合、メトリクスがCloudWatchに公開されるまで最大24時間かかることがあります。

パブリッシュされた Storage Lens メトリクスを確認してみた

というわけで一晩ほど寝かせた後の結果がこちらです。CloudWatch 画面のメトリクス一覧を確認すると、S3 Storage Lens Metricsとして記録されています。

CloudWatch_Management_Console_storagelens

正式な名前空間はAWS/S3/Storage-Lensであり、AWS/S3とは異なる名前空間です。

% aws cloudwatch list-metrics --namespace AWS/
AWS/Backup           AWS/EC2              AWS/ElastiCache      AWS/Firehose         AWS/Logs             AWS/S3/Storage-Lens  AWS/SSM-RunCommand
AWS/EBS              AWS/EFS              AWS/Events           AWS/Lambda           AWS/S3               AWS/SQS              AWS/Usage

わたしの環境では「バケットごと」と「アカウントごと」で分けられていました。 Organizations 連携を有効にしている場合は「組織ごと」などが増えそうです。

CloudWatch_Management_Console_dimention

メトリクスを覗いてみると、さまざまなディメンションが付与されています。

CloudWatch_Management_Console_storagelens-7741573

メトリクスに設定されるディメンションには以下があります。

ディメンション 説明
configuration_id メトリックでレポートされたS3ストレージレンズ構成のダッシュボード名
metrics_version S3ストレージレンズメトリックのバージョン。固定値は1.0
organization_id メトリックスのAWS Organizations ID
aws_account_number メトリックに関連付けられたAWSアカウント
aws_region メトリックスのAWSリージョン
bucket_name メトリックでレポートされたS3バケットの名前
storage_class メトリックでレポートされたバケットのストレージクラス
record_type メトリックの粒度:ORGANIZATION, ACCOUNT, BUCKET

「バケットごと」「アカウントごと」などの切り口によって、使用されるディメンションは異なります。詳細は以下を参照してください。

ここで取得できるメトリクスを利用し、「アカウント全体の不完全なマルチパートアップロードバイトに対する CloudWatch アラームの設定」や「 CloudWatch ダッシュボードでストレージの増加傾向を可視化」といったことが行えます。ディメンションも細かく定義されていますので、お好みの形で活用してみてください。

まとめ

  • Storage Lens ダッシュボードで「高度なメトリクスとレコメンデーション」を有効化している場合、CloudWatch パブリッシュを有効化できる
  • CloudWatch パブリッシュ自体には追加料金は発生しない

終わりに

S3 Storage Lens メトリクスを CloudWatch にパブリッシュできるようになったアップデートを確認しました。

Storage Lens は低コストでストレージ使用量を分析できるサービスですが、これまでその情報を利用しようとすると Storage Lens ダッシュボードやエクスポートされた情報を使用する必要がありました。CloudWatch メトリクスとして扱えるようになったことで、他の AWS サービスのメトリクスと横串で扱えるようになります。

パブリッシュは無料の範囲では使用できませんが、よっぽど大規模でない限りは数ドルの範囲に収まるかと思いますので活用を検討してみてはいかがでしょうか。

以上、 チバユキ (@batchicchi) がお送りしました。