使用带有竞价型实例的Cloudformation执行RollingUpdate

时间:2017-12-21 19:02:27

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

我正在使用cloudformation UpdatePolicy属性来执行滚动更新,以防我的ec2启动配置发生任何变化。这在使用按需实例时工作正常。但是当我使用现场实例时,我得到以下错误:

Autoscaling rolling updates cannot be performed because the current launch configuration is using spot instances and MinInstancesInService is greater than zero.

MinInstancesInService属性设置为零可使其正常工作,但随后我会在3-5分钟内停机。

有没有办法在没有使用Cloudformation停机的情况下实现这一目标?如果没有,有人可以指出一种更好的方法来自动化这个滚动更新过程,因为我有多个环境并且手动操作非常容易出错。谢谢

1 个答案:

答案 0 :(得分:4)

使用竞价型实例时,您无法将MinInstancesInService设置为0以外的任何值,因为可以随时终止竞价型实例,从而使AWS无法保证在服务期间保留最少数量的实例滚动更新。

但是,您可以将UpdatePolicy中的MaxBatchSize参数设置为1,因此一次只能更新一个实例。要确保高可用性,必须确保AutoScalingGroup中有2个或更多实例可用,否则滚动更新将终止您的单个实例,从而导致停机。