我们为其中一个云形成堆栈提供了自动伸缩组,该组具有基于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/

10-10 05:36