我们有一个AWS扩展组,在负载均衡器后面有10-20台服务器。运行几周之后,这些服务器变坏了。我们不知道为什么服务器会变坏,我们需要一些时间才能进入可以调试此问题的阶段。
在过渡期间,有一种方法可以告诉AWS以受控方式(逐个)终止扩展组中的所有实例,直到每周都将所有实例替换为新实例?
答案 0 :(得分:1)
您可以使用数据管道非常有效地实现这一目标。
这是How do I stop and start Amazon EC2 Instances at scheduled intervals with AWS Data Pipeline?
的开发人员指南答案 1 :(得分:0)
Auto Scaling中没有任何功能可以告诉它自动终止和替换实例。但是,您可以编写此类功能的脚本。
假设:
合适的脚本将执行以下操作:
describe-auto-scaling-instances
describe-instances
--no-should-decrement-desired-capacity
terminate-instance-in-auto-scaling-group
将其终止,以便自动替换可以使用AWS Command-Line Interface (CLI)或Python等编程语言创建脚本。
或者,您可以通过简单地调用操作系统来关闭实例,在一段给定的时间后(例如72小时)将实例编程为自毁。这将导致自动缩放以终止实例并替换它。
答案 2 :(得分:0)
有两种方法可以实现您正在寻找的内容,预定的Auto Scaling操作或将其中一个实例带出ASG。
预定缩放
根据计划进行扩展允许您扩展应用程序以响应可预测的负载变化。例如,每周网络应用程序的流量在周三开始增加,周四仍然很高,并在周五开始减少。您可以根据Web应用程序的可预测流量模式规划扩展活动。
https://docs.aws.amazon.com/autoscaling/latest/userguide/schedule_time.html
你很可能想要这个。
Auto Scaling使您可以将处于InService状态的实例置于Standby状态,更新或对实例进行故障排除,然后将实例返回到服务。处于待机状态的实例仍然是Auto Scaling组的一部分,但它们不会主动处理应用程序流量。
https://docs.aws.amazon.com/autoscaling/latest/userguide/as-enter-exit-standby.html
答案 3 :(得分:0)
截至 2019 年 11 月 20 日,EC2 AutoScaling 支持最大实例生命周期:https://aws.amazon.com/about-aws/whats-new/2019/11/amazon-ec2-auto-scaling-supports-max-instance-lifetime/
来自:
<块引用>最大实例生命周期指定最大时间量(在 秒)实例可以在服务中。最长持续时间 适用于组中的所有当前和未来实例。作为 实例接近其最长持续时间,它被终止并 已更换,不能再次使用。
为 Auto Scaling 配置最长实例生命周期时 组,您必须指定一个至少为 86,400 秒(1 天)的值。到 清除先前设置的值,指定新值 0。