0

目前,我有多个实例在 AWS 自动缩放组下运行,该组轮询来自 AWS SQS 的消息。我的实例需要在开始处理传入消息之前与另一个实例建立连接。

有时会发生我的一个实例无法建立连接,我想在这里添加一个健康检查来监控连接状态并以此终止实例。我认为默认的 EC2 运行状况检查无法解决这种情况。

有什么方法可以添加运行状况检查来处理上述情况。

4

1 回答 1

0

您确实需要对此进行某种自定义运行状况检查,因为任何内置指标(如 CPU 使用率、网络输入/输出)在这里都不起作用。

一个想法是让这些实例使用每几分钟运行一次的 cron 作业进行引导,并检查连接是否已启动并正在运行。如果不是,该实例可以使用 CLI 或 SDK 将自己设置为运行状况不佳。

这是一段 bash 代码示例,它获取运行代码的实例的实例 ID,然后将自身标记为不健康。这将触发 ASG 替换它。

EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`"
aws autoscaling set-instance-health --instance-id $EC2_INSTANCE_ID --health-status Unhealthy

资源:

于 2020-10-05T02:47:20.847 回答