AWS Beanstalk,如何自动重启(或终止)未响应的实例

问题描述 投票:2回答:3

我的Beanstalk环境带有“Scaling Trigger”,使用“CPUUtilization”,效果很好。

问题是我无法将此与自动重新启动(或终止)已被视为“OutOfService”一段时间的实例的系统相结合。

进入“Scaling> Scaling Trigger> Trigger measurement”,可以选择“UnHealthyHostCount”。但这并不能最佳地解决我的问题,因为它会创建新的实例,只要有一个不健康,这将促使我的环境增长到没有真正原因的限制。此外,我无法结合2“触发测量”,我需要CPU 1。

当环境中只有一个实例时,问题变得至关重要,并且它变为OutOfService。整个环境终止,触发测量永远不会被触发。

amazon-web-services elastic-beanstalk elastic-load-balancer
3个回答
2
投票

如果你在Elastic Beanstalk中使用Classic Load Balancer

你可以去EC2 - > Auto Scaling Groups

然后将负载平衡器的Health Check TypeEC2更改为ELB

通过这样做,Elastic Beanstalk的实例将在它们没有响应时终止。将创建一个新实例来替换已终止的实例。


1
投票

AWS Elastic Beanstalk使用AWS Auto Scaling来管理实例的创建和终止,包括替换不健康的实例。

AWS Auto Scaling可以与Elastic Beanstalk自动创建的ELB(负载均衡器)集成,以进行运行状况检查。 ELB具有健康检查功能。如果ELB检测到实例运行状况不佳,并且Auto Scaling已配置为依赖于ELB运行状况检查(而不是默认的基于EC2的运行状况检查),则Auto Scaling会自动替换ELB认为不健康的实例。

因此,您所要做的就是正确配置ELB运行状况检查(您似乎已经正确配置了它,因为您提到您可以看到实例被标记为OutOfService),并且您还必须配置Auto Scaling组以使用ELB健康检查。

有关此主题的更多详细信息,包括配置所有这些内容的具体步骤,请查看官方文档中的以下2个链接:

这应该可以解决问题。如果您遇到问题,请在尝试此操作后添加评论以及您可能拥有的任何其他信息。

干杯!


0
投票

您可以使用StatusCheckFailed_Instance指标设置CloudWatch警报以重新启动不健康的实例。

有关每个步骤的详细信息,请参阅以下AWS Documentation中的“将重新启动操作添加到Amazon CloudWatch警报”部分。

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