我正在创建一个面向互联网的经典负载均衡器(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秒,同时警报是警报还是其他任何问题?
由于
答案 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需要能够访问这个端口。您的安全组是否允许这样做?