Phi*_*ßen 4 health-monitoring amazon-ec2 amazon-web-services docker
场景:
我想添加一个Web服务器仍然响应的简单运行状况检查,因此如果docker容器关闭,自动扩展组可以替换该实例.
从我看来,只有ELB支持自定义健康检查.由于我不需要ELB,我想知道使用cron作业在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
Run Code Online (Sandbox Code Playgroud)
我认为它应该可行,但看起来有点复杂.有没有更好的方法来实现自定义健康检查(不使用ELB)?
2017年,AWS没有直接支持,只有用于设置EC2实例运行状况的API.因此,问题中描述的技术是推荐的方式:
autoscaling set-instance-healthAPI将结果传递给自动缩放组如果您有自定义运行状况检查,则可以将运行状况检查中的信息发送到Auto Scaling,以便Auto Scaling可以使用此信息.例如,如果确定实例未按预期运行,则可以将实例的运行状况设置为"不健康".下次Auto Scaling对实例执行运行状况检查时,它将确定该实例运行状况不佳,然后启动替换实例.
使用以下set-instance-health命令将指定实例的运行状况设置为Unhealthy:
aws autoscaling set-instance-health --instance-id i-123abc45d –-health-status Unhealthy
| 归档时间: |
|
| 查看次数: |
4507 次 |
| 最近记录: |