S3ストレージレンズを試してみた

# 背景・目的
S3の使用状況について分析する機会がありました。
AWSには、S3 Storage Lensという機能がありますので、こちらについて基本的な知識と簡単な動作確認を行います。

# まとめ
下記に特徴をまとめます。

|特徴|説明|
|:--|:--|
|S3ストレージレンズ|オブジェクトストレージおよびアクティビティを組織全体で可視化するために使用できるクラウドストレージ分析機能<BR><BR>メトリクスを分析して、ストレージコストを最適化し、データ保護に関するベストプラクティスを適用するために使用できるコンテキストに応じた推奨事項を提供|
|S3 Storage Lens メトリクス|概要の分析情報を生成できる<BR><BR>コスト最適化の機会を特定し、データ保護とアクセス管理のベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることが可能|
|インタラクティブダッシュボード|下記を生成して可視化が可能<BR>・組織<BR>・アカウント<BR>・AWS リージョン<BR>・バケット<BR>・オブジェクト、またはプレフィックス<BR>・Storage Lens グループレベル<BR><BR>インタラクティブなデフォルトダッシュボードは、毎日更新される<BR><BR>ダッシュボードは事前定義されている|
|ダッシュボードのスコープとメトリクスの選択|他のダッシュボードを作成し、AWS リージョン、S3 バケットまたはアカウント (AWS Organizations 用) でスコープを設定するには、S3 ストレージレンズダッシュボード設定を作成する|
|スコープの設定|ダッシュボードのスコープとメトリクスの選択が可能<BR><BR>他のダッシュボードを作成し、AWS リージョン、S3 バケットまたはアカウント (AWS Organizations 用) でスコープを設定するには、S3 ストレージレンズダッシュボード設定を作成する|
|2種類のプラン|・無料のメトリクス<BR>・追加料金でアップグレードできるアドバンストメトリクスとレコメンデーション|
|無料のメトリクスで提供している機能|・概要<BR>・コスト最適化<BR>・データ保護<BR>・アクセス管理<BR>・パフォーマンス<BR>・イベントメトリクス|
|アドバンストメトリクスとレコメンデーション(アップグレード)|・高度なコスト最適化<BR>・データ保護メトリクス|
|メトリクスのエクスポート|メトリクスをCSV、ParquetでS3バケットにエクスポートし、分析ツールでさらに分析可能|
|Amazon CloudWatch パブリッシング|S3 ストレージレンズの使用状況とアクティビティメトリクスを Amazon CloudWatch に公開し、CloudWatch ダッシュボードで運用状況を一元的に表示することが可能|
|ホームリージョン|特定のダッシュボード設定のすべての S3 ストレージレンズメトリクスが保存される AWS リージョンを指す<BR><BR>S3 ストレージレンズのダッシュボード設定を作成する際には、ホームリージョンを選択する必要がある<BR><BR>いったん選択したホームリージョンは変更できない<BR><BR>Storage Lens グループを作成する場合は、Storage Lens ダッシュボードと同じホームリージョンを選択することを推奨|
|メトリクスの保持期間|メトリスクスは15ヶ月間保持される<BR><BR>メトリクスの種類により異なり、期間は変更できない<BR>・無料は14日間<BR>・アドバンスメトリクスは15ヶ月|
|メトリクスのカテゴリ|・サマリーメトリクス<BR>・コスト最適化メトリクス<BR>・データ保護メトリクス<BR>・アクセス管理メトリクス<BR>・イベントメトリクス<BR>・パフォーマンスメトリクス<BR>・アクティビティメトリクス (アドバイスト)|
|レコメンド|下記の形式で構成される<BR>・提案<BR>・コールアウト<BR>　・外れ値のコールアウト<BR>　・顕著な変化についてのコールアウト<BR>・リマインダー|
|S3 ストレージレンズと AWS Organizations|S3 ストレージレンズを AWS Organizations と連携させることで、Amazon S3 ストレージ全体でのオブジェクトによるストレージとそのアクティビティを、単一的なビューで表示する事が可能|

# 概要
下記を基に整理します。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage_lens.html

> Amazon S3 ストレージレンズは、オブジェクトストレージおよびアクティビティを組織全体で可視化するために使用できるクラウドストレージ分析機能です。また、S3 Storage Lens は、メトリクスを分析して、ストレージコストを最適化し、データ保護に関するベストプラクティスを適用するために使用できるコンテキストに応じた推奨事項を提供します。

- S3 ストレージレンズとは
    - オブジェクトストレージおよびアクティビティを組織全体で可視化するために使用できるクラウドストレージ分析機能
    - メトリクスを分析して、ストレージコストを最適化し、データ保護に関するベストプラクティスを適用するために使用できるコンテキストに応じた推奨事項を提供


> S3 Storage Lens メトリクスを使用して、概要の分析情報を生成できます。例えば、組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどを把握することができます。S3 Storage Lens メトリクスを使用して、コスト最適化の機会を特定し、データ保護とアクセス管理のベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることができます。例えば、S3 ライフサイクルルールがないバケットを特定して、7 日以上経過した不完全なマルチパートアップロードを中止できます。また、S3 レプリケーションや S3 バージョニングの使用など、データ保護のベストプラクティスに従っていないバケットを特定することもできます。

