其中之一是对多个请求进行负载测试,并且正如预期的那样,自动缩放开始创建多个实例。然而,尽管请求计数现在运行得非常低,但我发现我无法永久终止额外的实例,因为它们不断被重新创建。
额外的实例出现在负载均衡器中,我可以将它们从负载均衡器中删除,但同样只是暂时的。
其中之一是对多个请求进行负载测试,并且正如预期的那样,自动缩放开始创建多个实例。然而,尽管请求计数现在运行得非常低,但我发现我无法永久终止额外的实例,因为它们不断被重新创建。
额外的实例出现在负载均衡器中,我可以将它们从负载均衡器中删除,但同样只是暂时的。
您可以通过将 Auto Scaling 所需容量设置回 1 来解决此问题(现在它为 3,这就是为什么杀死实例只会导致 Auto Scaling 再增加两个)。
为此,您需要下载 Auto Scaling CLI (http://aws.amazon.com/developertools/2535)(或者直接 PM 我,我可以为您完成)并使用 API 调用来设置所需的容量.
希望这个答案对你有帮助!!
这实际上应该自动发生。在我看来,您在 Auto Scaling 组上创建了一项策略来扩展您的实例,而没有创建一个缩减的策略。如果您不想在as-update-auto-scaling-group
每次集群向上和向下扩展时都运行该命令。
as-put-scaling-policy MyScaleUpPolicy --auto-scaling-group MyAutoScalingGroupName--adjustment=2 --type ChangeInCapacity --cooldown 600
as-put-scaling-policy MyScaleDownPolicy --auto-scaling-group MyAutoScalingGroupName--adjustment=-2 --type ChangeInCapacity --cooldown 600
这些命令中的每一个都将返回一个 ARN 资源名称。然后,您可以创建一个将执行纵向扩展和缩减策略的云监视指标。让我们在下面的两个命令中将它们称为“ARN:MyScaleUpPolicy”和“ARN:MyScaleDownPolicy”,只需将该文本替换为从as-put-scaling-policy
命令返回的值。
mon-put-metric-alarm MyHighCPUAlarm --comparison-operator GreaterThanThreshold --evaluation-periods 2 --metric-name CPUUtilization --namespace "AWS/EC2" --period 120 --statistic Average --threshold 50 --alarm-actions ARN:MyScaleUpPolicy --dimensions 'AutoScalingGroupName=MyAutoScalingGroupName'
mon-put-metric-alarm MyLowCPUAlarm --comparison-operator LessThanThreshold --evaluation-periods 2 --metric-name CPUUtilization --namespace "AWS/EC2" --period 120 --statistic Average --threshold 20 --alarm-actions ARN:MyScaleDownPolicy --dimensions 'AutoScalingGroupName=MyAutoScalingGroupName'