その2.ちょっと便利になった変更
前回の「三大変更点」ほかに引き続き、CloudFormationの変更点を記録しておきます。
前回はGitと同期など新規追加機能を説明しました。
今回は、基本変わらないけどもちょっと便利になった変更箇所です。
-
「根本原因を検出」ボタン追加 (2023/11)
-
AWS CloudTrail 統合 (2024/05)
-
変更セットで変更の可視性が向上 (2024/04)
-
DeleteStack APIにDeletionModeの追加 (2024/05)
-
スタックの作成ウィザードのエラー表示変更 (2024/06?)
-
スタックの作成ウィザードでテンプレートのフォーマットエラー箇所を表示 (2024/06?)
以下変更点を新旧画面で説明します。
1.「根本原因を検出」ボタン追加 (2023/11)
スタックのイベントタブに「根本原因を検出」(Detect root cause)ボタンが追加されました。
成功したスタックではボタンは無効です。
下記は2023年10月頃の変更前の画面です。
「根本原因を検出」ボタンがありません。他に「詳細ステータス」列や「Gitと同期」タブなどもありません。
「根本原因を検出」ボタンを押すと、原因と思われるイベントに「考えられる根本原因」と表示されます。
大量のイベントログがある場合の判別に便利です。
2. AWS CloudTrail 統合(2024/05)
スタックのイベントタブの「根本原因を検出」に2024/05に機能が追加されました。
「考えられる根本原因」のステータスをクリックすると「CloudTrailイベントを表示」リンクが表示されます。
拡大表示
「CloudTrailイベントを表示」リンクを辿ると、CloudTrailのイベント履歴画面が表示されます。
CloudTrailのイベントは下記の条件でフィルタ表示するようです。
- 論理リソース名があればそれを指定、なければReadOnly=falseを指定
- CloudFormationのエラーイベントの前後30秒
CloudTrailの保存期間を過ぎている場合などは「見つかりませんでした」と表示されます。
3. 変更セットで変更の可視性が向上 (2024/04)
「変更セット(Change set)」は、スタックの更新前に追加・更新・削除対象となるリソースを確認できる機能です。
事前にテンプレートファイルやパラメータの変更の影響が確認できます。
[出典 詳解 AWS CloudFormation]
この変更セットの画面が2024/04から更新され、下記2列が追加されました。
- プロパティレベルの変更: 差分の詳細画面へのリンク
- ポリシーアクション: 削除・置換のポリシー(DeletionPolicyとUpdateReplacePolicy)設定
アクションがAdd(追加)の場合、以前は「置換」には"-"が表示されていましたが、2024年4月の更新より「True」が表示されるようになりました。
「プロパティレベルの変更」をクリックすると、プロパティの設定の差分が確認できます。
「ドリフトの詳細を表示」画面と同じ作りですね。
4. DeleteStack APIにDeletionModeの追加 (2024/05)
スタックの削除コマンドで強制的にスタック削除(FORCE_DELETE_STACK)が指定可能になりました。
$ aws cloudformation delete-stack --stack-name myFirststack \
--deletion-mode FORCE_DELETE_STACK
リソースの削除に失敗してスタックを強制的に削除するには、以前はエラーで消せないリソースのリソースIDを--retain-resourcesオプションで個別に指定する必要がありました。
FORCE_DELETE_STACK オプションを利用すれば、リソースIDを記載せずに強制削除が行えます。
Webマネジメントコンソールでは一回削除に失敗しないとFORCE_DELETE_STACKは利用できません。
削除に失敗すると表示される「削除を再試行」ボタンを選択すると、選択肢で「このスタック全体を強制削除」が利用できるようになりました。
イベントにはDELETE_SKIPPEDの記載と共に、状況の理由欄に「This resource failed to delete. It was skipped and retained using the Force Delete Stack mode.」と記録されます。
以前よりある、「このスタックを削除するが、リソースを保持」(--retain-resourcesオプション)では、エラーで残すリソースを選択した場合スタックの削除が可能ですが、状況の理由欄に説明は表示されません。
「このスタックを削除するが、リソースを保持」選択時のDELETE_SKIPPED
5. スタックの作成ウィザードのエラー表示変更 (2024/06?)
スタックの作成ウィザードでは、エラーのメッセージ表示場所が画面下に移動されました。
「戻る」ボタンで戻っても表示されたままです。
6. スタックの作成ウィザードでテンプレートのフォーマットエラー箇所を表示 (2024/06?)
スタックの作成ウィザードで、テンプレートにJSON/YAMLフォーマット異常があると「テンプレートの指定」画面で表示されるようになりました。
「▶パーサーエラー」をクリックするとエラー箇所を表示してくれます。
なお、それ以外で事前に確認できるエラーは表示場所が変わり、画面下と「ファイルの選択」の下にエラーが表示されるようになりました。
エラーメッセージはコマンド aws cloudformation validate-templateでの確認結果と同じようです。
$ aws cloudformation validate-template --template-body file://yaml-format-error3.yaml
An error occurred (ValidationError) when calling the ValidateTemplate operation: Template format error: [/Resources/myS3Bucket2] resource definition is malformed
「5.エラー表示変更」と「6.テンプレートのフォーマットエラー箇所を表示」は6月になって変更に気づきました。5月に変更されていたかもしれません。
AWSのWhat's New with AWS? 等ではアナウンスされていないようです。
関連本の説明
マイナビ出版様から「CloudFormationの辞書として使える本」を目指して「詳解 AWS CloudFormation」を出版しました。
6月に出版だったため、ぎりぎりまで原稿を修正することになりましたが、4月の変更までは反映できています。
今回の説明では「1. 根本原因を検出」「3. 変更セットで変更の可視性が向上」は本に記載済みです。