云形成-更新elb后面的堆栈不会更新AMI



我们正在使用云形成为AWS EC2实例供电。我们有三个不同的堆栈-测试、阶段和生产。我们更新任何堆栈的图像的工作流程如下:

  1. 更新"黄金大师"实例
  2. 将黄金主机快照到磁盘映像
  3. 在我们的云形成配置中更改给定堆栈的ami引用(通过json文件),并将update更改为堆栈

这会减少堆栈中的实例,并为它们重新配置新的磁盘映像。

我们的测试或暂存堆栈没有任何问题,每个堆栈都包含一个ec2实例。每次更新时,图像都会被替换,没有问题。

我们的生产堆栈似乎没有以同样的方式工作:-(。它包含(至少)2个位于负载均衡器后面的实例。当我们以相同的方式更新此堆栈时,ec2实例不会立即刷新(即,更新完成后,框仍在从以前的磁盘映像运行)。好消息是,当负载均衡器自动缩放时,会使用新的图像。

负载平衡规则和云形成之间会有冲突吗?

任何见解都将不胜感激

OK-做了一些实验。您需要为缩放组定义一个更新策略。通过定义更新策略,启动配置中的任何更改都将触发更新。如果没有这一点,就不会触发更新。

你不需要ELB来触发滚动更新,但如果你有ELB,它也不会干扰它。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html

我们可以看看您的云形成脚本吗?关于elb+自动缩放,你可能是对的。

为了更新ami(没有云信息),我手动将自动缩放组的desiredCCapacity值增加一倍,并在新实例在ELB处于联机状态后将其设置回原来的值。

类似的策略可能可以用cloudformation 进行脚本化/配置

最新更新