AWS Elastic Load Balancer不会从Alarm Trigger中减less实例

我有一个负载平衡器,我创build了一个自动缩放组和启动configuration。 我创build了最小尺寸为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中,警报显示为“处于警报状态”,但不会减less实例数量。 另外,如果只有一个实例运行,即使没有命中放大警报,它也会将另一个实例旋转到2。 似乎默认值只是设置为2。 我怎样才能改变这个?

可能的原因是您启用了多个可用区,并且确保每个区域中至less有一个实例。

推测你的自动缩放组SBMAutoScaleGroup没有完全按照需要configuration – 你检查了CreateAutoScalingGroup的结果吗? 请参阅“ Auto Scaling with Alarms and Load Balancing ”一节中的“ 命令行工具示例”一节中的示例7,以便您轻松完成此操作:

 as-describe-auto-scaling-groups SBMAutoScaleGroup --headers 

结果表格应显示最小尺寸最小尺寸和期望容量的所需值。

同样,您可能需要validation策略是否已正确连接:

 as-describe-policies SBMAutoScaleGroup 

结果表格应该列出您的自动缩放策略SBMScaleDownPolicy,其中包含所需的ADJUSTMENTTYPECOOLDOWN值

示例5中提到了as-put-scaling-policy可能失败的一个可能原因as-put-scaling-policy在使用警报和负载平衡的Auto Scaling页上的命令行工具示例部分中强调了使用Windows命令行时的特定要求:

如果您使用Windows,请将–adjustment参数用引号括起来:“–adjustment = -1”。

弄清楚了。 我已经手动将第一个实例添加到负载平衡器。 删除后,一切按预期运作。