Amazon S3 Storage Lens を使用したストレージコストの最適化 - Amazon Simple Storage Service

Amazon S3 Storage Lens を使用したストレージコストの最適化

Amazon S3 Storage Lens は、使用状況とアクティビティのメトリクスを集約して、Amazon S3 コンソールの [Buckets] (バケット)(ホーム) ページにあるアカウントスナップショットにこの情報を表示します。S3 Storage Lens のダッシュボードを使用して、インサイトと傾向を可視化し、外れ値にフラグを付け、推奨事項を受け取って、ストレージコストの最適化とデータ保護のベストプラクティスの適用を行うことができます。

以下のユースケースでは、S3 Storage Lens ダッシュボードを使用してストレージをより効果的に最適化するための戦略を説明します。

最大の S3 バケットを特定する

料金は S3 バケットでのオブジェクトの保存に対して発生します。請求される料金は、オブジェクトのサイズ、オブジェクトの保存期間、およびそれらのストレージクラスに応じて異なります。Amazon S3 Storage Lens では、アカウント内のすべてのバケットを一元的に表示できます。組織が持つすべてのアカウントのバケットをすべて表示するには、AWS Organizations レベルの S3 Storage Lens ダッシュボードを設定できます。最大のバケットは、このダッシュボードのビューから特定できます。

最大のバケットを特定する

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[Storage Lens]、[ダッシュボード] の順にクリックします。

  3. [Dashboards] (ダッシュボード) リストで、表示するダッシュボードを選択します。

  4. 右上隅に、S3 Storage Lens がストレージメトリクスを収集した最終日が表示されています。ダッシュボードでは常に、メトリクスの集計が可能な、最新の日付で読み込が行われます。

    • 表示されているダッシュボードデータの範囲を調整するには、[Filters] (フィルター) をクリックして一時的なフィルターを適用します。

    • すべてのフィルターを削除するには、[Reset] (リセット)、[Apply] (適用) の順にクリックします。

  5. ダッシュボードの [Overview](概要) タブで [Top N overview for date]((日付) の上位 N の概要) セクションにスクロールダウンして、選択した日付範囲の [Total storage](ストレージの合計) メトリクスで最大バケットのランキングを確認します。

    ソート順序を切り替えて最小のバケットを表示し、利用可能な 30 を超えるメトリクスのいずれかでメトリクスを調整してバケットをランク付けできます。このビューには、14 日間の傾向 ([Advanced metrics and recommendations] (高度なメトリクスとレコメンデーション) にアップグレードした場合は 30 日間の傾向) を可視化する前日または前の週からの変化率 (%) とスパークラインも表示されます。

  6. バケットに関するより詳細なインサイトについては、このダッシュボードの [Buckets] (バケット) タブをクリックします。[Buckets] (バケット) タブでは、最近の増加率、平均的なオブジェクトサイズ、最大のプレフィックス、およびオブジェクトの数などの詳細を確認できます。

  7. 最大バケットについては、後ほど S3 コンソール内の各バケットに移動して、そのオブジェクトと関連するワークロードを把握する、またはバケットの内部所有者を特定することができます。バケット所有者から、この増加が見込まれていたものかどうか、またはこの増加をさらにモニタリングして制御する必要があるかどうかの情報を得ることができます。

未完了のマルチパートアップロードを特定する

スループットを向上させ、ネットワーク問題からより迅速に復旧するため、マルチパートアップロード機能を使用して超大型のオブジェクト (最大 5 TB) を複数のパートから成るセットとしてアップロードすることができます。マルチパートアップロードのプロセスが完了しない場合、未完了のパートが使用不可能な状態でバケットに残り、プロセスが終了するか、未完了のパートが削除されるまでストレージコストが発生します。詳細については、「マルチパートアップロードを使用したオブジェクトのアップロードとコピー」を参照してください。

S3 Storage Lens では、アカウント内、または組織全体にある未完了のマルチパートアップロードのバイト数を特定できます。

未完了のマルチパートアップロードのバイト数を特定する

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[Storage Lens]、[ダッシュボード] の順にクリックします。

  3. [Dashboards] (ダッシュボード) リストで、表示するダッシュボードを選択します。

  4. [Overview](概要) タブの最上部にある [Snapshot](スナップショット) セクションで [Cost efficiency](コスト効率) を選択し、[% incomplete MPU bytes](% (未完了の MPU バイト数)) メトリクスを確認します。

[Incomplete multipart upload bytes] (未完了の MPU バイト数) は、S3 Storage Lens ダッシュボードのどのグラフでもメトリクスとして選択できます。その後、ストレージに対する未完了のマルチパートアップロードのバイト数の影響 (全体的な増加傾向に対するそれらの寄与度など) をさらに評価する、または未完了のマルチパートアップロードを蓄積している特定のバケットを識別することができます。

未完了のマルチパートアップロードを自動的に管理するには、指定された日数後にバケットから不完了のマルチパートアップロードのバイトを失効させるライフサイクルポリシーを作成します。

