EBSにタグをつけるスクリプトを作った

AWS運用自動化サービス「Cloud Automator」

アソシエイト3冠の渡辺です。
EBSボリュームにタグをつけるスクリプトを作成しました。

仕様

  • コマンドライン引数にEC2のインスタンスIDを取る(複数可)
  • EC2インスタンスのタグをそのままアタッチされているEBSボリュームにつける
  • EBSボリュームが複数ある時は全てのEBSボリュームにつける

作成した理由

大量のEC2インスタンスに大量のタグをつける案件に遭遇してしまいました。。。
しかも、EBSにもつける必要があります。

サーバーワークスの構築はCloudFormationが主流です。
しかし、残念ながらCloudFormationはEBSのタグには対応していないようです。

自動的に作成されたタグを含むすべてのスタックレベルのタグは、AWS CloudFormation がサポートするリソースに反映されます。現在のところ、タグはブロックデバイスマッピングから作成された Amazon EBS ボリュームには反映されません。
AWS CloudFormation Resource Tags タイプ

ちょっと聞いた感じ、クリックだけで乗り切るには危険な量でした。

スクリプト

[追記]
少し修正しました。CloudFormationで作成したEC2インスタンスには自動でaws:というタグがつきます。
これをそのままEBSにタグ付けしようとすると、エラーになります。
予約語のaws:を除外するように修正しました。

キーにも値にも aws: プレフィックスは使用しないでください。これは AWS 用に予約されています。このプレフィックスが含まれるタグのキーや値を編集したり削除することはできません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。
タグの制限

使い方

EC2のインスタンスIDを引数にとってスパッと実行してください。

 

AWS運用自動化サービス「Cloud Automator」