- S3 Storage Lens メトリクス
    - 概要の分析情報を生成できる
        - 例）組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどを把握することが可能
    - コスト最適化の機会を特定し、データ保護とアクセス管理のベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることが可能
        - 例）
            - S3 ライフサイクルルールがないバケットを特定して、7 日以上経過した不完全なマルチパートアップロードを中止できる
            - S3 レプリケーションや S3 バージョニングの使用など、データ保護のベストプラクティスに従っていないバケットを特定することもできる

> S3 ストレージレンズはメトリクスを集約し、Amazon S3 コンソールの [Buckets] (バケット) ページの [Account snapshot] (アカウントスナップショット) セクションにこの情報を表示します。S3 Storage Lens は、インサイトと傾向を可視化したり、外れ値にフラグ付けしたり、ストレージコストの最適化やデータ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ったりするために使用できるインタラクティブダッシュボードも提供します。ダッシュボードには、組織、アカウント、AWS リージョン、バケット、オブジェクト、またはプレフィックス、または Storage Lens グループレベルでインサイトを生成して可視化できる、ドリルダウンオプションが用意されています。1 日 1 回のメトリクスのエクスポートを CSV 形式または Parquet 形式で S3 バケットに送信することもできます。

- インタラクティブダッシュボードを提供する
- ダッシュボードでは、下記を生成して可視化が可能
    - 組織
    - アカウント
    - AWS リージョン
    - バケット
    - オブジェクト、またはプレフィックス
    - Storage Lens グループレベル

## S3 ストレージレンズのメトリクスと機能
> S3 ストレージレンズでは、毎日更新されるインタラクティブなデフォルトダッシュボードが利用できます。S3 ストレージレンズではこのダッシュボードが事前定義されており、アカウント全体の要約されたインサイトとトレンドを視覚化し、S3 コンソールで毎日更新します。このダッシュボードのメトリクスは、[Buckets] (バケット) ページのアカウントスナップショットにも要約されます。詳細については、「デフォルトのダッシュボード」を参照してください。

- インタラクティブなデフォルトダッシュボードは、毎日更新される
- ダッシュボードは事前定義されている

