AWS - Autoscaling不按指定启动/终止实例

Gui*_*uig 7 amazon-web-services autoscaling

我正在测试AWS自动缩放.我创建了一个简单的弹性beanstalk并编辑了缩放设置.以下是自动缩放组缩放策略的屏幕截图:

在此输入图像描述

正如你所看到的,我正试图让这个小组拥有5到10个健康实例.最大和最小实例数已设置为20和2.

我只运行2个实例(最小值).

警报定义为:

  • 平服务器太健康 在此输入图像描述
  • 平服务器不是健康的,足够的 在此输入图像描述

Load Balancer的警报似乎正常工作:

在此输入图像描述

但是扩展组没有引导新实例.我已经尝试过设置警报(我不确定它们是从true转为false还是从false转为true)并导致20个实例(最大值)

Joh*_*ein 8

不是您应该使用Auto Scaling的方式.

当Elastic Beanstalk创建"负载平衡,自动扩展"环境时,它会为您创建Auto Scaling组.作为这些配置的一部分,您可以指定要在Auto Scaling组中启动的最小最大实例数:

Elastic Beanstalk自动缩放配置

然后,Auto Scaling组将当前所需的实例容量保持在最小值和最大值之内.如果实例失败(下面的定义),Auto Scaling将自动将该实例替换为另一个实例以维持所需容量.

所述缩放策略随后被用于调整所需的容量.扩展策略应使用某种"加载"度量来确定何时添加或删除实例,例如CPU利用率或Amazon SQS队列的大小.目的是在需要更多容量时添加其他服务器,并在容量过大时删除服务器.

HealthyHostCount指标表示已通过Elastic Load Balancing 运行状况检查的服务器数量.如果实例未通过运行状况检查,则Load Balancer会停止发送请求,但会继续执行运行状况检查.如果实例再次变为健康状态,Load Balancer将继续向该服务器发送请求.可以配置Elastic Load Balancing运行状况检查以检查服务器上的特定页面以确认应用程序是否正常运行.

当Auto Scaling执行运行状况检查时,它只是检查虚拟化环境的状态,与EC2管理控制台显示的方式相同2/2 status checks.但是,可以将Auto Scaling配置为使用Elastic Load Balancing健康检查.这样,可以通知Auto Scaling 应用程序运行状况不佳,并且可以自动替换失败的实例(或应用程序失败的实例).

您声明您的目标是"让团队拥有5至10个健康实例".这是Auto Scaling的工作,特别是当它已配置为使用Elastic Load Balancing运行状况检查时.扩展策略的工作是根据工作负载确定何时添加/删除实例.不应将扩展策略用作替换不健康实例的方法.

所以,我建议:

  • 配置健康检查你的负载平衡器准确地检查你的应用程序的运行状况
  • 在Auto Scaling组中启用ELB运行状况检查(这将确保将替换具有不健康应用程序的实例)
  • 使用扩展策略根据工作负载而不是基于运行状况添加/删除实例
  • 相信系统.有用!