S3のコストを圧迫する大量の旧バージョンオブジェクト削除する
はじめに
AWS S3は非常に便利なストレージサービスですが、運用を続けていると意図しないコスト増に悩まされることがあります。その一般的な原因の一つが、オブジェクトバージョニングによって溜まった大量の古いバージョンのオブジェクトです。
特に、AWS SAM CLIなどが自動生成するaws-sam-cli-managed-default-samclisourcebucket-xxxxのようなバケットは、デプロイのたびに新しいテンプレートがアップロードされ、古いバージョンがどんどん蓄積していきます。
しかし、コンソールから手動で削除することはできないんです。(もしかしたら、やり方があるのかも)
どれくらい溜まっているか
下の画像はS3にたまっているファイルです。
約16GBぐらいあることがわかります。また、5000オブジェクトが存在しています。

ライフサイクル設定で対応
自動で削除するように、S3のライフサイクルを設定いました。
3日経過したら、削除するというように設定しています。

AWS CLIでシェルを作り、まとめて消すという方法もあります。
が、3日経過したら消えるという運用ができるかを確認したくシェルは使用せず、ライフサイクルを使用することにしました。

