amazon-web-services - AWS Auto Scaling 组和非 ELB 运行状况检查

标签 amazon-web-services autoscaling

我们为我们的云形成堆栈之一设置了自动缩放组,该组具有基于 CPU 的警报,用于确定何时缩放实例。

这很棒,但我们最近将它从一个节点扩展到三个节点,其中一个节点无法通过 cfn-init 进行引导。一旦工作负载减少并且该组缩减到一个节点,它就会杀死两个好的实例,并将部分引导的节点作为唯一剩余的实例。这意味着我们停止处理工作,直到有人登录并重新运行 bootstrap 。

显然这并不理想。当节点不在 ELB 后面时,通知 Auto Scaling 组节点不健康的最佳方法是什么?

由于这只是初始引导,我真正想要的是向 Auto Scaling 组传达此节点出现故障并使其终止并在其位置上启动一个新节点。

最佳答案

一位同事刚刚给我看了 http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-configure-healthcheck.html看起来很方便。

If you have your own health check system, you can use the information from your health check system to set the health state of the instances in the Auto Scaling group.



更新 - 我在发布期间设法让它工作。

这是 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 Scaling 组和非 ELB 运行状况检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22415627/

相关文章:

amazon-web-services - AWS 静态网站托管的可扩展性如何

amazon-web-services - "desired instances"需要什么? AWS Amazon Web Services Auto Scaling 组

python-3.x - 如何使用 Boto3 分页

ruby-on-rails - AWS/S3 存储和带宽的详细账单信息

ios - 如何在 DynamoDB (iOS) 中查询多个项目?

amazon-web-services - 如何在 Lambda 中获取原始正文字符串(API 网关 Lambda 代理)

azure - Windows Azure 自动缩放 - 在部署中找不到托管服务中定义的角色

docker - 运行 kubernetes autoscaler

kubernetes - Kubectl无法描述HPA

amazon-web-services - 自动缩放组应用程序负载均衡器运行状况检查