我尝试了自动缩放组,或者只是使用负载均衡器绑定(bind)的一堆 EC2 实例。乍一看,这两个配置都运行良好。
但是,当 EC2 是自动缩放组的一部分时,它有时会出现故障。事实上,这种情况经常发生,几乎每天一次。它们会以“硬重置”的方式下降。 ec2 监控图表显示 CPU 使用率上升到 100%,然后实例变得没有响应,然后被自动伸缩组终止。
它与我在这些实例上的进程无关。
当实例不属于自动扩展组时,它可以在没有 CPU 使用率峰值的情况下运行数年。
自动缩放组实例上的“硬重置”正在阻止我的 cron 作业。尽管我很喜欢自动缩放组,但我无法使用它。
有处理“硬重置”的标准方法吗?
附注。
在我的例子中,cron 作业正在 Ubuntu 上运行 PHP 脚本。我设法只让一个实例运行该作业。
最佳答案
听起来您的 cron 运行时运行状况检查失败,因此实例停止服务。
如果您查看 ASG,应该会列出实例被删除的原因。这通常是健康检查失败,但也可能有其他原因。
您可以采取一些措施来解决此问题。
首先,确定您的 cron 为何占用 100% 的 CPU,以及通常需要多长时间。
检查您的健康检查设置。您使用的是 HTTP 还是 TCP?间隔是多少?在停止服务之前必须进行多少次检查?
在这两项之间,您应该能够调整运行状况检查,以便它不会在 cron 运行期间停止服务。实例可能会失败,通常是因为内存不足。如果是这种情况,您可能需要考虑使用大型实例类型和/或启用交换。
关于amazon-web-services - AWS Autoscaling Group EC2 实例在 cron 作业期间关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66271688/