我们正在使用云形成为AWS EC2实例提供支持。我们有3种不同的堆栈 - 测试,分期和生产。我们更新任何堆栈图像的工作流程如下:
update
堆栈的云形成配置(通过json文件)中的ami引用。这会关闭堆栈中的实例+使用新磁盘映像重新配置它们。
我们的测试或暂存堆栈没有任何问题,每个堆栈包含一个ec2实例。每次我们更新,图像都被替换没问题。
我们的生产堆栈似乎没有以相同的方式工作:-(。它包含(至少)2个位于负载均衡器后面的实例。当我们以相同的方式更新此堆栈时,ec2实例不是直接刷新(即更新完成后,框仍然从前一个磁盘映像运行)。好消息是当负载均衡器自动调整时使用新映像。
负载均衡规则与云形成之间是否存在冲突?
非常感谢任何见解
答案 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