> 他のダッシュボードを作成し、AWS リージョン、S3 バケットまたはアカウント (AWS Organizations 用) でスコープを設定するには、S3 ストレージレンズダッシュボード設定を作成します。AmazonS3 コンソール、AWS Command Line Interface、(AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して S3 Storage Lens ダッシュボード設定を作成および管理できます。S3 Storage Lens ダッシュボードを作成または編集するとき、ダッシュボードのスコープとメトリクスの選択を定義します。

- ダッシュボードのスコープとメトリクスの選択が可能
- 他のダッシュボードを作成し、AWS リージョン、S3 バケットまたはアカウント (AWS Organizations 用) でスコープを設定するには、S3 ストレージレンズダッシュボード設定を作成する


> S3 ストレージレンズでは、無料のメトリクスと、追加料金でアップグレードできるアドバンストメトリクスとレコメンデーションをご利用になれます。アドバンストメトリクスとレコメンデーションをご利用になれば、ストレージに関するインサイトが得られる追加のメトリクスや機能にアクセスできます。これらの機能には、高度なメトリクスカテゴリ、プレフィックス集約、コンテキストに応じた推奨事項、Amazon CloudWatch パブリッシングなどがあります。プレフィックス集約とコンテキストに応じた推奨事項は、Amazon S3 コンソールでのみ使用できます。S3 Storage Lens の料金の詳細については、Amazon S3 の料金を参照してください。

- 2種類ある
    - 無料のメトリクス
    - 追加料金でアップグレードできるアドバンストメトリクスとレコメンデーション
- アドバンストメトリクスとレコメンデーション
    - ストレージに関するインサイトが得られる追加のメトリクスや機能にアクセスできる
    - 下記が含まれる
        - 高度なメトリクスカテゴリ
        - プレフィックス集約
        - コンテキストに応じた推奨事項
        - Amazon CloudWatch パブリッシング
    - プレフィックス集約とコンテキストに応じた推奨事項は、Amazon S3 コンソールでのみ使用可能

### メトリクスのカテゴリ
> 無料層とアドバンスト層で、メトリクスはコストの最適化やデータ保護などの主要なユースケースに合わせてカテゴリに分類されます。無料のメトリクスには、概要、コスト最適化、データ保護、アクセス管理、パフォーマンス、イベントメトリクスが含まれます。アドバンストメトリクスとレコメンデーションにアップグレードすると、高度なコスト最適化とデータ保護メトリクスを有効にできます。これらの高度なメトリクスを使用すると、S3 ストレージのコストをさらに削減し、データ保護スタンスを向上させることができます。アクティビティメトリクスと詳細なステータスコードメトリクスを有効にして、S3 バケットにアクセスしているアプリケーションワークロードのパフォーマンスを向上させることもできます。無料のメトリクスと高度なメトリクスのカテゴリの詳細については、「メトリクスの選択」を参照してください。

- 無料のメトリクス
    - 概要
    - コスト最適化
    - データ保護
    - アクセス管理
    - パフォーマンス
    - イベントメトリクス
- アドバンストメトリクスとレコメンデーション(アップグレード)
    - 高度なコスト最適化
    - データ保護メトリクス
- 高度なメトリクスを使用すると、S3 ストレージのコストをさらに削減し、データ保護スタンスを向上させることができる

> 暗号化、S3 オブジェクトロック、または S3 バージョニングが有効になっているバケットの割合を分析するなど、S3 のベストプラクティスに基づいてストレージを評価できます。また、潜在的なコスト削減の機会を特定することもできます。例えば、S3 ライフサイクルルール数メトリクスを使用して、ライフサイクルの有効期限または移行ルールがないバケットを特定できます。また、バケットごとのリクエストアクティビティを分析して、コストのより低いストレージクラスにオブジェクトの移行が可能なバケットを見つけることもできます。詳細については、「Amazon S3 ストレージレンズメトリクスのユースケース」を参照してください。

- S3のベストプラクティスに基づきストレージを評価できる
    - 下記の割合
        - 暗号化
        - S3 オブジェクトロック
        - S3 バージョニングが有効になっているバケットの割合
- 潜在的なコスト削減の機会を特定することもできる
    - S3 ライフサイクルルール数メトリクスを使用して、ライフサイクルの有効期限または移行ルールがないバケットを特定する
    - バケットごとのリクエストアクティビティを分析して、コストのより低いストレージクラスにオブジェクトの移行が可能なバケットを見つけること

### メトリクスのエクスポート
> S3 コンソールのダッシュボードで表示するだけでなく、メトリクスを CSV または Parquet 形式で S3 バケットにエクスポートして、選択した分析ツールでさらに分析することができます。詳細については、「データエクスポートで Amazon S3 Storage Lens のメトリクスを確認する」を参照してください。

- メトリクスをCSV、ParquetでS3バケットにエクスポートし、分析ツールでさらに分析可能

### Amazon CloudWatch パブリッシング
> S3 ストレージレンズの使用状況とアクティビティメトリクスを Amazon CloudWatch に公開し、CloudWatch ダッシュボードで運用状況を一元的に表示することができます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズメトリクスをモニタリングして対処することができます。さらに CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズメトリクスにアクセスできるようになります。CloudWatch の公開オプションは、S3 ストレージレンズのアドバンストメトリクスとレコメンデーションにアップグレードされたダッシュボードで利用可能です。CloudWatch での S3 ストレージレンズメトリクスの詳細については、「CloudWatch で S3 Storage Lens のメトリクスをモニタリング」を参照してください。

- S3 ストレージレンズの使用状況とアクティビティメトリクスを Amazon CloudWatch に公開し、CloudWatch ダッシュボードで運用状況を一元的に表示することが可能
- アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズメトリクスをモニタリングして対処することが可能
- CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズメトリクスにアクセスできる
- CloudWatch の公開オプションは、S3 ストレージレンズのアドバンストメトリクスとレコメンデーションにアップグレードされたダッシュボードで利用可能

## Amazon S3 ストレージレンズを理解する
### S3 ストレージレンズの概念と用語
#### ダッシュボード設定
> S3 ストレージレンズでは、ユーザーに代わってメトリクスを集計するのに必要なプロパティを含むダッシュボード設定が必要となります。これらは、単一のダッシュボード、もしくはエクスポートのために使用されます。設定を作成するときは、ダッシュボード名とホームリージョンを選択します。これらはダッシュボードの作成後に変更できません。オプションでタグを追加し、CSV または Parquet 形式でメトリクスをエクスポートするように設定できます。

- ユーザーに代わってメトリクスを集計するのに必要なプロパティを含むダッシュボード設定が必要となる
- 単一のダッシュボード、もしくはエクスポートのために使用される
- 設定を作成するときは、ダッシュボード名とホームリージョンを選択する
- ダッシュボードの作成後に変更できない

> ダッシュボード設定では、ダッシュボードのスコープとメトリクスの選択も定義します。スコープには、組織アカウントのすべてのストレージ、またはリージョン、バケット、アカウントでフィルタリングされたセクションのストレージを含めることができます。メトリクスの選択を設定する際、無料のメトリクスまたは追加料金でアップグレードできるアドバンストメトリクスとレコメンデーションのいずれかを選択します。アドバンストメトリクスとレコメンデーションにより、その他のメトリクスや機能にアクセスできます。これらの機能には、高度なメトリクスカテゴリ、プレフィックスレベルでの集約、コンテキストに応じた推奨事項、Amazon CloudWatch パブリッシングなどがあります。S3 ストレージレンズの料金の詳細については、Amazon S3 の料金を参照してください。

- ダッシュボードのスコープとメトリクスの選択も定義する
- スコープには、下記を含めることが可能
    - 組織アカウントのすべてのストレージ
    - リージョン
    - バケット
    - アカウントでフィルタリングされたセクションのストレージ

#### デフォルトのダッシュボード
> コンソールの S3 ストレージレンズのデフォルトダッシュボードの名前は、default-account-dashboard です。S3 ではこのダッシュボードが事前定義されており、アカウント全体の要約されたインサイトとトレンドを視覚化し、S3 コンソールで毎日更新します。デフォルトのダッシュボードのスコープ設定を変更することはできませんが、選択するメトリクスを、無料メトリクスからアドバンストメトリクスとレコメンデーションにアップグレードすることはできます。オプションで、メトリクスのエクスポートを設定したり、ダッシュボードを無効にしたりもできます。ただし、デフォルトのダッシュボードを削除することはできません。

- デフォルトのダッシュボード
    - default-account-dashboard
    - 事前定義されている

#### ダッシュボード
> 追加の S3 ストレージレンズダッシュボードを作成し、AWS リージョン、S3 バケット、またはアカウント (AWS Organizations の場合) によってスコープを設定できます。S3 ストレージレンズダッシュボードを作成または編集するとき、ダッシュボードのスコープとメトリクスの選択を定義します。S3 ストレージレンズでは、無料のメトリクスと、追加料金でアップグレードできるアドバンストメトリクスとレコメンデーションをご利用になれます。アドバンストメトリクスとレコメンデーションをご利用になれば、ストレージに関するインサイトが得られる追加のメトリクスや機能にアクセスできます。これらには、高度なメトリクスカテゴリ、プレフィックスレベルでの集約、コンテキストに応じた推奨事項、Amazon CloudWatch パブリッシングなどがあります。S3 Storage Lens の料金の詳細については、「Amazon S3 の料金」を参照してください。

- 追加でS3 ストレージレンズダッシュボードを作成が可能

> また、ダッシュボードを無効化または削除することも可能です。ダッシュボードを無効にすると、そのダッシュボードは更新されなくなるので、日次で新しいメトリクスが生成されることもなくなります。14 日の有効期限の間は、履歴データを表示できます。そのダッシュボードでアドバンストメトリクスとレコメンデーションを有効にした場合、この期間は 15 か月です。有効期限内にダッシュボードを再度有効にすれば、履歴データにアクセスできます。

- 無効化、削除が可能
- ダッシュボードを無効にすると、そのダッシュボードは更新されなくなる
- 日次で新しいメトリクスが生成されることもない
- 14 日の有効期限の間は、履歴データを表示できる
- ダッシュボードでアドバンストメトリクスとレコメンデーションを有効にした場合、この期間は 15 か月となる

> ダッシュボードを削除すると、それまでの設定内容はすべて失われます。削除されたダッシュボードからは、それ以後の新しい日次のメトリクスは受信できなくなり、そのダッシュボードに関連付けられた履歴データにもアクセスできなくなります。削除したダッシュボードの履歴データにアクセスする場合は、同じホームリージョンで同じ名前を使用しながら、新たなダッシュボードを作成する必要があります。

- ダッシュボードを削除すると、設定内容はすべて失われる
- それ以後の新しい日次のメトリクスは受信できない
- そのダッシュボードに関連付けられた履歴データにもアクセスできなくなる

#### アカウントスナップショット
> S3 ストレージレンズの [Account snapshot] (アカウントスナップショット) は、デフォルトのダッシュボードからメトリクスを要約し、S3 コンソールの ([Buckets] (バケット) ページに、ストレージ合計、オブジェクト数、および平均オブジェクトサイズを表示します。このアカウントスナップショットでは、[Buckets] (バケット) ページから移動することなく、ストレージに関するインサイトにすばやくアクセスできます。アカウントスナップショットから、インタラクティブな S3 ストレージレンズダッシュボードにワンクリックでアクセスすることもできます。

- アカウントスナップショットは、デフォルトのダッシュボードからメトリクスを要約し、S3 コンソールページに表示される
- アカウントスナップショットから、インタラクティブな S3 ストレージレンズダッシュボードにワンクリックでアクセスできる

> ダッシュボードでは、インサイトと傾向を可視化したり、外れ値にフラグ付けしたりできます。また、ストレージコストの最適化や、データ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ることもできます。ダッシュボードには、組織、アカウント、バケット、オブジェクト、またはプレフィックスレベルでインサイトを生成できる、ドリルダウンオプションが用意されています。1 日 1 回のメトリクスのエクスポートを CSV 形式または Parquet 形式で S3 バケットに送信することもできます。

- ダッシュボードでは、インサイトと傾向を可視化したり、外れ値にフラグ付けできる
- ストレージコストの最適化や、データ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取る事が可能


> default-account-dashboard のスコープは、アカウントスナップショットにリンクされているため、変更できません。ただし、default-account-dashboard のメトリクス選択を、無料のメトリクスから有料のアドバンストメトリクスとレコメンデーションにアップグレードできます。アップグレード後、すべてのリクエスト、アップロードされたバイト数、およびダウンロードされたバイト数を S3 ストレージレンズのアカウントスナップショットで表示できます。

- default-account-dashboard のスコープは、アカウントスナップショットにリンクされているため、変更できない
- default-account-dashboard のメトリクス選択を、無料のメトリクスから有料のアドバンストメトリクスとレコメンデーションにアップグレード可能
- アップグレード後、すべてのリクエスト、アップロードされたバイト数、およびダウンロードされたバイト数を S3 ストレージレンズのアカウントスナップショットで表示できる


#### メトリクスのエクスポート
> S3 ストレージレンズでは、1 つのファイルとしてメトリクスのエクスポートを作成します。このファイルには、S3 ストレージレンズの設定で指定された、すべてのメトリクスが含まれています。この情報は、CSV または Parquet 形式で毎日生成され、S3 バケットに送信されます。メトリクスをエクスポートすれば、お好みのメトリクスツールでさらに分析することができます。メトリクスのエクスポート用の S3 バケットは、S3 ストレージレンズ設定と同じリージョンに存在する必要があります。ダッシュボードの設定を編集することで、S3 コンソールから S3 ストレージレンズメトリクスのエクスポートを生成できます。AWS CLI および AWS SDK を使用してメトリクスのエクスポートを設定することもできます。

- S3 ストレージレンズでは、1 つのファイルとしてメトリクスのエクスポートを作成する
- CSV または Parquet 形式で毎日生成され、S3に送信される
- 好みのツールで分析できる

#### ホームリージョン
> ホームリージョンとは、特定のダッシュボード設定のすべての S3 ストレージレンズメトリクスが保存される AWS リージョン です。S3 ストレージレンズのダッシュボード設定を作成する際には、ホームリージョンを選択する必要があります。いったん選択したホームリージョンは変更できません。また、Storage Lens グループを作成する場合は、Storage Lens ダッシュボードと同じホームリージョンを選択することをお勧めします。

- ホームリージョンとは、特定のダッシュボード設定のすべての S3 ストレージレンズメトリクスが保存される AWS リージョンを指す
- S3 ストレージレンズのダッシュボード設定を作成する際には、ホームリージョンを選択する必要がある
- いったん選択したホームリージョンは変更できない
- Storage Lens グループを作成する場合は、Storage Lens ダッシュボードと同じホームリージョンを選択することを推奨

#### 保持期間
> S3 Storage Lens のメトリクスは保持されるため、過去の傾向を確認したり、ストレージの使用状況やアクティビティの変動を時間の経過を追って比較したりするために使用できます。Amazon S3 ストレージレンズのメトリクスをクエリに使用することで、過去の傾向を確認し、ストレージの使用量とアクティビティの違いを時系列で比較することができます。
> すべての S3 ストレージレンズメトリクスは 15 か月間保持されます。ただし、メトリクスは特定の期間のクエリでのみ使用できます。これは、選択したメトリクスの種類によって異なります。この期間は変更できません。無料のメトリクスは 14 日間、アドバンストメトリクスは 15 か月間のクエリで利用可能です。

- メトリスクスは15ヶ月間保持される
- メトリクスは特定の期間でのみ使用できる
    - メトリクスの種類により異なり、期間は変更できない
        - 無料は14日間
        - アドバンスメトリクスは15ヶ月

#### メトリクスのカテゴリ
> 無料層とアドバンスト層で、S3 ストレージレンズメトリクスはコストの最適化やデータ保護などの主要なユースケースに合わせてカテゴリに分類されます。無料のメトリクスには、概要、コスト最適化、データ保護、アクセス管理、パフォーマンス、イベントメトリクスが含まれます。高度なメトリクスとレコメンデーションにアップグレードすると、追加のコスト最適化とデータ保護メトリクスを有効にして、S3 ストレージのコストをさらに削減し、データ保護を確実にできます。また、アクティビティメトリクスと詳細なステータスコードメトリクスを有効にして、アプリケーションワークロードのパフォーマンスを向上させために使用することもできます。

詳細は、下記を参照のこと。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html

##### サマリーメトリクス
> サマリーメトリクスは、ストレージの合計バイト数やオブジェクト数など、S3 ストレージに関する一般的な情報を提供します。

- S3 ストレージに関する一般的な情報
    - ストレージ合計バイト数
    - オブジェクト数など

##### コスト最適化メトリクス
> コスト最適化メトリクスは、ストレージコストの管理と最適化に役立つインサイトを提供します。例えば、7 日以上経過した不完全なマルチパートアップロードを特定できます。

- ストレージコストの管理と最適化に役立つインサイトを提供
- 例えば、7 日以上経過した不完全なマルチパートアップロードを特定できる

> アドバンストメトリクスとレコメンデーションにより、高度なコスト最適化メトリクスを有効にできます。これらのメトリクスには、バケットごとの有効期限と移行 S3 ライフサイクルルール数を取得するために使用できる S3 ライフサイクルルールカウントメトリクスが含まれています。

- アドバンストメトリクスとレコメンデーション
    - バケットごとの有効期限と移行 S3 ライフサイクルルール数
    - S3 ライフサイクルルールカウントメトリクス

##### データ保護メトリクス
> データ保護メトリクスは、暗号化や S3 バージョニングなどのデータ保護機能に関するインサイトを提供します。これらのメトリクスを使用して、データ保護のベストプラクティスに従っていないバケットを特定できます。例えば、デフォルトの暗号化に AWS Key Management Service キー (SSE-KMS) を使用していないバケットや、S3 バージョニングを使用していないバケットを特定できます。

- 暗号化や S3 バージョニングなどのデータ保護機能に関するインサイトを提供
- データ保護のベストプラクティスに従っていないバケットを特定できる
- 例
    - デフォルトの暗号化に AWS Key Management Service キー (SSE-KMS) を使用していないバケット
    - S3 バージョニングを使用していないバケットを特定

> アドバンストメトリクスとレコメンデーションにより、高度なデータ保護メトリクスを有効にできます。これらのメトリクスには、バケットごとのレプリケーションルール数メトリクスが含まれます。

- アドバンストメトリクスとレコメンデーションにより、高度なデータ保護メトリクスを有効にできる
    - バケットごとのレプリケーションルール数メトリクスが含まれる

##### アクセス管理メトリクス
> アクセス管理メトリクスは、S3 オブジェクト所有権に関するインサイトを提供します。これらのメトリクスを使用して、バケットが使用しているオブジェクト所有権設定を確認できます。

- S3 オブジェクト所有権に関するインサイトを提供
- トリクスを使用して、バケットが使用しているオブジェクト所有権設定を確認できる

##### イベントメトリクス
> イベントメトリクスは、S3 イベント通知に関するインサイトを提供します。イベントメトリクスでは、どのバケットに S3 イベント通知が設定されているかを確認できます。

- S3 イベント通知に関するインサイトを提供する
- どのバケットに S3 イベント通知が設定されているかを確認できる

##### パフォーマンスメトリクス
> パフォーマンスメトリクスは、S3 Transfer Acceleration のインサイトを提供します。パフォーマンスメトリクスでは、どのバケットで Transfer Acceleration が有効になっているかを確認できます。

- S3 Transfer Acceleration のインサイトを提供
- どのバケットで Transfer Acceleration が有効になっているかを確認できる

##### アクティビティメトリクス (アドバイスト)
> ダッシュボードを高度なメトリクスとレコメンデーションにアップグレードすると、アクティビティメトリクスを有効にできます。アクティビティメトリクスは、ストレージがどのようにリクエストされたか (例えば、ALL リクエスト、GET リクエスト、PUT リクエストなど)、アップロードまたはダウンロードされたバイト数、エラーなどに関する詳細を提供します。

- ダッシュボードを高度なメトリクスとレコメンデーションにアップグレードが必要
- アクティビティメトリクスを有効できる
    - ストレージがどのようにリクエストされたか (例えば、ALL リクエスト、GET リクエスト、PUT リクエストなど)
    - アップロードされたバイト数
    - ダウンロードされたバイト数
    - エラーなどに関する詳細

> プレフィックスレベルのアクティビティメトリクスを使用すると、使用頻度の低いプレフィックスを特定できるため、S3 ライフサイクルを使用してより最適なストレージクラスに移行できます。

- 使用頻度の低いプレフィックスを特定できるため、S3 ライフサイクルを使用してより最適なストレージクラスに移行できる

##### 詳細なステータスコードメトリクス (アドバンスト)
> ダッシュボードを高度なメトリクスとレコメンデーションにアップグレードすると、詳細なステータスコードメトリクスを有効にできます。詳細なステータスコードメトリクスにより、403 Forbidden や 503 Service Unavailable などの HTTP ステータスコードに関するインサイトが得られ、アクセスやパフォーマンスの問題のトラブルシューティングに使用できます。例えば、403 Forbidden エラー数メトリクスを見ると、適切なアクセス権限が適用されていない状態でバケットにアクセスしているワークロードを特定できます。

- ダッシュボードを高度なメトリクスとレコメンデーションにアップグレードが必要
- 詳細なステータスコードメトリクスを有効にできる
- 下記のHTTP ステータスコードに関するインサイト
    - 403 Forbidden
    - 503 Service Unavailable など
- アクセスやパフォーマンスの問題のトラブルシューティングに使用できる

> プレフィックスレベルの詳細なステータスコードメトリクスを使用すると、プレフィックスごとの HTTP ステータスコードの発生に関する理解を深めることができます。例えば、503 エラーカウントメトリクスを使用すると、データインジェスト中にスロットリングリクエストを受信したプレフィックスを特定できます。

- プレフィックスごとの HTTP ステータスコードの発生に関する理解を深める事が可能

#### レコメンデーション
> S3 ストレージレンズでは、ストレージの最適化に役立つ自動化された推奨事項が提供されます。それぞれの推奨事項は、関連のあるメトリクスとともに、文脈に応じた形で S3 ストレージレンズダッシュボード上に表示されます。履歴データは、推奨事項の対象になりません。推奨事項は、最近に発生した事象に関連しています。推奨事項は、関連性が存在する場合にのみ表示されます。

- ストレージの最適化に役立つ自動化された推奨事項が提供される
- 履歴データは、推奨事項の対象にならない。最近発生した事象に関連している
- 関連性が存在する場合にのみ表示される

> S3 ストレージレンズの推奨事項は、次のような形式で構成されます。
> - 提案
> 提案は、ストレージとアクティビティでのトレンドに関する注意を促します。この場合、ストレージコストの最適化や、データ保護のベストプラクティスを実施できる可能性があります。Amazon S3 ユーザーガイドで、この提案に関するトピックを参照できます。同時に、S3 Storage Lens ダッシュボードから特定のリージョン、バケット、またはプレフィックスにドリルダウンすることができます。

> - コールアウト
コールアウトは、ストレージおよびアクティビティに関し、一定期間に発生して関心を向けるべき異常を通知するための推奨事項です。これらの結果には、さらなる注意や監視が必要となる場合があります。
>   - 外れ値のコールアウト
S3 ストレージレンズでは、最近の 30 日間の傾向に基づいて判断した、外れ値のメトリクスに関するコールアウトが利用できます。外れ値は、Z-score とも呼ばれる標準スコアを使用して算出されています。このスコアでは、当日のメトリクスが、同じメトリクスの直近 30 日間の平均から減算されます。次に、当日のメトリクスが、同じメトリクスの直近 30 日間の標準偏差により除算されます。結果として得られるスコアは、通常 -3～+3 の間の値となります。この数値は、当該日のメトリクスの、平均値からの標準偏差を表しています。
S3 ストレージレンズでは、スコアが 2 から -2 の範囲を上下に超えるメトリクスは外れ値と見なされます。理由は、この値が正規分布データの 95% よりも高い、あるいは低くなるためです。
>   - 顕著な変化についてのコールアウト
顕著な変化についてのコールアウトは、変化する頻度が低いことが想定されているメトリクスに対し適用されます。このため、この値の計算では、外れ値の計算よりも高い感度が設定されます。この感度には通常、前日、前週、または前月に比べて +/-20% の範囲が指定されます。
ストレージの使用状況とアクティビティに関するコールアウトへの対応 – 顕著な変化についてのコールアウトを受け取った場合でも、必ずしも問題が存在することにはなりません。コールアウトは、ストレージで予定された変更の結果である可能性もあります。たとえば、多数の新しいオブジェクトの追加や多数のオブジェクトの削除を最近行っていたり、それと同様の計画的な変更を行ったりした場合など、このコールアウトの原因となり得ます。
ダッシュボード上に、顕著な変化についてのコールアウトが表示される場合は、それを記録した上で、その原因が、最近の状況によって説明できるかどうかを確認します。原因が見つからない場合は、S3 ストレージレンズダッシュボードを使用して詳細をドリルダウンしながら、変動要因となっている特定のリージョン、バケット、またはプレフィックスを調査します。

> - リマインダー
リマインダーにより、Amazon S3 の動作についてのインサイトが提供されます。リマインダーは、ストレージコストの削減や、データ保護のベストプラクティスの適用のための S3 の機能の使用方法について、詳しく知るために利用できます。

- レコメンドは下記の形式で構成される
    - 提案
    - コールアウト
        - 外れ値のコールアウト
        - 顕著な変化についてのコールアウト
    - リマインダー
##### 提案
- ストレージとアクティビティでのトレンドに関する注意を促す
- ストレージコストの最適化や、データ保護のベストプラクティスを実施できる可能性がある

##### コールアウト
- ストレージおよびアクティビティに関し、一定期間に発生して関心を向けるべき異常を通知するための推奨事項
- 外れ値のコールアウト
    - 最近の 30 日間の傾向に基づいて判断した、外れ値のメトリクスに関するコールアウトが利用できる
    - 外れ値は、Z-score とも呼ばれる標準スコアを使用して算出されている
    - 当日のメトリクスが、同じメトリクスの直近 30 日間の平均から減算される
    - 次に、当日のメトリクスが、同じメトリクスの直近 30 日間の標準偏差により除算される
    - 結果として得られるスコアは、通常 -3～+3 の間の値となる
    - この数値は、当該日のメトリクスの、平均値からの標準偏差を表している
- 顕著な変化についてのコールアウト
    - 変化する頻度が低いことが想定されているメトリクスに対し適用される
    - 外れ値の計算よりも高い感度が設定される
    - 通常、前日、前週、または前月に比べて +/-20% の範囲が指定される
    - ストレージの使用状況とアクティビティに関するコールアウトへの対応
        - 必ずしも問題が存在することにはならない
        - ストレージで予定された変更の結果である可能性もある
            - 多数の新しいオブジェクトの追加や多数のオブジェクトの削除を最近行っている
            - それと同様の計画的な変更を行ったりした場合など
    - 最近の状況によって説明できるかどうかを確認する
        - 原因が見つからない場合は、S3 ストレージレンズダッシュボードを使用して詳細をドリルダウンしながら、変動要因となっている特定のリージョン、バケット、またはプレフィックスを調査する

##### リマインダー
> リマインダーにより、Amazon S3 の動作についてのインサイトが提供されます。リマインダーは、ストレージコストの削減や、データ保護のベストプラクティスの適用のための S3 の機能の使用方法について、詳しく知るために利用できます。

- S3 の動作についてのインサイトが提供される
- 下記を詳しく知るために利用できる
    - ストレージコストの削減
    - データ保護のベストプラクティスの適用のための S3 の機能の使用方法

#### S3 ストレージレンズと AWS Organizations
> AWS Organizations は、1 つの組織階層に属する、すべての AWS アカウント を集約するための AWS サービス です。Amazon S3 ストレージレンズを AWS Organizations と連携させることで、Amazon S3 ストレージ全体でのオブジェクトによるストレージとそのアクティビティを、単一的なビューで表示することができます。

- S3 ストレージレンズを AWS Organizations と連携させることで、Amazon S3 ストレージ全体でのオブジェクトによるストレージとそのアクティビティを、単一的なビューで表示する事が可能

## 料金
下記のページを下に整理します。

https://aws.amazon.com/jp/s3/pricing/

Management & InsightsにあるStorage insightsを参考にします。

:::note info
2024/9/16現在の、東京リージョンの価格を載せています。
最新情報や、詳細は、[こちらのページ](https://aws.amazon.com/jp/s3/pricing/)をご確認ください。
:::

| 項目|単位|単価|
|:--|:--|:--|
|無料のメトリクス|-|0.00 USD|
|S3 Storage Lens の高度なメトリクスとレコメンデーション|-|
|最大 25 B までのオブジェクトをモニタリング|モニタリングされる 100 万個のオブジェクトあたり|0.20 USD/月|
|25 B 以上 100 B 以下のオブジェクトをモニタリング|同上|0.16 USD/月|
|100 B 以上のオブジェクトをモニタリング|同上|0.12 USD/月|


# 実践
## ストレージレンズの設定
### ダッシュボード
CloudFormation（以降、CFnという）を利用します。下記を基に試します。

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html

1. 下記のCfnテンプレートを作成します
    ```yaml
    AWSTemplateFormatVersion: 2010-09-09
    Description: StorageLens Advanced Configuration Example
    Resources:
      StorageLensConfigurationExample:
        Type: AWS::S3::StorageLens
        Properties:
          StorageLensConfiguration:
            Id: "StorageLensAdvancedConfiguration"
            AccountLevel:
              ActivityMetrics:
                IsEnabled: true
              AdvancedCostOptimizationMetrics:
                IsEnabled: true
              AdvancedDataProtectionMetrics:
                IsEnabled: true
              DetailedStatusCodesMetrics:
                IsEnabled: true
              BucketLevel:
                ActivityMetrics:
                  IsEnabled: true
                AdvancedCostOptimizationMetrics:
                  IsEnabled: true
                AdvancedDataProtectionMetrics:
                  IsEnabled: true
                DetailedStatusCodesMetrics:
                  IsEnabled: true
                PrefixLevel:
                  StorageMetrics:
                    IsEnabled: true
                    SelectionCriteria:
                      MaxDepth: 5
                      MinStorageBytesPercentage: 1.23
                      Delimiter: "/"
            IsEnabled: true
    ```
1. AWSにサインインし、CloudFormationに移動します
1. 「スタックの作成」 ＞ 「新しいリソースを使用（標準）」をクリックします
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/3b0dd884-b397-95c3-7ddc-6044fc68b082.png)

1. 下記を選択し④「次へ」をクリックします
    - ①：既存のテンプレートを選択
    - ②：テンプレートファイルのアップロード
    - ③：作成したCFnテンプレートを指定
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/fb4eace0-6cac-ffc2-ba9b-be63e8a72e6e.png)

1. スタック名を指定し、「次へ」をクリックします
1. そのまま、「次へ」をクリックします
1. 確認画面で「送信」をクリックします
1. できました
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/3775535e-9314-2f41-8485-c35529bcf024.png)

