使用 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-YYYYYYYYYY
和 awseb-e-<Environment ID>-stack-AWSEBAutoScalingScaleUpPolicy-ZZZZZZZZZZ
形式的 2 项政策。对于每个策略,都会有一个 CloudWatch 警报,形式为 awseb-e-<Environment ID>-stack-AWSEBCloudwatchAlarm***-AAAAAAAAAA
,与触发器相关联。
然后,如果您想微调触发器,请转至 AWS CloudWatch > 警报并 select 您的警报。在这里您将获得更多选项来编辑您的触发器。您可以 select 阈值,例如 <=
和 >=
并添加 SNS 主题等。更多选项。
编辑和更新警报并返回到您的 Auto Scaling 组的缩放策略。您将在那里看到新的更新,同样是通俗易懂的英语,非常容易理解。
我有 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-YYYYYYYYYY
和 awseb-e-<Environment ID>-stack-AWSEBAutoScalingScaleUpPolicy-ZZZZZZZZZZ
形式的 2 项政策。对于每个策略,都会有一个 CloudWatch 警报,形式为 awseb-e-<Environment ID>-stack-AWSEBCloudwatchAlarm***-AAAAAAAAAA
,与触发器相关联。
然后,如果您想微调触发器,请转至 AWS CloudWatch > 警报并 select 您的警报。在这里您将获得更多选项来编辑您的触发器。您可以 select 阈值,例如 <=
和 >=
并添加 SNS 主题等。更多选项。
编辑和更新警报并返回到您的 Auto Scaling 组的缩放策略。您将在那里看到新的更新,同样是通俗易懂的英语,非常容易理解。