Amazon-Ec2

AWS 彈性負載均衡器不會減少警報觸發器的實例

  • March 20, 2012

我有一個負載均衡器,我為其創建了一個自動縮放組和啟動配置。我創建了最小大小為 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 個實例。

大概您的自動縮放組SBMAutoScaleGroup沒有完全按照需要進行配置 - 您是否仔細檢查了CreateAutoScalingGroup的結果?有關執行此操作的簡單方法,請參見使用警報和負載平衡的 Auto Scaling頁上的命令行工具範例部分中的範例 7 :

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

結果表應顯示MIN-SIZEMIN-SIZEDESIRED-CAPACITY的所需值。

同樣,您可能想要驗證策略是否已正確附加:

as-describe-policies SBMAutoScaleGroup

結果表應列出您的 Auto Scaling 策略SBMScaleDownPolicy以及所需的ADJUSTMENTTYPECOOLDOWN值。

在Auto Scaling with Alarms and Load Balancing頁面上的命令行工具範例as-put-scaling-policy部分的範例 5 中提到了可能失敗的可能原因,其中強調了使用 Windows 命令行時的特定要求:

如果您使用的是 Windows,請將 –adjustment 參數括在引號中:“–adjustment=-1”。

引用自:https://serverfault.com/questions/368687