## S3の確認（実行直後）
1. S3に移動します
1. ナビゲーションペインで「Storage Lens」> 「ダッシュボード」をクリックします
1. できています。(id に指定した名前が、ダッシュボード名になっています。)
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/fbb8f8de-a9f0-29ba-efec-845b45c41c27.png)
1. ダッシュボード名をクリックします
1. まだ利用できません。48H後に表示されるとのこと
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/cd6f74f4-85ee-7238-0fb3-e9912fa2aa2f.png)

## S3の確認（24時間後）
:::note info
マニュアル上は、48H後と記載がありましたが、今回は24H後に見えました。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/84d9fab8-0c4f-d142-fbc5-a1dd64154e8b.png)

### 概要タブ
1. ①概要タブをクリックします
    - ②：下記の情報がわかります
        - ストレージ合計
        - オブジェクト数
        - オブジェクトサイズの平均
        - アクティブなバケット
        - アカウント数
        - リクエスト数
    - ③:バケット数
    - ④:トレンドと推奨事項：※ 作成後間もないので表示されていない可能性がある
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/b3c2e006-2379-bc7f-07af-d1f816482a51.png)

1. 傾向とディストリビューションを確認します。作成直後のため表示されていません
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/0130bb99-1772-82fb-ddbc-526979b0c755.png)

