EBSにEC2のNameタグをもとにタグ付けするRubyスクリプト
望月です。
当然のことですが、EC2を起動するとそれに付随してEBSも同時に作成されます。EC2の起動時にはタグ付けをしっかりする人が多いと思いますが、EBSのタグ付けを忘れてしまう方は多いのではないでしょうか。気づかないうちにタグ付けされないEBSが数十個、数百個になってしまい、お目当てのEBSを探すのに苦労したことがある人は少なからずいると思います。
そこで、その状態を解消するためにEBSに対してEC2のNameタグをもとにタグ付けをするスクリプトを書きました。
詳細
今回はRubyで書きました。実行にはAWS SDKが必要ですので事前にダウンロードしておきましょう。
$ gem install aws-sdk
今回は、以下の処理を行うようにスクリプトを書きました。
- タグ付け対象のEBSは、EC2にアタッチされているEBSのみに絞る
- EC2のNameタグ、ない場合はインスタンスIDと、BlockDeviceMappingの後半部分(例:
/dev/xvda
のxvda
)をEBSのNameタグとして登録する
実装・動作確認
CodeはGistに貼りました。これをダウンロードしてtag.rb
として保存してください。
私の手元の環境で動作を確かめてみました。以下の様に、web01
とweb02
という、2台のEC2が存在しています。
この状態で、作成したスクリプトを実行します。
$ ruby tag.rb
EBSの状態を確かめてみます。
タグが付けられていることが確認できました!
EBSも数が増えてくると管理が大変ですので、このスクリプトを使ったり、定期的にタグ付け状況を見直すなどして管理しやすい形式にに保つように心がけましょう。