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

问题描述 投票:1回答:1

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

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

amazon-web-services amazon-cloudformation amazon-elb autoscaling
1个回答
3
投票

使用spot实例时,不能将MinInstancesInService设置为0以外的任何值,因为spot实例可以随时终止,因此AWS无法保证在滚动更新期间保持最小数量的实例。

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

© www.soinside.com 2019 - 2024. All rights reserved.