1. ストレージクラスディストリビューションを確認します。ほとんど東京とスタンダードです。一部別リージョンや、Glacierなどもありました
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/20bff932-8581-26f3-0a3e-574cf838bfa2.png)

1. 上位Nの概要を確認します。プレフィックスごとのサイズの大きさもわかります。いいですね
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/22ab0f4b-7876-6a05-bf1e-874493c3ccf3.png)

### アカウントタブ
:::note info
私の場合は、一つのアカウントしか対象としてないので、見るべき情報はありませんでした。Organizationを組み合わせると意味があると思います。
:::

### リージョンタブ
1. AWSリージョンタブをクリックします。作成直後なのでトレンドは見えませんでした
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/b52d5739-2957-b5c1-ed43-ecf6da9655fa.png)

1. リージョンごとの情報と、バブル分析ができます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/64f5992b-0125-7341-6a83-04ac1d2dd625.png)

1. 各リージョンの統計値が確認できます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/9d1cc2e1-4992-ea70-b68c-646c5274daf1.png)

### ストレージクラスタタブ
1. ストレージクラスタブをクリックします
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/302039c6-77cc-6464-f73f-02b47a645d33.png)

1. ストレージクラスごとの情報と、バブル分析ができます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/dc404e03-67eb-1a8a-ea8f-f969c8312297.png)

