背景
AWSのAutoScalingは超絶便利なのですが、AutoScalingの元となるLaunch Configurationが編集不可能であるため、AMIの構成を変更したりして新しいAMIを作ると、Launch Configurationも新たに作る必要があります。(コピー機能ができたので以前よりはかなりマシになりましたが)
そういうわけで、Launch Configurationの数はオートスケーリングを運用していると必然的に数が増えていきます。数が増えていくと、Auto Scaling GroupからLaunch Configurationを選ぶときのUIがつらくなるので、定期的に削除する必要があります。
というわけでManagement Consoleから削除するのですが、なんとこのUI、複数選択だと削除することができません。
作ったもの
というわけで、溜まっていくとつらくなるのに個別削除しかできないというのに困ったので、一括で削除するツールを作りました。
インストールや使い方など
RubyのGemとして作ったので、gem install launch_configuration_cleaner
でインストールしてください。
その後、環境変数で以下の値を設定してください。
export AWS_ACCESS_KEY_ID=AWSのアクセスキー
export AWS_SECRET_ACCESS_KEY=AWSのシークレットアクセスキー
export AWS_REGION=AWSのリージョン
ここまでできたら、コマンドラインから
$ clean_lc
を実行することで、自分のLaunch Configurationのリストが以下のように表示されます。
[
YourLaunchConfiguration1,
YourLaunchConfiguration2,
YourLaunchConfiguration3,
YourLaunchConfiguration4,
YourLaunchConfiguration5,
]
個別に、削除するかどうかを聞かれるので y or n で選んでください。ちなみに削除はこの時点ではまだ実行されないので操作をミスっても大丈夫です。
Do you want to delete YourLaunchConfiguration1? (y/n)
全てのLaunch Configurationに対して選択したら、yを選んだもの全てを表示します。
These launch configurations will be deleted.
[
YourLaunchConfiguration1,
YourLaunchConfiguration3,
YourLaunchConfiguration5,
]
Are you sure? (yes or no)
ここで"yes"とtypeすると削除が実行されます。
気が変わったり削除したくないのを選んでしまった場合は"no"とtypeするか強制終了してください。ちなみに"yes", "no"以外がtypeされても何も起きず、再度聞いてくれるのでミスタイプしても大丈夫です。
動作確認環境や使ったGem
- Ruby2.2
- aws-sdk ver2
- thor
参考にしたサイト
Ruby gemでのコマンドライン・ツールの作り方 - IT探検記 http://itexp.hateblo.jp/entry/2015/02/21/225234