

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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 儲存貯體) 時沒有發生命名衝突。
+ StackSet 具有一個單一範本及參數組。與 StackSet 關聯的所有帳戶內都會建立堆疊。當您編寫範本時，請讓其維持適當的精細程度，以在控制和標準化間取得良好的平衡。
+ 我們建議您將您的範本存放在 Amazon S3 儲存貯體中。

## 建立或將堆疊新增至 StackSet
<a name="w2aac15c41c11"></a>
+ 請在將大量的堆疊執行個體新增至您的 StackSet 前，先確認新增堆疊執行個體至您的初始 StackSet 可正常運作。
+ 選擇適合您使用案例的部署 (推出) 選項。
  + 如需進行較保守的部署，請將 **Maximum Concurrent Accounts (最大同時帳戶數)** 設為 1，並將 **Failure Tolerance (容錯能力)** 設為 0。將您的最低影響區域設為 **Region Order (區域順序)** 清單中的第一位。從使用一個區域開始。
  + 如需進行較快速的部署，請視需要增加 **Maximum Concurrent Accounts (最大同時帳戶數)** 及 **Failure Tolerance (容錯能力)** 的值。
+ StackSets 上的操作取決於涉及的堆疊執行個體數，並且可能會耗費大量的時間。

## 更新 StackSet 中的堆疊
<a name="w2aac15c41c13"></a>
+ 在預設情況下，更新 StackSet 會更新所有堆疊執行個體。若您在兩個區域中分別具有 20 個帳戶，您便擁有 40 個堆疊執行個體，並且所有的堆疊執行個體都會在您更新 StackSet 時更新。

  對於含有大量堆疊執行個體的 StackSets，若要測試更新版本的範本，我們建議先選擇性地在幾個測試帳戶中更新堆疊執行個體，再更新所有堆疊執行個體。
+ 若要在更新 StackSet 內的個別堆疊時進行更細微的控制，請規劃建立多個 StackSets。
+ 更新包含大量堆疊的 StackSet 可能需要耗費大量的時間。在此版本中，一個 StackSet 上一次只能進行一項操作。計劃您的更新，以免您無法在 StackSet 上執行其他操作。