1. ストレージクラスの統計値が確認できます。ここで、メトリクスを追加できるように気づきました。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/8126d223-e227-00ba-749b-7064d3c7a5b3.png)


### バケットタブ
1. バケットタブをクリックします
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/db7ec5c1-5153-0b2d-312b-b978c8c45e1a.png)

1. バケットごとの比較と、バブル分析ができます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/81be47a5-3c98-93bd-5088-0a55655724f2.png)

1. バケットの統計値が確認できます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/a97cf6f3-3537-5881-12ce-ca471569fa09.png)

### プレフィックスタブ
1. プレフィックスタブをクリックします
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/84a41aac-c7e8-3c46-64e1-2b052972eb2c.png)


1. プレフィックスごとの情報と、バブル分析ができます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/8d03e64c-6111-26c0-fdb0-a4aec4897c90.png)

1. プレフィックスの統計値が確認できます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/ccff5873-ff91-fbaa-214b-7d2439422e0b.png)

### ストレージレンズグループタブ
:::note info
ストレージレンズグループを設定していないので確認できません。
後ほど、別途設定し確認したいと思います。
:::

1. ストレージレンズグループタブをクリックします。設定していないので見えません。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/a6c197a7-8c14-63d8-e69e-ffcbf0fa0dcf.png)

# 考察
今回、S3ストレージレンズの特徴の整理と、整理と確認をしました。
多くのデータや、オブジェクト数を取り扱う場合、有用と感じました。

今後は、ストレージレンズグループの設定や、中長期トレンドを確認してみたいと思います。


# 参考
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage_lens.html

https://aws.amazon.com/jp/s3/pricing/

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html