5
5

AWS CloudFormationの最近の変更点

Last updated at Posted at 2024-07-16

AWS CloudFormationの最近の変更

AWS CloudFormationでは2023年末から2024年6月にかけて多くの改善・機能追加がありました。
特に下記は「三大変更点」と呼んでもいいかなと思います。

  1. Gitと同期(Git Sync) (2023/11)
  2. IaCジェネレーター (2024/02)
  3. オンラインエディタをデザイナーからApplication Clomposerへ変更 (2024/03)

また、『最近CloudFormationのデプロイが早くなった気がする』とか思っている人も多いと思います。下記の変更がアナウンスされています。

4 スタック作成を高速化 (2024/04)

スタックセットでも地道に変更があり、オプションが追加されています。

5 スタックセットで「同時実行モード」オプション追加 (2023/11)

他にも変更はありますが、CloudFormation色々変わったな、という方も上記を押さえておけば不安なく利用できると思います。
ということでこの5つの変更点をざっくり説明します。

続編 AWS CloudFormationの最近の変更点 その2 を公開しました。
その2には「基本変わらないけどもちょっと便利になった変更箇所」を記載しています。

関連本の説明

変更点の説明

1. Gitと同期(Git Sync) (2023/11)

Gitリポジトリと連携する機能が提供されました。Gitリポジトリでテンプレートファイルを管理します。
テンプレート更新時は自動でCloudFormationのスタックを更新します。image.png
新規スタック作成時に設定も可能な他、既存のスタックをGitと同期させることも可能です。

Gitとの同期には「デベロッパー用ツール」の「接続(Connections)」機能を利用します。
image.png
Gitと同期を利用する時は先に「接続」の設定が必要です。

Gitリポジトリで管理するスタックの情報は「デプロイファイル」にまとめられています。

deploy-file-sample.yaml
template-file-path: 2-14-3-VPCEndPoints.yaml
parameters:
  mySecurityGroups: sg-0cf73bd245c9ff853
  myVPC: vpc-07d4bc315ce093c6d
  S3Interface: Yes
  S3InterfaceRouteTable: rtb-0ffd23f96afd0915c
tags:
  sampleTag: sample-sync

デプロイファイルはGitと同期を設定するウィザード中で作成することも、手動で作成して利用も可能です。
image.png
(出典: 詳解 AWS CloudFormation)

CloudFormationはGit側の更新検知し、変更セットの作成と実行を自動で開始します。
image.png
なおリリース当初は「接続」のarnサービス名は codestar-connectionsでしたが、2024/05よりcodeconnectionsに変更されました。(本には間に合わずcodestar-connectionsで記載しています。)

2. IaCジェネレーター (2024/02)

既存のAWSリソースからテンプレートを作成する機能が新しく提供されました。
作成したテンプレートは「IaC ジェネレーター」から表示できます。
image.png

またインポート機能も提供されており、CloudFormation以外で作成・設定したリソースをCloudFormationのスタックに取り込むインポート操作が簡単になりました。

IaCジェネレーターの利用には最初に「新しいスキャンを開始」の実行が必要です。
image.png
テンプレートは「テンプレートを作成」ボタンから作成します。
image.png
途中でスキャンしたリソースが一覧で表示されます。選択するとそのリソースを基にテンプレートを作成します。
image.png

image.png

インポート機能を使うと、テンプレート作成時に選択した既存リソースをインポートすることができます。
IaCジェネレータのテンプレート詳細画面「スタックにインポート」ボタンから開始します。
image.png
インポートには変更セットを使用しています。
image.png

IaCジェネレータでテンプレートを作成・インポート可能なリソースタイプは下記に公開されています。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC-supported-resources.html

3. オンラインエディタをデザイナーからApplication Clomposerへ変更(2024/03)

Application Composerはテンプレートファイルを作成・編集する機能です。
キャンパスビューとテンプレートビューで表示できます。

キャンパスビューはテンプレートの内容を図で表示します。image.png

テンプレートビューはテンプレートをテキストで表示・更新できます。image.png

Application Composerは元々AWS SAMテンプレートファイルを作成するツールとして提供されていました。
2024年3月より「CloudFormationコンソールモード 」が追加され、CloudFormationスタック作成・更新のウィザードと連携が可能となりました。

以前は下図の「デザイナー」が連携されていました。

image.png

Application Composerは単独で起動できるほか、スタックの作成ウィザードなどからも利用可能です。
image.png

以前のデザイナーも同様に利用することができました。下記は以前の画面です。
image.png

Application Composerは「CloudFormationコンソールモード」リリース後の2024年5月にも更新があり、「検証」ボタンの追加やテンプレート保存先バケット指定の改善が行われています。(本には間に合わずリリース初期画面で説明)

4. スタック作成を高速化 (2024/03)

2024/03の変更でスタック内の複数リソース間で依存がある時、結果整合性チェック(Eventual consistency check)完了を待たずに依存するリソースの作成を開始するようになりました。
これによりスタック作成・更新の完了が最大40%速くなると説明されています。(但し失敗時は、逆に待ち時間が長くなる可能性があります。)

これとは別に、テンプレートのチェックも改善され、最初のリソースを作成する前に検証し、無効な設定がある場合は作成前にエラーメッセージで終了するように変更されました。

どちらも操作に変更はありません。
また2024/04にWebマネジメントコンソールにも変更が入り、スタックのイベントタブに「詳細ステータス」項目が追加 されました。
image.png
詳細ステータスにはCONFIGURATION_COMPLETEが表示されます。
image.png

なお、CONFIGURATION_COMPLETEは必ず表示されるわけではありません。
表示された場合は、結果整合性チェック完了を待たず依存するリソースを作成開始することを表しているようです。

(参考:変更前のイベントタブ。「詳細ステータス」欄がありません)
image.png

5.スタックセットで「同時実行モード」オプション追加 (2023/11)

スタックではなくて、スタックセットの変更です。
スタックセットのデプロイオプションに「同時実行モード」オプションが追加されました。
「厳格な耐障害性」か「ソフト障害耐性」が選択できます。
image.png
デフォルトは厳格な耐障害性です。
「厳格な耐障害性」を選ぶと、「同時アカウントの最大数」か「障害耐性 +1」の小さい方の数でデプロイを開始し、失敗が発生すると動的に同時に実行するデプロイ数を減らします。
「ソフト障害耐性」は「同時アカウントの最大数」で開始し、同時実行数は変更しません。

関連本の説明

マイナビ出版様から「CloudFormationの辞書として使える本」を目指して「詳解 AWS CloudFormation」を出版しました。

AmazonYodobashiマイナビ出版

6月に出版だったため、ぎりぎりまで原稿を修正することになりましたが、4月の変更までは反映できています。

5月以降の変更で、本に反映できなかったものは下記などがあります。

  • DeleteStack APIにDeletionModeの追加 (2024/05)
  • AWS CloudTrail 統合 (2024/05)
  • スタックの作成・更新ウィザードのエラー表示変更 (2024/06?)

こちらは後日説明するつもりです。 AWS CloudFormationの最近の変更点 その2に併せて記載しました。

5
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
5
5