#目的
・CloudFormationniおいて
正常なステータスのCloudFormation作成
→設定値を変更(スタックの更新)
→ロールバックしてしまう(UPDATE_ROLLBACK_COMPLETE)
→テンプレートの記述が変わっていない(なんなら設定値も変わっていない)
→エラーが解消されない
この流れを満たした人は、今回の記事が有用かもしれません。
#対象
(これは上の目的が満たされていることを確認した人は見なくて大丈夫です)
・ロールバックする設定をして実際にロールバックした人
・スタックの更新の際にロールバックした結果、何も更新が行われなかった人
・CloudFormationでロールバックしてしまってから一向にエラーが解決できない人
・SNS通知機能を実装している人
#用語
・CloudFormation・・・AWSリソースの環境構築を、設定ファイル (テンプレート) を元に自動化できるサービス
・スタック・・・テンプレートで記述したAWSリソースの集合
・ロールバック・・・処理のキャンセル
#結論
##やってほしい動作
設定値を成功するように適当に変更(スタックの更新その1)
→設定値を自分がしたい設定値に再変更(スタックの更新その2)
##何が起こっているか
変更予定のリソースがすべてロールバック&何も変更されていない
→その影響でスタックのステータスがUPDATE_ROLLBACK_COMPLETEになっている
→しかし特に設定値が変わっていない上に、機能しないという不思議な現象が起きる
###事実
・「スタックの更新」をクリックし同じ設定値を設定中に再入力する→更新するところがありませんとエラーになる
→設定値は変わっていない証拠
・【やってほしい動作】を実行すると問題は解決し同じ状態に戻る
→設定値が同じでも問題なく動作する
#テンプレート
今回使ってみたテンプレートは以下を参考
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/use-cloudformation-template-to-create-cloudwatch-alarms.html
##この実験をするためにやってみたこと
①SNSを利用しているにも関わらずパラメーターからEmailアドレスを空白
→これはSNSのサブスクリプションのメールアドレスを空白にしていることを示します。
②スタックの更新
##この実験をすると起こる現象
・AlarmNotificationTopic(アラームのターゲット)
→Invalid parameter: Endpoint(Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter;...
→UPDATE_COMPLETE
・スタックのステータス
→UPDATE_ROLLBACK_COMPLETE
・SNS
→特に変化なし
※例えば設定値のSNSを別のSNSにして、戻すときは再度サブスクリプションしなきゃいけないので気を付けてください。