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

时间:2013-08-02 08:58:16

标签: amazon-web-services amazon-ec2 autoscaling amazon-elb amazon-cloudformation

我们正在使用云形成为AWS EC2实例提供支持。我们有3种不同的堆栈 - 测试,分期和生产。我们更新任何堆栈图像的工作流程如下:

  1. 更新'黄金大师'实例
  2. 将黄金大师快照到磁盘映像
  3. 更改给定堆栈和update堆栈的云形成配置(通过json文件)中的ami引用。
  4. 这会关闭堆栈中的实例+使用新磁盘映像重新配置它们。

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

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

    负载均衡规则与云形成之间是否存在冲突?

    非常感谢任何见解

2 个答案:

答案 0 :(得分:7)

好的 - 做了一些实验。您需要为扩展组定义更新策略。通过定义更新策略,启动配置中的任何更改都将触发更新。没有这个 - 更新不会被触发。

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

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

答案 1 :(得分:0)

我们可以看到您的云形成脚本吗? 关于elb + autoscaling你可能是对的。

为了更新ami(没有cloudformation),我手动将自动缩放组的desiredCapacity值加倍,并在新实例在ELB上处于联机状态时将其设置回来。

类似的策略可能是可编写脚本/可配置的cloudformation