EBSにEC2のNameタグをもとにタグ付けするRubyスクリプト

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

望月です。

当然のことですが、EC2を起動するとそれに付随してEBSも同時に作成されます。EC2の起動時にはタグ付けをしっかりする人が多いと思いますが、EBSのタグ付けを忘れてしまう方は多いのではないでしょうか。気づかないうちにタグ付けされないEBSが数十個、数百個になってしまい、お目当てのEBSを探すのに苦労したことがある人は少なからずいると思います。

そこで、その状態を解消するためにEBSに対してEC2のNameタグをもとにタグ付けをするスクリプトを書きました。

詳細

今回はRubyで書きました。実行にはAWS SDKが必要ですので事前にダウンロードしておきましょう。

$ gem install aws-sdk

今回は、以下の処理を行うようにスクリプトを書きました。

  • タグ付け対象のEBSは、EC2にアタッチされているEBSのみに絞る
  • EC2のNameタグ、ない場合はインスタンスIDと、BlockDeviceMappingの後半部分(例: /dev/xvdaxvda)をEBSのNameタグとして登録する

実装・動作確認

CodeはGistに貼りました。これをダウンロードしてtag.rbとして保存してください。

私の手元の環境で動作を確かめてみました。以下の様に、web01web02という、2台のEC2が存在しています。

ec2

この状態で、作成したスクリプトを実行します。

$ ruby tag.rb

EBSの状態を確かめてみます。

ebs

タグが付けられていることが確認できました!

EBSも数が増えてくると管理が大変ですので、このスクリプトを使ったり、定期的にタグ付け状況を見直すなどして管理しやすい形式にに保つように心がけましょう。