场景:
- 我正在运行一个EC2实例,它在自动扩展组中,但我没有使用ELB。
- 在EC2实例内部,正在运行一个带有Web服务器的Docker容器。
我想添加一个简单的健康检查,以确保Web服务器仍然响应,因此如果Docker容器停止运行,自动缩放组可以替换实例。
从我的观察中得知,只有ELB支持定制健康检查。由于我不需要ELB,所以我想知道是否有意义在EC2实例内部运行一个定时任务来进行健康检查。如果Web服务器(本地)没有响应,那么它可以设置健康状态如下:
export INSTANCE=$(curl http://169.254.169.254/latest/meta-data/instance-id)
export AWS_DEFAULT_REGION=$(curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}')
aws autoscaling set-instance-health --instance-id $INSTANCE --health-status Unhealthy
我认为这应该可以工作,但看起来有点复杂。 是否有更好的方法实现自定义健康检查(而不使用ELB)?
我认为它可以工作,但看起来有点复杂。是否有更好的方法来实现自定义健康检查(而不使用负载均衡器ELB)?