Amazon S3 コンソールと Amazon CloudWatch でストレージおよびサイズのメトリクスに不一致があるのはなぜですか?

最終更新日: 2021 年 12 月 3 日

Amazon Simple Storage Service (Amazon S3) コンソールの [Calculate total size] (合計サイズを計算する) の数値と Amazon CloudWatch の日次ストレージメトリクスの間に不一致があります。2 つの情報源の間で、報告されるメトリクスに不一致があるのはなぜですか?

簡単な説明

CloudWatch ストレージメトリクスと Amazon S3 コンソールの [Calculate total size] (合計サイズを計算する) の数値に不一致がある場合は、以下の要件が満たされているかどうかを確認します。

  • オブジェクトバージョニングが有効になっていること。
    注: Amazon S3 のオブジェクトバージョニング機能を使用すると、バケット内で 1 つのオブジェクトの複数のバージョンが保持されます。デフォルトでは、バケットにおける Amazon S3 オブジェクトバージョニングは無効になっており、この機能を明示的に有効にする必要があります。
  • 不完全なマルチパートアップロードが存在すること。
    注:不完全なマルチパートアップロードは Amazon S3 コンソールには表示されませんが、CloudWatch メトリクスのストレージの一部として計算されます。

報告の不一致の原因を特定するには、オブジェクトバージョニングを有効にしているかどうかを確認し、バケット内にマルチパートアップロードがないか調べます。これらの 2 つの要因により、CloudWatch で計算されたバケットサイズの値が増加する可能性があります。詳細については、バケットの Amazon S3 CloudWatch 日次ストレージメトリクスを参照してください。

ヒント: Amazon S3 に不完全なマルチパートアップロードがある場合は、ライフサイクル設定ルールを作成することを検討してください。このライフサイクル設定ルールにより、不完全なパーツが自動的にクリーンアップされ、データストレージのコストが削減される場合があります。ライフサイクルルールは非同期に動作するため、オペレーションに遅延が生じる可能性があることに注意してください。ただし、オブジェクトが削除対象としてマークされると、(オブジェクトがまだ削除されていない場合でも) ストレージについての料金は請求されなくなります。

また、Amazon S3 モニタリングメトリクスが記録されるのは 1 日に 1 回であるため、最新の情報が表示されない場合があります。一方、CloudWatch は AWS リソースとアプリケーションをリアルタイムでモニタリングします

解決方法

CloudWatch の日次ストレージメトリクス

CloudWatch では、BucketSizeBytes メトリクスは、Amazon S3 と Amazon S3 Glacier のすべてのストレージタイプ、オブジェクトバージョン、および不完全なマルチパートアップロードをキャプチャします。この値は、すべてのオブジェクトサイズ、バケット内のメタデータ (現在のオブジェクトとそれ以外のオブジェクトの両方)、および不完全なマルチパートアップロードのサイズを合計することによって計算されます。例えば、BucketSizeBytes メトリクスは、以下のすべてのオブジェクトストレージクラスの Amazon S3 バケットに保存されているデータの量 (バイト単位) を計算します。

  • S3 Standard
  • S3 Intelligent-Tiering
  • S3 標準 – 低頻度アクセス
  • S3 1 ゾーン – IA
  • S3 低冗長化ストレージ
  • S3 Glacier Deep Archive
  • S3 Glacier

また、CloudWatch の NumberOfObjects メトリクスには、すべてのストレージクラスについて、バケットに保存されているオブジェクトの総数が含まれます。この値は、バケット内のすべてのオブジェクト (現在のオブジェクトとそれ以外のオブジェクトの両方) と、不完全なマルチパートアップロードのパートの総数をカウントします。NumberOfObjects メトリクスは、バケット内のオブジェクトのすべてのバージョンについてのオブジェクトの総数も計算します。例えば、同じオブジェクトに 2 つのバージョンがある場合、2 つのバージョンは 2 つの別々のオブジェクトとしてカウントされます。詳細については、メトリクスとディメンションを参照してください。

Amazon S3 コンソールの [Calculate total size] (合計サイズを計算する)

Amazon S3 コンソールからバケットのサイズを計算するために、[Calculate total size] (合計サイズを計算する) アクションを使用できます。その後、Amazon S3 はバケットのストレージサイズを計算します。ただし、マルチパートアップロード、および以前のバージョンまたは現在のバージョン以外のバージョンは、バケットの合計サイズでは計算されないことに注意してください。Amazon S3 は、バケットに保存されている各オブジェクトの現在のバージョンまたは最新バージョンのオブジェクトの総数のみを計算します。例えば、あるオブジェクトの 2 つのバージョンがバケットにある場合、Amazon S3 のストレージ計算ツールでは、それらを 1 つのオブジェクトとしてカウントします。その結果、Amazon S3 コンソールで計算される数値は、CloudWatch によって報告される数値よりも小さくなります。

不完全なマルチパートアップロード

不完全なマルチパートアップロードの一覧を確認するには、list-multipart-uploads コマンドを実行します。

aws s3api list-multipart-uploads --bucket <bucket-example>

その後、list-parts コマンドと UploadId 値を使用して、マルチパートアップロード内のすべてのオブジェクトを一覧表示します。

aws s3api list-parts --bucket <bucket-example> --key large_test_file --upload-id <examplevalue>

ライフサイクルルールの作成

マルチパートアップロードを自動的に削除するには、ライフサイクル設定ルールを作成します。以下の手順を実行してください。

1.    Amazon S3 コンソールを開きます。

2.    [Management] (管理) タブを開きます。

3.    [Create new policy] (新しいポリシーを作成) を選択します。

4.    ポリシーの名前を追加します。

5.    [Select - Delete expired delete markers or incomplete multipart uploads] (選択 - 失効した削除マーカーまたは不完全なマルチパートアップロードを削除) を選択します。

6.    (オプション) バケットがバージョニングされていない場合は、[Delete incomplete multipart uploads] (不完全なマルチパートアップロードを削除) を選択します。

オブジェクトのバージョン管理

Amazon S3 バケットで異なるバージョンのオブジェクトを確認および監査するには、Amazon S3 インベントリリストを使用します。Amazon S3 インベントリリストファイルには、ソースバケット内のオブジェクトのリストと、各オブジェクトのメタデータが含まれます。インベントリリストファイルでは、バケット名、オブジェクトサイズ、ストレージクラス、バージョン ID などのメタデータがキャプチャされます。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?