使用 HealthyHostCount 或 UnhealthyHost 计数的 AWS Beanstalk 自动缩放缩放触发器

AWS Beanstalk Auto-scaling Scaling Triggers with HealthyHostCount or UnhealthyHost count

我有 Elastic Beanstalk 环境,我需要设置自动缩放策略,如果 Elastic Loadbalancer 有不健康的实例,它将启动新实例我现在使用的策略如下

将第一个选项 "HealthyInstanceCount" 更改为 UnHealthyInstanceCount,如果有 1 个或多个不健康,则添加 +1 个实例。如果 UnHealthyInstanceCount 为 0,则添加 -1 个实例(取走一个)。确保您的最小值设置为 1 或更多(建议最小值 2,在两个单独的可用性区域中以实现高可用性)。

跟进这件事,因为我刚遇到同样的问题。 @Max 提出的解决方案是正确的,但需要对数字进行轻微调整。

1) 确保设置最小实例数和最大实例数作为预防措施

2)设置如下参数 触发测量:UnHealthyHostCount 触发统计:最大值 计量单位:计数 上阈值:0 上突破规模增量:1 下限:1 较低的破坏规模增量:-1

EB console > Configuration > Capacity 中的缩放触发器有点受限,因为 <=>= 没有选项。要完全控制触发器,请转到 AWS Console > EC2 > Auto Scaling Groups

有 select 您的 Beanstalk 应用程序的 Auto Scaling 组(如果您无法识别您的 beanstalk 应用程序的 Auto Scaling 组,那么这里有一个提示:默认情况下,自动缩放组将以这种方式命名 awseb-e-<Environment ID>-stack-AWSEBAutoScalingLaunchConfiguration-XXXXXXXXXXX。您可以从应用程序的仪表板找到我们的 beantalk 应用程序的环境 ID)

在您应用的 Auto Scaling 组的 selection 上,select Scaling Policies 在底部。在那里,您可以用简单的英语阅读升级和降级的触发器。

您会注意到 awseb-e-<Environment ID>-stack-AWSEBAutoScalingScaleDownPolicy-YYYYYYYYYYawseb-e-<Environment ID>-stack-AWSEBAutoScalingScaleUpPolicy-ZZZZZZZZZZ 形式的 2 项政策。对于每个策略,都会有一个 CloudWatch 警报,形式为 awseb-e-<Environment ID>-stack-AWSEBCloudwatchAlarm***-AAAAAAAAAA,与触发器相关联。

然后,如果您想微调触发器,请转至 AWS CloudWatch > 警报并 select 您的警报。在这里您将获得更多选项来编辑您的触发器。您可以 select 阈值,例如 <=>= 并添加 SNS 主题等。更多选项。

编辑和更新警报并返回到您的 Auto Scaling 组的缩放策略。您将在那里看到新的更新,同样是通俗易懂的英语,非常容易理解。