我们为其中一个云形成堆栈提供了自动伸缩组,该组具有基于CPU的警报,用于确定何时伸缩实例。
很好,但是我们最近使它从一个节点扩展到三个节点,并且其中一个节点无法通过cfn-init进行引导。一旦工作量减少并且该组缩减到一个节点,它将杀死这两个良好实例,并将部分自举的节点作为唯一剩余的实例。这意味着我们停止处理工作,直到有人登录并重新运行 bootstrap 为止。
显然这是不理想的。通知自动伸缩组节点不在ELB后面时状态不正常的最佳方法是什么?
由于这只是最初的 bootstrap ,因此我真正想要的是与自动伸缩组进行通信,以使该节点发生故障并终止它,并在其位置旋转一个新节点。
最佳答案
一位同事刚刚给我看了http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-configure-healthcheck.html,它看起来很方便。
更新-我设法在启动过程中使其正常工作。
这是我的ASG的UserData部分:
#!/bin/bash -v
set -x
export AWS_DEFAULT_REGION=us-west-1
cfn-init --region us-west-1 --stack bapi-prod --resource LaunchConfiguration -v
if [[ $? -ne 0 ]]; then
export INSTANCE=`curl http://169.254.169.254/latest/meta-data/instance-id`
aws autoscaling set-instance-health \
--instance-id $INSTANCE \
--health-status Unhealthy
fi
关于amazon-web-services - AWS Auto伸缩组和非ELB运行状况检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22415627/