amazon-web-services - AWS Autoscaling Group EC2 实例在 cron 作业期间关闭

标签 amazon-web-services amazon-ec2 cron amazon-elb aws-auto-scaling

我尝试了自动缩放组,或者只是使用负载均衡器绑定(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/

相关文章:

node.js - 限制对 AWS SQL Server 实例的外部访问

postgresql - 通过 aws 网络平衡器负载平衡 postgres 实例可能吗?

amazon-web-services - 如何在亚马逊 aws ec2 预留实例上工作?

php - 相对路径在 cron PHP 脚本中不起作用

除 01 :00 and 02:00? 之间的小时外,每 5 分钟的 Cron 表达式

powershell - AWS Powershell 检索 AWS 帐号

amazon-web-services - 如何接收通过 AWS Amplify 中的身份提供商登录的用户的属性?

amazon-web-services - AWS EC2 - Amazon Linux AMI 之间的区别是什么

amazon-ec2 - EC2 容器服务与 Apache Mesos

cron - 使用 Upstart 代替 cron