😇
インスタンスIDは安易にクロススタック参照すべきでないかも
概要
intro
先日、CloudFormation(以下、CFn
)で管理されているEC2に対して
ベースとなるAMIを変更してデプロイしたところ、インスタンスの新規作成→旧インスタンスの削除
が発生しました。ここまではよかったんですが
というメッセージとともに、UPDATE_ROLLBACK_IN_PROGRESS
のステータスとなり
EC2の置き換えに失敗してしまいました。
CloudFormationのOutputsセクション
スタック内で作成したリソースを、Outputに指定すると
別のスタックから読み込む事ができます。
例)VPCIDをoutputして、サブネット作成テンプレートから呼び出す 等
しかし注意事項にも
他のスタックから参照されている出力が存在する場合は、スタックを削除することはできません。
とあるように、出力が参照されているリソースは削除ができません。
変更のデプロイができないのです。
outro
今回の場合、ターゲットグループにインスタンスIDは書くべきでないのか
インスタンスIDをOutputすべきでなかったのかで議論が割れそうですが
設計をする上でこの辺の罠を知っておくにこしたことはなさそうです。
Discussion