自动缩放:实例突然启动和终止 [AWS]

Autoscaling: Instance starts and terminates abruptly [AWS]

我正在尝试创建一个完整的系统(使用 AWS CLI),自动缩放是其中的一部分。

当我添加自动缩放组时,实例启动,但在 5 分钟的冷却时间(默认冷却时间)后,实例自动终止,并且这个循环不断重复,尽管我的阈值 <= 0% CPU RemoveCapacity 策略的利用率。我无法理解为什么会这样?

下面是我 运行 创建所有相关资源的命令。

自动缩放组:

aws autoscaling create-auto-scaling-group --auto-scaling-group-name AWS-CoE-1-AutoScalingGroup --launch-configuration  AWS-CoE-1-AS-launch-config --max-size 3 --min-size 1 --desired-capacity 1 --health-check-type ELB --load-balancer-names AWS-CoE-1-LoadBalancer --health-check-grace-period 120 --vpc-zone-identifier subnet-153f2d53

横向扩展策略

aws autoscaling put-scaling-policy --policy-name aws-coe-scaleout-policy --auto-scaling-group-name AWS-CoE-1-AutoScalingGroup --scaling-adjustment 1 --adjustment-type ChangeInCapacity

政策规模

aws autoscaling put-scaling-policy --policy-name aws-coe-scalein-policy --auto-scaling-group-name AWS-CoE-1-AutoScalingGroup --scaling-adjustment -1 --adjustment-type ChangeInCapacity

云观察 :向 AddCapacity 发出警报

aws cloudwatch put-metric-alarm --alarm-name AddCapacity --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 120 --threshold 80 --comparison-operator GreaterThanOrEqualToThreshold --dimensions "Name=AutoScalingGroupName,Value=AWS-CoE-1-AutoScalingGroup"   --evaluation-periods 2 --alarm-actions arn:aws:autoscaling:us-west-1:132895064974:scalingPolicy:03ff8c7b-cf7c-4d9b-970c-be7f4884415d:autoScalingGroupName/AWS-CoE-1-AutoScalingGroup:policyName/aws-coe-scaleout-policy

云观察 :删除容量的警报

aws cloudwatch put-metric-alarm --alarm-name RemoveCapacity --metric-name CPUUtilization --namespace AWS/EC2  --statistic Average --period 120 --threshold 0 --comparison-operator LessThanOrEqualToThreshold  --dimensions "Name=AutoScalingGroupName,Value=AWS-CoE-1-AutoScalingGroup" --evaluation-periods 2  --alarm-actions arn:aws:autoscaling:us-west-1:132895064974:scalingPolicy:6b3d9ba4-b4a9-472e-95f6-31fc0772ec33:autoScalingGroupName/AWS-CoE-1-AutoScalingGroup:policyName/aws-coe-scalein-policy

而且我的警报状态在实例的整个启动和终止过程中保持 OK

当实例上线时,它必须通过 ELB 健康检查,否则将被自动缩放终止。您的启动配置是否包含 bootstrap 实例自身的用户数据,或者您启动的 AMI 是否自动启动 Web 服务?如果不是,您需要配置它以便自动缩放认为实例是健康的。

参考AWS docs on ELB health checks.