![AWS Elastic 负载均衡器不会减少来自警报触发器的实例](https://linux22.com/image/578240/AWS%20Elastic%20%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E4%B8%8D%E4%BC%9A%E5%87%8F%E5%B0%91%E6%9D%A5%E8%87%AA%E8%AD%A6%E6%8A%A5%E8%A7%A6%E5%8F%91%E5%99%A8%E7%9A%84%E5%AE%9E%E4%BE%8B.png)
我有一个负载均衡器,我为其创建了自动缩放组和启动配置。我创建的自动缩放组的最小大小为 1,最大大小为 20。我有一个缩减策略:
as-put-scaling-policy SBMScaleDownPolicy --auto-scaling-group SBMAutoScaleGroup --adjustment=-1 --type ChangeInCapacity --cooldown 300
然后我设置了一个闹钟:
mon-put-metric-alarm SBMLowCPUAlarm --comparison-operator LessThanThreshold --evaluation-periods 1 --metric-name CPUUtilization --namespace "AWS/EC2" --period 600 --statistic Average --threshold 35 --alarm-actions arn:aws:autoscaling:us-east-1:policystuffhere:autoScalingGroupName/SBMAutoScaleGroup:policyName/SBMScaleDownPolicy --dimensions "AutoScalingGroupName=SBMAutoScaleGroup"
当 10 分钟内的平均 CPU 使用率低于 35 时,CloudFront 中的警报会显示为“处于警报状态”,但不会减少实例数量。此外,如果只有一个实例在运行,即使没有触发扩展警报,它也会将另一个实例加速到 2 个。似乎默认值不知何故设置为 2。我该如何更改?
答案1
可能的原因是,您启用了多个可用区域,并确保每个区域中至少有 1 个实例。
答案2
大概是你的自动缩放组SBMAutoScale组未按预期配置 - 您是否仔细检查过创建AutoScalingGroup? 参见第节中的示例 7命令行工具示例在页面上具有警报和负载平衡的自动扩展一个简单的方法可以做到这一点:
as-describe-auto-scaling-groups SBMAutoScaleGroup --headers
结果表应显示所需值最小尺寸,最小尺寸和所需容量。
同样,您可能想要验证该策略是否已正确附加:
as-describe-policies SBMAutoScaleGroup
结果表应列出您的自动扩展策略SBM缩减政策具有所需的值调整,类型和冷却。
as-put-scaling-policy
在本部分的示例 5 中提到了可能失败的原因命令行工具示例在页面上具有警报和负载平衡的自动扩展,强调了使用 Windows 命令行时的特定要求:
如果您使用的是 Windows,请将 --adjustment 参数括在引号中:“--adjustment=-1”。
答案3
搞定了。我手动将第一个实例添加到负载均衡器。删除该实例后,一切正常。