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変更を行うことが可能