amazon-web-services - 使用 Cloudformation 和 Spot 实例执行 RollingUpdate

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

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

最佳答案

使用竞价实例时,不能将 MinInstancesInService 设置为 0 以外的任何值,因为竞价实例可以随时终止,从而使 AWS 无法保证保留的最小实例数在滚动更新期间投入使用。

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

关于amazon-web-services - 使用 Cloudformation 和 Spot 实例执行 RollingUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47931206/

相关文章:

amazon-web-services - 如何将 HTTPs 请求发送到 AWS 中的 ELB,以将其路由到附加到自动扩展组的其后面运行的 EC2 实例上的 HTTP 端口?

amazon-web-services - Amazon SES 中无法接收电子邮件

amazon-web-services - AWS SSM : Pass tag-name instead of Instance-ID

amazon-web-services - Cloudformation 模板 - 如何获取计算属性的值

amazon-web-services - 如何获取触发 lambda 的计划的速率?

aws-cloudformation - 不允许使用无关 key [HealthCheck]

amazon-web-services - HttpApi 与 AWS::ApiGatewayV2::integration 如何覆盖响应正文

amazon-ec2 - 没有从 ELB 到其中一个 Auto Scaling 实例的流量

amazon-web-services - ELB用于出站流量吗?

amazon-web-services - 如果我已经有一个指向同一位置的公共(public) ELB,我是否还需要内部 ELB?