My memo


S3 Bucketのサイズ・オブジェクト数

Tags

  • AWS
  • Python

困ったこと

AWS Backupの料金が高い。S3のStorageの料金が0.05 USD/月 で、Glacierの10倍くらいする。 特にでかいS3 Bucketがあったりして、どのBucketにどのくらいオブジェクトが溜まっているのか?を知りたくなった。

ただし、今はBackupの対象外にしている超巨大Bucket(数十TB)がいるので、 Storage Lens は使えなさそう。こいつはいい感じに容量の推移とかを見せてくれるけど、最大でもTop25位までのデータしか見せてくれない。

やりたいこと

以下が一通りできれば完璧

やり方

調べたところいくつかやり方がありそう(e.g. 2009年のStackExchangeのQA)。特にサイズの方がややこしい模様

ボツ案

S3のコンソールで見る

みたいBucketが数個くらいなら、Managed ConsoleのS3のページから確認できるようになっている。(Metricsのタブ)

→ 100個とかBucketがあるととても見きれないので却下

コツコツ数える

単純な方法として、 aws s3 ls --recursive --summarize --humanreadble <bucket_name> のようにして、単純にBucket内のオブジェクトを全部数えてしまうのも一つの手

ただ、以下の点からあまり現実的ではない

やろうとしている方法

CloudWatchに実はMetricsがあるので、それを使ってしまえばよさそう

以下のつらみはある

なのでちょっとしたPythonスクリプトを書くことにする。 Paginatorインターフェース が↑の NextToken あたりの面倒くさい部分をいい感じに吸収してくれているはず

⇇ Back to home