AWS Autoscaling Group EC2 实例在 cron 作业期间关闭

AWS Autoscaling Group EC2 instances go down during cron jobs

我尝试了自动缩放组,或者只是一堆由负载均衡器绑定的 EC2 实例。两种配置乍一看都运行良好。

但是,当 EC2 是自动缩放组的一部分时,它有时会出现故障。其实这种情况经常发生,几乎一天一次。他们以“硬重置”的方式下降。 ec2 监控图显示 CPU 使用率上升到 100%,然后实例变得没有响应,然后被自动缩放组终止。

这与我在这些实例上的进程无关。

当实例不属于 Autoscaling 组时,它可以工作多年而不会出现 CPU 使用高峰。

自动缩放组实例上的“硬重置”正在阻止我的 cron 作业。尽管我喜欢自动缩放组,但我无法使用它。

是否有处理“硬重置”的标准方法?

PS.

在我的例子中,cron 作业是 Ubuntu 上的 运行 PHP 脚本。我设法只完成了一个 运行 工作。

当您的 cron 为 运行 时,您的运行状况检查似乎失败了,因此实例停止服务。

如果您查看 ASG,应该会列出实例被移除的原因。这通常是健康检查失败,但也可能有其他原因。

您可以采取一些措施来解决此问题。

首先,确定为什么您的 cron 占用了 100% CPU,以及通常需要多长时间。

检查您的健康检查设置。您使用的是 HTTP 还是 TCP?间隔是多少,在停止服务之前必须失败多少次检查?

在这两项之间,您应该能够调整运行状况检查,以便它不会在 cron 运行 时间内停止服务。实例可能会失败,通常是因为内存不足。如果是这种情况,您可能需要考虑使用大型实例类型 and/or 启用交换。

我有一次遇到类似的问题,当时是系统自动更新运行。系统(Windows 服务器)下载了一个大更新,并在几个小时内占用了 100% 的 CPU。我的建议是尝试监控那个时刻哪个服务是 运行(即使 SO 是 Linux),同时检查任何计划任务(看起来它是定期的 运行) .除此之外,尝试在活动期间保持打开任务列表,看看发生了什么。