Cloud Automator を使って不要な AMI を削除してみた

記事タイトルとURLをコピーする

こんにちは、やまぐちです。

先日、弊社の Cloud Automator にてアップデートがあり AMI をまとめて削除できるジョブが作成できるようになりました。 blog.serverworks.co.jp

何が嬉しいのか?

みなさんは、世代管理がされていない手動で作成した AMI が大量に残っていてコストが上がっている…といったご経験はございませんでしょうか。

まとめて削除しよう!と思って削除できるといいのですが、「AMI を登録解除」しても AMI に紐づいた EBS スナップショットは残るので2段階での作業が必要でした。

1.AMI を登録解除

2.AMI に紐づいた EBS スナップショットの削除

EBS スナップショットが残る…

EBS スナップショットを削除

シェルスクリプトを駆使する…

削除する対象が多い場合ですと、以下ブログでもご紹介しているシェルスクリプトを作成して実行するケースが考えられます。 blog.serverworks.co.jp

もちろんシェルスクリプトでも OK なのですが動作確認など手間が若干でもあるのは否定できないかと思います。

そんな中 Cloud Automator で一定期間前の AMI 及び AMI に紐づいた EBS スナップショットをまとめて削除できるジョブが作成できるようになった形となります!

実際にやってみる

では、実際に AMI と AMI に紐づいた EBS スナップショットを実施してみます!

今回は以下の 11個 の AMI 及び AMI に紐づいた EBS スナップショットをまとめて削除してみようと思います!
※他の AMI は削除対象外としたい思います。

ジョブの作成

「ジョブの追加」からジョブの設定をしていく中でアクション選択で「EC2: 過去のAMIとスナップショットをまとめて削除」を選択します!


次に、対象の AWS アカウントを選択します。
複数の AWS アカウントに対して1つのジョブでまとめて削除できるのもありがたいですね!!!


次にいつ時点で作成された AMI を削除対象とするかの選択を行います。

指定の仕方は2パターンあります。

  1. 何日より前に作成された AMI

  2. 指定した日時以前に作成された AMI

今回は2024/09/01以前に作成された AMI を対象とします。


削除してほしくない AMI も対象に含まれる場合もあるかと思いますので、削除されたくない AMI には除外タグを付与しておきましょう!
今回は「Exclude」というタグが付与されている AMI は除外としたいと思います。


ジョブを作成していきます。

削除対象の AMI を確認

作成したジョブの詳細画面から CSV ファイルを生成します。

しばらくしてリロードボタンを押すと「ダウンロード」ボタンが表示されるので CSV ファイルをダウンロードします。

ダウンロードした CSV ファイルを確認すると「"AWSアカウントID","AWSアカウント名","リージョン","AMI ID","AMI作成日(JST)","EBSスナップショットID","備考"」というヘッダーとともに、削除対象の AMI と AMI に紐づく EBS スナップショット ID も記載されています。
さらに、除外タグを付与した AMI には備考列に「skipped (This image has an exclusion tag.)」が記載されています。

ジョブを実行して AMI と EBS スナップショットを削除

リストに記載されている対象に問題がないことを確認できたので、ジョブを実行して AMI と AMI に紐づく EBS スナップショットを削除します。
今回は手動実行にしたので、「今すぐ実行」を押下してジョブを実行します。

実行ログを確認してチェックがついていたら完了です。

ログの詳細画面を確認すると、削除された AMI と EBS スナップショットの合計数ととスキップされた数が記載されています。
詳細を確認したい場合は、データをダウンロードすることもできます。

マネジメントコンソールからも AMI と EBS スナップショットが削除されていることが確認できます。

もちろん、スキップした AMI はそのまま残っています。

まとめ

不要な AMI と EBS スナップショットを削除する場合は2段階の作業が必要なため、一度に大量の AMI を削除するにはシェルスクリプトの作成などが必要でした。
しかし、Cloud Automator のジョブを利用することでそういった手間がなくなりました。
さらに、削除前に対象をリストで確認できるだけではなく除外したいリソースをスキップまでしてくれるのでかなり便利な機能ではないかと思います!
この機能を利用して、約$25,000/年 のコスト削減に成功した環境もありました!!
定期的なお掃除の際に、ぜひご活用いただければと思います。

それでは、またどこかで

やまぐち まさる (記事一覧)

CS部・CS2課

AWS の構築・運用をやってます

3度の飯より野球が好き

2024 Japan AWS All Certifications Engineers