Amazon S3バケットのサイズを取得する方法
AWSはS3バケットのサイズを見つけるのをかなり直感的でなく、メニューの中に隠しています。ここでは、合計サイズを見つける方法、CloudWatchでグラフ化する方法、またはコマンドラインからプログラム的に取得する方法について説明します。
GUIからバケットサイズを見つける方法
S3管理コンソールから、表示したいバケットをクリックします。管理 > メトリクス > ストレージの下に、時間の経過に伴う総バイト数を示すグラフがあります。
さらに、この指標をCloudWatchで見ることができ、保存されたオブジェクトの数とともに確認できます。これを使用して、CloudWatchダッシュボードのグラフにバケットサイズを追加することができます。
バケットの概要ページから、すべてのアイテムを選択し、アクション > 合計サイズを取得を選択することもできます。ただし、アイテムが複数のページにわたる場合、すべてを選択することはできず、それはバケットの実際のサイズを代表するものではありません。
コストエクスプローラーからバケットのサイズも確認できます。なぜなら、請求部門はもちろん、あなたの使用状況を非常に正確に測定しているからです。
CLIからバケットサイズを取得する方法
AWS CLIを使用して、バケットのサイズをリストすることができます。
--summarizeフラグを
s3 ls:
aws s3 ls s3://bucket --recursive --human-readable --summarizeこれはバケット内の各アイテムをループ処理し、最後にオブジェクトの総数と総サイズを印刷します。バケット内のすべてのファイル名でターミナルが洪水にならないようにしたい場合は、出力をtailに渡すことができます。
aws s3 ls s3://bucket --recursive --human-readable --summarize | tail -2非常に大きなバケットがある場合、これにはしばらく時間がかかります。get-metric-dataを使用してCloudWatchからサイズを取得できますが、構文は使いにくいです。
より簡単な方法は、s3cmdをインストールすることです。これはAWS CLIの一部ではないため、ディストリビューションのパッケージマネージャーから手動でインストールする必要があります。UbuntuのようなDebian系システムでは、次のようになります:
sudo apt-get install s3cmd一度 s3cmd がインストールされると、次のコマンドを実行してアクセスキーを使用してアカウントにリンクする必要があります(「マイセキュリティ認証情報」から新しいものを生成できます):
s3cmd --configure
インストールが完了したら、次のコマンドですべてのバケットのサイズをすぐに取得できます。
s3cmd du -H
5.708148956298828M 2 objects s3://bucket/
これにより、ファイルサイズを再帰的に合計するよりも、大きなバケットのサイズをはるかに速く表示でき、実際に使用されているディスクスペースを取得します。また、-H フラグを渡すと、人間が読める形式で表示されるため、計算機を取り出す必要はありません。


