AWS自动缩放组运行状况检查类型:ELB还是EC2?

时间:2017-01-03 10:52:12

标签: amazon-web-services amazon-ec2 aws-sdk autoscaling

我正在创建一个面向互联网的经典负载均衡器(CLB),配置如下

Connection Draining:Enabled, 300 seconds

health check configuration 
Ping Target 
TCP:22
Timeout 5 seconds
Interval    30 seconds
Unhealthy threshold 2
Healthy threshold   10

并使用以下配置将此CLB与自动缩放组(ASG)相关联

Desired: 2
Availability Zone(s) : us-east-1a, us-east-1c
Min:2
Subnet(s) : subnet-0ab1df27,subnet-5dc8af06
Max: 20
Health Check Type: ELB
Health Check Grace Period: 300
Default Cooldown:300

以下是ASG附带的扩展政策

增加实例的策略

  

在以下情况下执行策略: aws-ec2-alarm-CPU-high-utilization
   违反警报阈值:CPUUtilization> = 70连续2个300秒的时间段    对于度量维度自动缩放群组名称= 演示自动缩放群组
  采取行动:添加1个实例
  然后等待 300秒再允许其他扩展活动

减少实例的策略

  

执行以下时间的策略: aws-ec2-alarm-CPU-low-utilization
  违反警报阈值:CPUUtilization< = 30连续2个300秒的时间段度量维度= demo-auto-scaling-group
  采取行动:删除1个实例
  然后等待 300秒,然后再允许其他扩展活动

但是上面的配置实例是在不使用CPU的情况下同时创建和终止?

以下是ASG的活动历史记录标签

  

描述:DescriptionLaunching一个新的EC2实例:   i-0768deac4d37591eb原因:原因:2017-01-03T10:11:42Z一个实例是   开始响应期望和实际之间的差异   容量,容量从1增加到2。

     

描述:描述终止EC2实例:i-0768deac4d37591eb   原因:原因:2017-01-03T10:19:02Z一个实例被取出   服务以响应ELB系统健康检查失败。

同样在ELB页面上,实例选项卡列出了实例,但状态始终显示为OutOfService并带有信息

  

“实例至少失败了UnhealthyThreshold健康状况   连续检查。“

但如果我将健康检查类型:从 ELB更改为EC2 ,那么一切运作良好;没有多个实例创建/终止

但是Here in this article我读到ELB健康检查比EC2更好,因为它检查下面的EC实例健康状况;

-

请告诉我,我在这里做错了什么;可能是一段时间的问题?因为我正在创建2个实例,默认的冷却时间是300秒,同时警报是警报还是其他任何问题?

由于

2 个答案:

答案 0 :(得分:2)

问题在于负载均衡器的配置。改变如下:

Timeout 30 seconds
Interval 60 seconds
Unhealthy threshold 10
Healthy threshold 2

答案 1 :(得分:2)

使用ELB运行状况检查时,Auto Scaling组将依赖ELB运行状况检查来确定实例是否健康。看起来ELB运行状况检查失败,导致ASG终止实例并启动新实例。

您确定正确配置了ELB运行状况检查吗?看起来你正在检查端口22. ELB需要能够访问这个端口。您的安全组是否允许这样做?