使用 Amazon CloudFormation StackSets 的最佳实践 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon CloudFormation StackSets 的最佳实践

本节介绍了定义堆栈集模板、创建堆栈或将堆栈添加到堆栈集或更新堆栈集的最佳实践。

如果不熟悉 CloudFormation,请查看 Amazon CloudFormation 最佳实践 主题获取更多有助于您更高效、安全地使用 CloudFormation 的建议。

定义模板

  • 定义要在多个区域内的多个账户中标准化的模板。

  • 在创建模板时,如果在同一账户的多个区域中创建全局资源(如 IAM 角色和 Amazon S3 桶),请确保全局资源没有发生命名冲突。

  • 一个堆栈集有一个模板和参数集。与堆栈集关联的所有账户中创建的堆栈都相同。在创作模板时,使其足够精细以便您能够实现控制与标准化的良好平衡。

  • 建议您将模板存储在 Amazon S3 桶中。

创建堆栈集或将堆栈添加到堆栈集

  • 在将大量堆栈实例添加到堆栈集之前,验证是否能将堆栈实例添加到初始堆栈集。

  • 选择适用于您的使用案例的部署 (推出) 选项。

    • 对于更传统的部署,请将 Maximum Concurrent Accounts 设置为 1,并将 Failure Tolerance 设置为 0。在 Region Order 列表中将影响最小的区域设置为第一位。从一个区域开始。

    • 要更快地进行部署,请根据需要增大 Maximum Concurrent AccountsFailure Tolerance 的值。

  • 针对堆栈集的操作可能需要花费大量时间,具体取决于包含的堆栈实例数量。

更新堆栈集中的堆栈

  • 默认情况下,在更新堆栈集时,将更新所有堆栈实例。如果您在两个区域中各有 20 个账户,则您将有 40 个堆栈实例,并且所有实例都将在您更新堆栈集时进行更新。

    对于具有大量堆栈实例的堆栈集,我们建议您有选择地更新几个测试账户中的堆栈实例以测试更新的模板版本,然后再更新所有堆栈实例。

  • 要对堆栈集中的各个堆栈更新进行更精细的控制,请计划创建多个堆栈集。

  • 更新包含大量堆栈的堆栈集可能需要花费大量时间。在此版本中,一次仅允许对堆栈集执行一项操作。计划您的更新,以便不会阻止您在堆栈集上执行其他操作。