我正在测试AWS自动扩展。我创建了一个简单的弹性beanstalk并编辑了缩放设置。以下是自动缩放组缩放策略的屏幕截图:
正如你所看到的,我试图让这个小组拥有5到10个健康实例。最大和最小实例数已设置为20和2.
我只运行2个实例(最小值)。
警报定义为:
Load Balancer的警报似乎正常工作:
但扩展组未启动新实例。我已经尝试过相反地设置警报(我不确定它们是从真实到虚假还是从虚假变为真时触发)并导致20个实例(最大值)
答案 0 :(得分:7)
这是不您应该使用Auto Scaling的方式。
当Elastic Beanstalk创建“负载平衡,自动扩展”环境时,它会为您创建Auto Scaling组。作为这些配置的一部分,您可以指定要在Auto Scaling组中启动的最小和最大实例数:
Auto Scaling组将使当前 Desired Capacity 的实例保持在最小值和最大值之内。如果实例失败(下面定义),Auto Scaling将自动将该实例替换为另一个实例,以维持所需容量。
扩展政策随后用于调整所需容量。扩展策略应使用某种“加载”度量来确定何时添加或删除实例,例如CPU利用率或Amazon SQS队列的大小。目的是在需要更多容量时添加其他服务器,并在容量过大时删除服务器。
HealthyHostCount
指标表示已通过Elastic Load Balancing 运行状况检查的服务器数量。如果实例未通过运行状况检查,则Load Balancer会停止发送请求,但会继续执行运行状况检查。如果实例再次变为健康状态,Load Balancer将继续向该服务器发送请求。可以将Elastic Load Balancing运行状况检查配置为检查服务器上的特定页面,以确认应用程序是否健康。
当Auto Scaling执行运行状况检查时,它仅为checking the the status of the virtualization environment,与EC2管理控制台显示2/2 status checks
的方式相同。但是,可以配置Auto Scaling以使用Elastic Load Balancing健康检查。这样,可以通知Auto Scaling 应用程序运行状况不佳,并且可以自动替换失败的实例(或应用程序失败的实例)。
您声明您的目标是“让该群体拥有5至10个健康实例的永久性”。这是Auto Scaling的工作,尤其是当它已配置为使用Elastic Load Balancing运行状况检查时。扩展策略的工作是根据工作负载确定何时添加/删除实例。 不应将扩展策略用作替换不健康实例的方法。
所以,我建议: