

# CloudFormation StackSets を使用するためのベストプラクティス
<a name="stacksets-bestpractices"></a>

このセクションでは、StackSet テンプレートの定義、StackSet へのスタックの作成または追加、または StackSet の更新を実行するためのベストプラクティスを説明します。

CloudFormation を初めて使用する場合は、[CloudFormation ベストプラクティス](best-practices.md) トピックで CloudFormation をより効果的かつ安全に使用するのに役立つ他のレコメンデーションを確認してください。

**Topics**
+ [テンプレートの定義](#w2aac15c41b9)
+ [StackSet にスタックを作成または追加する](#w2aac15c41c11)
+ [StackSet でスタックを更新する](#w2aac15c41c13)

## テンプレートの定義
<a name="w2aac15c41b9"></a>
+ 複数のリージョン内の、複数のアカウント内で標準化したいテンプレートを定義します。
+ テンプレートを作成するときに、グローバルリソース (IAM ロールや Amazon S3 バケットなど) を同一アカウントの 1 つ以上のリージョンで作成する場合は、名前の競合が起きないよう注意してください。
+ StackSet は単一のテンプレートとパラメータのセットを持ちます。StackSet に関連付けられたすべてのアカウントで同じスタックが作成されます。テンプレートを作成するときは、制御と標準化のバランスが取れるよう、十分に細かくしてください。
+ テンプレートは Amazon S3 バケットに保存することをお勧めします。

## StackSet にスタックを作成または追加する
<a name="w2aac15c41c11"></a>
+ 多数のスタックインスタンスを StackSet に追加する前に、スタックインスタンスを初期の StackSet に追加することが機能することを確認してください。
+ ユースケースで機能するデプロイ (ロールアウト) オプションを選択します。
  + デプロイをより控えめにするには、[**Maximum Concurrent Accounts (同時アカウントの最大数)**] を 1 に、[**Failure Tolerance (耐障害性)**] を 0 に設定してください。影響が最も小さいリージョンが [**Region Order (リージョンオーダー)**] リストの先頭になるように設定します。1 つのリージョンから開始します。
  + デプロイを高速にする場合、**最大アカウントの同時数**と**耐障害性**の値を増やします。
+ StackSets のオペレーションは、関係するスタックインスタンスの数に依存し、莫大な時間がかかることがあります。

## StackSet でスタックを更新する
<a name="w2aac15c41c13"></a>
+ デフォルトでは、StackSet を更新すると、すべてのスタックインスタンスが更新されます。2 つのリージョンにそれぞれ 20 個のアカウントがある場合、40 個のスタックインスタンスを持ち、StackSet を更新するとすべて更新されます。

  多数のスタックインスタンスを含む StackSets の場合、テンプレートの更新バージョンをテストするには、すべてのスタックインスタンスを更新する前に、いくつかのテストアカウントでスタックインスタンスを選択的に更新することをお勧めします。
+ StackSet 内の個々のスタックの更新をよりきめ細かく制御するには、複数の StackSets を作成することを計画してください。
+ 多数のスタックを持つ StackSet を更新するには、長い時間がかかることがあります。このリリースでは、一度に 1 つのオペレーションのみが StackSet に許可されます。StackSet で他のオペレーションを実行できなくなることがないように更新を計画してください。