LoginSignup
6
6

More than 5 years have passed since last update.

不要になったLaunch Configurationを削除するGemを作った

Last updated at Posted at 2015-09-25

背景

AWSのAutoScalingは超絶便利なのですが、AutoScalingの元となるLaunch Configurationが編集不可能であるため、AMIの構成を変更したりして新しいAMIを作ると、Launch Configurationも新たに作る必要があります。(コピー機能ができたので以前よりはかなりマシになりましたが)

そういうわけで、Launch Configurationの数はオートスケーリングを運用していると必然的に数が増えていきます。数が増えていくと、Auto Scaling GroupからLaunch Configurationを選ぶときのUIがつらくなるので、定期的に削除する必要があります。

スクリーンショット_2015-09-25_19_32_43.png

というわけでManagement Consoleから削除するのですが、なんとこのUI、複数選択だと削除することができません。

スクリーンショット_2015-09-25_19_35_40.png

作ったもの

というわけで、溜まっていくとつらくなるのに個別削除しかできないというのに困ったので、一括で削除するツールを作りました。

インストールや使い方など

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

6
6
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
6
6