[小ネタ] CloudFormation で作成するリソースにまとめて同じタグ、値をつけたい

2022.10.18

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

AWS事業本部 梶原@福岡オフィスです。

実は先日までこの機能をしらなくて、タグをサポートするリソースのテンプレートに1つ1つ同じタグを追記してました。

そして、マクロでそういう変換を作ろうとしていたりもしました。

いきなり結論です。

新規作成(コンソール)の場合

ステップ 3 > スタックオプションの設定

にあります。

ここで指定したタグは、タグ付けをサポートしているリソースに対して共通でタグ付けが行われます。

新規作成(CLI)の場合

aws cloudformation create-stack --stack-name hoge --tags key1=value1,key2=value2

新規作成(Rain)の場合

rain deploy hoge.yml hoge --tags key1=value1,key2=value2

という感じでタグ指定できます。

既存のスタックの場合

既存のスタックも更新時にスタックオプションの設定で追加、更新できます。

ただ、通常のスタック更新とおなじ動きをするようですので、実施するまえにリソースのリプレースが行われないか、意図しない更新が行われないかなどは十分ご検証ください

やってみた

さっそく適当なテンプレートでいくつかリソースを作成してみました。

S3 バケット

CloudFront

およそタグがサポートされているリソースには共通でタグ付けをすることができるようです。

実はスタックの情報ページにも実は前からあったようです。完全に見逃していましたね。。。

まとめ

テンプレートが触れない場合などにも、CloudFormationの機能として共通のタグ付けができそうです。コスト配分タグや、タグベースのリソース制限などにも活用できそうです。

中でパラメータで分岐して、タグをつけたい!とか言う場合は、スタックをネストさせて別テンプレートを呼びだす際にタグをつけると良さそうです

参考

CloudFormationで作ったリソースにタグを付ける

AWS CloudFormation スタックオプションの設定

リソースタグ

AWS::CloudFormation::Stack