2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS CloudFormationの最近の変更点 その2

Last updated at Posted at 2024-07-20

その2.ちょっと便利になった変更

前回の「三大変更点」ほかに引き続き、CloudFormationの変更点を記録しておきます。

前回はGitと同期など新規追加機能を説明しました。
今回は、基本変わらないけどもちょっと便利になった変更箇所です。

  1. 「根本原因を検出」ボタン追加 (2023/11)

  2. AWS CloudTrail 統合 (2024/05)

  3. 変更セットで変更の可視性が向上 (2024/04)

  4. DeleteStack APIにDeletionModeの追加 (2024/05)

  5. スタックの作成ウィザードのエラー表示変更 (2024/06?)

  6. スタックの作成ウィザードでテンプレートのフォーマットエラー箇所を表示 (2024/06?)

関連本の説明

以下変更点を新旧画面で説明します。

1.「根本原因を検出」ボタン追加 (2023/11)

スタックのイベントタブに「根本原因を検出」(Detect root cause)ボタンが追加されました。
image.png
成功したスタックではボタンは無効です。
image.png

下記は2023年10月頃の変更前の画面です。
image.png「根本原因を検出」ボタンがありません。他に「詳細ステータス」列や「Gitと同期」タブなどもありません。

「根本原因を検出」ボタンを押すと、原因と思われるイベントに「考えられる根本原因」と表示されます。
image.png
大量のイベントログがある場合の判別に便利です。

2. AWS CloudTrail 統合(2024/05)

スタックのイベントタブの「根本原因を検出」に2024/05に機能が追加されました。
「考えられる根本原因」のステータスをクリックすると「CloudTrailイベントを表示」リンクが表示されます。
image.png
拡大表示
image.png

「CloudTrailイベントを表示」リンクを辿ると、CloudTrailのイベント履歴画面が表示されます。
image.png
CloudTrailのイベントは下記の条件でフィルタ表示するようです。

  • 論理リソース名があればそれを指定、なければReadOnly=falseを指定
  • CloudFormationのエラーイベントの前後30秒

CloudTrailの保存期間を過ぎている場合などは「見つかりませんでした」と表示されます。
image.png

3. 変更セットで変更の可視性が向上 (2024/04)

「変更セット(Change set)」は、スタックの更新前に追加・更新・削除対象となるリソースを確認できる機能です。
事前にテンプレートファイルやパラメータの変更の影響が確認できます。
image.png
[出典 詳解 AWS CloudFormation]

この変更セットの画面が2024/04から更新され、下記2列が追加されました。

  • プロパティレベルの変更: 差分の詳細画面へのリンク
  • ポリシーアクション: 削除・置換のポリシー(DeletionPolicyとUpdateReplacePolicy)設定

image.png

変更前の画面です。
image.png「プロパティレベルの変更」と「ポリシーアクション」列がありません。

アクションがAdd(追加)の場合、以前は「置換」には"-"が表示されていましたが、2024年4月の更新より「True」が表示されるようになりました。

「プロパティレベルの変更」をクリックすると、プロパティの設定の差分が確認できます。
image.png
「ドリフトの詳細を表示」画面と同じ作りですね。

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は利用できません。
削除に失敗すると表示される「削除を再試行」ボタンを選択すると、選択肢で「このスタック全体を強制削除」が利用できるようになりました。
cfn-del-fail-3.png
イベントにはDELETE_SKIPPEDの記載と共に、状況の理由欄に「This resource failed to delete. It was skipped and retained using the Force Delete Stack mode.」と記録されます。
cfn-del-force-event.png

以前よりある、「このスタックを削除するが、リソースを保持」(--retain-resourcesオプション)では、エラーで残すリソースを選択した場合スタックの削除が可能ですが、状況の理由欄に説明は表示されません。
cfn-del-fail-2.png

「このスタックを削除するが、リソースを保持」選択時のDELETE_SKIPPED
cfn-del-fail-skip.png

5. スタックの作成ウィザードのエラー表示変更 (2024/06?)

スタックの作成ウィザードでは、エラーのメッセージ表示場所が画面下に移動されました。
image.png
「戻る」ボタンで戻っても表示されたままです。
image.png

以前はエラーが画面上に表示されていました。
xボタンで非表示も可能でした。
image.png

6. スタックの作成ウィザードでテンプレートのフォーマットエラー箇所を表示 (2024/06?)

スタックの作成ウィザードで、テンプレートにJSON/YAMLフォーマット異常があると「テンプレートの指定」画面で表示されるようになりました。
image.png
「▶パーサーエラー」をクリックするとエラー箇所を表示してくれます。
image.png

なお、それ以外で事前に確認できるエラーは表示場所が変わり、画面下と「ファイルの選択」の下にエラーが表示されるようになりました。
image.png

エラーメッセージはコマンド 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」を出版しました。

AmazonYodobashiマイナビ出版

6月に出版だったため、ぎりぎりまで原稿を修正することになりましたが、4月の変更までは反映できています。
今回の説明では「1. 根本原因を検出」「3. 変更セットで変更の可視性が向上」は本に記載済みです。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?