AWS CloudFormation StackSets を使用するためのベストプラクティス
このセクションでは、スタックセットテンプレートの定義、スタックセットの作成、スタックセットへのスタックの追加、またはスタックセットの更新を実行するためのベストプラクティスを説明します。
CloudFormation を初めて使用する場合は、AWS CloudFormation のベストプラクティス トピックで CloudFormation をより効果的かつ安全に使用するのに役立つ他のレコメンデーションを確認してください。
テンプレートの定義
-
複数のリージョン内の、複数のアカウント内で標準化したいテンプレートを定義します。
-
テンプレートを作成するときに、グローバルリソース (IAM ロールや Amazon S3 バケットなど) を同一アカウントの 1 つ以上のリージョンで作成する場合は、名前の競合が起きないよう注意してください。
-
スタックセットは単一のテンプレートとパラメータのセットを持ちます。スタックセットに関連付けられたすべてのアカウントで同じスタックが作成されます。テンプレートを作成するときは、制御と標準化のバランスが取れるよう、十分に細かくしてください。
-
テンプレートは Amazon S3 バケットに保存することをお勧めします。
スタックセットにスタックを作成または追加する
-
多数のスタックインスタンスをスタックセットに追加する前に、スタックインスタンスを初期のスタックセットに追加することが機能することを確認してください。
-
ユースケースで機能するデプロイ (ロールアウト) オプションを選択します。
-
デプロイをより控えめにするには、[Maximum Concurrent Accounts (同時アカウントの最大数)] を 1 に、[Failure Tolerance (障害耐性)] を 0 に設定してください。影響が最も小さいリージョンが [Region Order (リージョンオーダー)] リストの先頭になるように設定します。1 つのリージョンから開始します。
-
デプロイを高速にする場合、最大アカウントの同時数と障害耐性 の値を増やします。
-
-
スタックセットのオペレーションは、関係するスタックインスタンスの数に依存し、莫大な時間がかかることがあります。
スタックセットでスタックを更新する
-
デフォルトでは、スタックセットを更新すると、すべてのスタックインスタンスが更新されます。2 つのリージョンにそれぞれ 20 個のアカウントがある場合、40 個のスタックインスタンスを持ち、スタックセットを更新するとすべて更新されます。
多数のスタックインスタンスを含むスタックセットの場合、テンプレートの更新バージョンをテストするには、すべてのスタックインスタンスを更新する前に、いくつかのテストアカウントでスタックインスタンスを選択的に更新することをお勧めします。
-
スタックセット内の個々のスタックの更新をよりきめ細かく制御するには、複数のスタックセットを作成することを計画してください。
-
多数のスタックを持つスタックセットを更新するには、長い時間がかかることがあります。このリリースでは、一度に 1 つのオペレーションのみがスタックセットに許可されます。スタックセットに他のオペレーションを実行することからブロックされないよう、更新を計画しましょう。