LoginSignup
0
0

アカウント内のS3バケット容量を一括出力する方法

Posted at

はじめに

AWSでしばらく遊んでいると、いつの間にか謎のS3バケットが増えていきませんか?
私はめんどくさがりで消すのをよく忘れるので、使途不明なS3が日々発生しています。
そんな中重い腰を上げて、一つ一つS3バケットの容量を見て要否を確認するのはさらに面倒...。

というわけで、AWS CLIでオブジェクト数と容量をまとめて出力する方法を共有します。

コマンド

以下のコマンドでまとめて出力できます。
大事なのはaws s3 lsコマンドの以下オプションです。

  • --recursive
    指定したS3バケット配下のすべてのオブジェクトに対して再帰的に実行してくれる。
  • --human-readable
    KiBやMiBなど、確認しやすいサイズ表記にしてくれる。
  • --summarize
    Total ObjectsTotal Sizeを表示してくれる。
実行
for bucket in $(aws s3 ls | awk '{print $3}'); do
  echo $bucket
  aws s3 ls s3://$bucket --recursive --human-readable --summarize | tail -n 2
  echo -e
done
出力例
bucket-1
Total Objects: 41
   Total Size: 1.4 MiB

bucket-2
Total Objects: 402
   Total Size: 123.4 MiB

bucket-3
Total Objects: 19
   Total Size: 145.2 KiB

注意事項

実はListリクエストは少額ですが料金がかかるため、
各S3に大量のオブジェクトが格納されている場合、費用面で注意が必要です。
具体的には、東京リージョンのスタンダードクラスの S3 バケットでは、1,000 LIST リクエストあたり 0.0047 USD の料金が発生します。

例として、Listリクエストは最大1,000オブジェクトまで取得できるので、
以下のようなイメージになります。

2,000,000(オブジェクト) / 1000(Listリクエスト上限) = 2
2 × 0.0047(USD) = 0.0094(USD)

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0