我使用cloudformation模板在ELB后面创建4个EC2实例。这些实例将与启动配置和自动伸缩组相关联。我们每两个月更新一次ami。现在,如果我必须在不停机的情况下更新ami,最好的策略是什么呢?我正在使用jenkins进行编排。
我脑子里的计划是这样的模板#1-创建ASG和Launch配置tempate# 2创建/更新ELB,创建新的实例第一次执行1. 创建由启动配置和自动缩放组组成的cloudformation堆栈。这将启动4个EC2实例并引导应用程序2. 创建第二个模板,该模板将创建ELB并将创建的4个实例绑定到ELB。它还将ELB绑定到ASG
AMI必须更新时1. 执行将创建新(ASG)的第一个模板。思路是创建新ASG而不更新ASG,因为ELB必须继续向旧ASG发送流量,直到所有实例都启动并运行。
一旦服务器启动,第二个模板将使用新的实例更新ELB,并使用新的ELB更新新的自动伸缩组。
删除旧栈
还有什么更好的方法来实现这一点吗?
Cloud formation本机支持此功能。请查看更新策略属性文档。