它是 aws cloudformation 中的原子堆栈更新吗?
is it atomic stack-update in aws cloudformation?
假设我有一个由
组成的堆栈
- ec2 实例作为应用服务器
- 一个 ELB 作为负载均衡器
- 两个 Elasticsearch 节点
然后,如果我出于任何原因更新堆栈,可能是为了增加应用程序服务器的数量,是否所有新组件都与我当前的堆栈并行准备就绪,并且我当前的堆栈被替换为新的堆栈一次,就像数据库系统中的原子操作?
因为这种减少涉及对 Elasticsearch 中的现有数据进行去分片,所以即使我减少 Elasticsearch 节点的数量,是否也适用相同的过程?
当您进行堆栈更新时,只有您更改的资源才会 updated or replaced。在您的用例中,如果您更改 ES 集群中的节点数量,您的 EC2 实例和 ELB 将保持不变。
如果您想检查哪些资源会受到您对模板所做的更改的影响,您可以在应用更改之前使用CloudFormation Change Sets预览这些更改。
如果您只是增加 Auto Scaling 组中的实例数量,现有实例将保留在那里。但是,如果您要减少 ASG 中的实例数量,最旧的实例将首先被删除。您可以使用 AutoScalingRollingUpdate policy 来控制它。
或者,您可以指定在执行更新时用新的 ASG 替换整个 ASG,包括所有新的 EC2 实例。使用 AutoScalingReplacingUpdate policy 您可以配置此行为。
假设我有一个由
组成的堆栈- ec2 实例作为应用服务器
- 一个 ELB 作为负载均衡器
- 两个 Elasticsearch 节点
然后,如果我出于任何原因更新堆栈,可能是为了增加应用程序服务器的数量,是否所有新组件都与我当前的堆栈并行准备就绪,并且我当前的堆栈被替换为新的堆栈一次,就像数据库系统中的原子操作?
因为这种减少涉及对 Elasticsearch 中的现有数据进行去分片,所以即使我减少 Elasticsearch 节点的数量,是否也适用相同的过程?
当您进行堆栈更新时,只有您更改的资源才会 updated or replaced。在您的用例中,如果您更改 ES 集群中的节点数量,您的 EC2 实例和 ELB 将保持不变。
如果您想检查哪些资源会受到您对模板所做的更改的影响,您可以在应用更改之前使用CloudFormation Change Sets预览这些更改。
如果您只是增加 Auto Scaling 组中的实例数量,现有实例将保留在那里。但是,如果您要减少 ASG 中的实例数量,最旧的实例将首先被删除。您可以使用 AutoScalingRollingUpdate policy 来控制它。
或者,您可以指定在执行更新时用新的 ASG 替换整个 ASG,包括所有新的 EC2 实例。使用 AutoScalingReplacingUpdate policy 您可以配置此行为。