AWS
CloudFormation
AutoScaling

CloudFormationのEC2Role変更で気をつけること

More than 1 year has passed since last update.

AutoScalingGroupのIAMRoleを変更した際エラーが発生しロールバックしてしまったので原因と対策を書き留めておきます。たまにやりそうなシチュエーションなので参考にして下さい。


環境


  • CloudFormationスタックでAutoScalingGroupを作成

  • MinSize & MaxSizeはどちらも1台

  • IAMRoleを適用


実施内容

 CloudFormationコンソールの「スタックの更新」で、既にあるIAMRoleとは異なるRoleに変更し適用


エラー内容

The following resource(s) failed to update: [AutoScalingGroup].


原因

Roleが変更される際、AutoScalingGroup内部で新しいRoleのEC2が立ち上がり、元のEC2を消す手順を踏むらしい。そのため、MaxSizeを1にしていると新たなEC2を立てることができずロールバックしてしまう。


対策

対策は2パターン

 1つは、一度AutoScalingGroupのMinSize,MaxSizeを0台に変更し、その際にRoleも変える方法

こうすることで一時的に全てのEC2が落ちてしまうというデメリットはあるが、Role変更でエラーにならない

もう1つはMaxSizeを2台に変更した後にRole変更を行う方法。

こちらは今回の原因であるMaxSizeの制限を取り払う方法で、EC2を立ち上げつつRole変更を行うことが可能