保持する旧バージョンの数を減らす

S3 バージョニング機能を有効にすると、同じオブジェクトの複数のバージョンが保持されます。これらは、オブジェクトが誤って削除された、または上書きされた場合にデータをすばやく回復させるために使用できます。以前の旧バージョンが多数蓄積されている場合は、S3 バージョニングがストレージコストに影響を及ぼすことがあります。詳細については、「S3 バケットでのバージョニングの使用」を参照してください。

旧バージョンオブジェクトの蓄積を特定する

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[Storage Lens]、[ダッシュボード] の順にクリックします。

  3. [Dashboards] (ダッシュボード) リストで、表示するダッシュボードを選択します。

  4. [Overview] (概要) タブの最上部にある [Snapshot] (スナップショット) セクションで [Cost efficiency] (コスト効率) をクリックします。[% noncurrent version bytes] (% (旧バージョンのバイト数)) のメトリクスは、選択された日付に関して、ストレージの合計バイト数 (ダッシュボードの範囲内) のうち、旧バージョンに起因するバイト数の割合を表します。

    注記

    [% noncurrent version bytes] (% (旧バージョンのバイト数)) がアカウントレベルでストレージの 10 パーセントを超過する場合、保存しているバージョンの数が多すぎることを示している可能性があります。

  5. 多数の旧バージョンを蓄積している特定のバケットを識別するには、[Top N overview for date] ((日付) の上位 N の概要) セクションにスクロールダウンして、[% noncurrent version bytes] (% (旧バージョンのバイト数)) メトリクスを選択します。

追加の調査が必要なバケットを判断したら、S3 コンソールでそのバケットに移動し、指定した日数後に旧バージョンを失効させるライフサイクルポリシーを有効にします。あるいは、旧バージョンを保持したままコストを削減するために、旧バージョンを S3 Glacier Flexible Retrieval に移行させるライフサイクルポリシーを設定することもできます。詳細については、「例 6: バージョニングが有効なバケットへのライフサイクルルールを指定する 」を参照してください。

コールド Amazon S3 バケットを検出する

S3 Storage Lens の高度なメトリクスを有効にしている場合は、アクティビティメトリクスを使用して、S3 バケットがどの程度「コールド」かを理解できます。「コールド」なバケットとは、そのストレージがアクセスされなくなった (またはほとんどアクセスされない) バケットです。通常、このアクティビティの欠如はバケットのオブジェクトが頻繁にアクセスされていないことを示します。

[GET Requests] (GET リクエスト) および [Download Bytes] (ダウンロード済みバイト数) などのアクティビティメトリクスは、バケットが毎日どのくらいの頻度でアクセスされるかを示します。アクセスパターンの一貫性を理解し、まったくアクセスされなくなったバケットを特定するために、このデータの数か月間にわたる傾向を得ることができます。[Download bytes / Total storage] (ダウンロード済みバイト数÷ストレージの合計) として計算される [Retrieval rate] (取得率) メトリクスは、毎日アクセスされるバケット内のストレージの比率を示します。

注記

1 日に同じオブジェクトが複数回ダウンロードされる場合は、ダウンロードのバイト数が重複します。

バケットがどの程度アクティブかを確認する

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[Storage Lens]、[ダッシュボード] の順にクリックします。

  3. [Dashboards] (ダッシュボード) リストで、表示するダッシュボードを選択します。

  4. ダッシュボードの [Bucket] (バケット) タブをクリックして、[Bubble analysis by buckets for date] ((日付) のバケットによるバブル分析) グラフにスクロールダウンします。

  5. [Bubble analysis](バブル分析) セクションでは、バブルの [x-axis](X 軸)[y-axis](Y 軸)、および [size](サイズ) を表す任意のメトリクスを 3 つ使用して、バケットを複数のディメンションにプロットできます。メトリクスの 1 つとして [% retrieval rate] (% (取得率)) を選択します。

  6. コールドになったバケットを見つけるには、[Total storage] (ストレージの合計)、[% retrieval rate] (% (取得率))、および [Average object size] (平均オブジェクトサイズ) メトリクスを使用してバブル分析を実行します。取得率がゼロ (またはゼロに近い) で、かつ相対的なストレージサイズが大きいバケットを探します。

そこからアカウントまたは組織内のバケット所有者を特定し、そのストレージが引き続き必要かどうかを確認できます。その後、バケットにライフサイクル有効期限ポリシーを設定する、またはデータを Amazon S3 Glacier にアーカイブすることによって、コストを最適化できます。

将来のコールドバケット問題を回避するには、S3 ライフサイクルポリシーを使用してデータを自動的に移行させる、または S3 Intelligent-Tiering による自動アーカイブを有効にすることができます。

逆に、前述の例を使ってホットバケットを特定し、それらに適切な S3 ストレージクラスが使用されていることを確実にすることによって、最も効率的にリクエストに対応するようバケットが最適化されているかどうかを確認することもできます。