はじめに

これまで、S3は何度か使用する機会があったのですが、
S3のStorage Lensについては使ったことがなかったため、基本的な使い方を調べ、試してみました。
Amazon S3 Storage Lensを知らない or 知ってるけど使ったことがない、という方向けの内容になります。

Storage Lensの概要

  • S3の使用状況と、アクティビティを可視化してくれる機能。
  • 組織全体でどれだけのストレージがあるか、急速にサイズが増加しているバケットはどれかなどが分かるので、コスト削減に繋げることができる。
  • 活用例としては以下:
    • 不完全なマルチパートアップロードが放置されていないかを確認できる
    • データ保護のベストプラクティスに従っていないバケットを特定できる

※詳細はこちらを参照。

デフォルトダッシュボード

Amazon S3 Storage Lensでは、デフォルトで用意されているダッシュボードがあります。

デフォルトダッシュボードの確認方法は以下の通りです。

  1. Amazon S3のコンソールの左メニューから、Storage Lens の 「ダッシュボード」を選択し、
    一覧から「default-account-dashboard」をクリックして開きます。
  2. 以下のようなダッシュボードが表示され、
    ・ストレージの合計サイズやオブジェクトの数
    ・日ごとのサイズ変化
    ・ストレージサイズの大きいバケットはどれか
    などが確認できます。

    ※表示内容の詳細についてはこちらを参照。
    ※こちらのダッシュボードの情報は、有効になっていると毎日更新され、無効にすると更新が止まります。
    (ダッシュボードの画面から「無効にする」ボタンで無効化できます。)

ダッシュボードを作成する

カスタムのダッシュボードを作成する手順を記載します。

  1. Amazon S3のコンソールで、作成したいリージョンを設定します。
  2. 左メニューからStorage Lensの「ダッシュボード」を選択して開き、「ダッシュボードを作成」をクリックします
  3. ダッシュボードの作成画面に遷移します。
    ホームリージョンは先ほど選択したリージョンになります。
    ダッシュボード名を入力します。
  4. ダッシュボードの範囲の「リージョンとバケットを選択」で「リージョンとバケットを含める」を選択し、
    対象に含めたいリージョン、バケットを指定します。
    今回は、全てのリージョンで、3つのバケットを選択しました。
    ※ 「リージョンとバケットを除外」の方を選択すると、以下のように、除外するリージョン・バケットを選択することができます。
  5. メトリクスのタイプを選択します。今回は無料の方を選択しました。
    メトリクスのエクスポートは、有効にすると、毎日指定したバケットにメトリクスがCSVまたはApache Parquet 形式で出力されます。
    今回は無効にしました。
    最後に「ダッシュボードを作成」をクリックします。
  6. 以下のように作成されます。
  7. 作成直後、ダッシュボードを開くとこのような表示になります。48時間待ってみます・・・

    48時間後、ダッシュボードが以下のように作成されていました。(実際には1日とちょっとで作成されていました。)

    指定したバケットで情報が表示されていることがわかります。

Storage Lensグループ

Storage Lensの機能として、Storage Lensグループというものがあります。
Storage Lensグループを使用すると、オブジェクトメタデータに基づいてフィルタをかけることができます。
具体的には、プレフィックス、サフィックス、オブジェクトタグ、オブジェクトサイズ、オブジェクト経過時間、
またはこれらの組み合わせで、フィルタ条件を設定できます。

Storage Lensグループを作成する手順を記載します。

  1. Amazon S3のコンソールで、作成したいリージョンを設定します。(グループを設定したいダッシュボードと同じリージョンにします)
  2. 左メニューからStorage Lens の「ストレージレンズグループ」を選択し、「ストレージレンズグループを作成」をクリックします。
  3. ストレージレンズグループの作成画面に遷移します。
    ホームリージョンは先ほど選択したリージョンになります。
    ストレージレンズグループ名を入力します。
  4. 「範囲」では、ストレージレンズグループで設定したいフィルターを選択します。
    今回は、「プレフィクス」を選択し、特定のフォルダを設定しました。
    (※プレフィクスにはバケット名は含めません。バケット名の後のフォルダ名以降を指定します。)
  5. オプションで、AWSリソースのタグでフィルタをかけることもできます。
    今回はデフォルトのままにします。
    「ストレージレンズグループを作成」をクリックします。
  6. 以下のように作成されました。
  7. 同様に、追加で2つのグループを作成しました。
  8. 作成したグループをダッシュボードにアタッチします。
    S3コンソールのダッシュボードから、アタッチしたいダッシュボードを選択し、「編集」をクリックします。
  9. 「メトリクスの選択」で、「高度なメトリクスとレコメンデーション」を選択します。
    「高度なメトリクスとレコメンデーションの機能」の選択が表示されるので、「ストレージレンズグループ集約」を選択します。
    「高度なメトリクス」は初期状態でONになっていますが、今回は外しておきます。
  10. 「ストレージレンズグループ集約」の「ストレージレンズグループを選択」で、
    「ストレージレンズグループを含める」を選択します。
    「含めるストレージレンズグループ」で、先ほど作成したグループを選択します。
    ※「ストレージレンズグループを除外」の方を選択すると、以下のように、除外するストレージレンズグループを選択することができます。
  11. 「変更の保存」をクリックします。
  12. 以下のように、変更が完了したメッセージが表示されます。
  13. ダッシュボードの「ストレージレンズグループ」タブを確認してみます。
    以下のようにまだデータは表示されていません・・・こちらも48時間待ちます・・・
    48時間後、以下のように各ストレージレンズグループの情報が表示されました。
    また以下のように、ダッシュボード上部のフィルターを開き、
    特定のストレージレンズグループを選択・適用することで、グループのフィルターをかけて表示することができます。
    共有のダッシュボードを一つ作っておき、チームごとにグループを作成しておくことで
    チーム別の使用状況を確認する、という使い方ができそうです。

 

まとめ・感想

  • ダッシュボード・グループの作成は、コンソールで設定をいくつか選ぶだけなので、思ったより簡単でした。
  • デフォルトのダッシュボードでも、使用容量が多いバケットの確認などが一目で分かるので、とりあえずさくっと使用状況を確認したい、というときにはデフォルトのダッシュボードで十分かなと思います。
  • 無料の範囲でも十分使えるので、活用しないと損だと思いました。
  • 結果をS3にエクスポートして別のサービス(Amazon QuickSight, Athena, Redshiftなど)と連携することもできるようなので、次はそちらに挑戦してみようと思います。