Amazon ec2 从ELB到其中一个自动缩放实例没有流量

Amazon ec2 从ELB到其中一个自动缩放实例没有流量,amazon-ec2,amazon-web-services,amazon-elb,Amazon Ec2,Amazon Web Services,Amazon Elb,我们使用自动缩放,对我们来说效果很好,但今天早上它出了点问题。 由于某种原因,其中一个实例的CPU利用率约为%0,这将%100的CPU利用率带到同一可用性区域中的其余实例,并且它没有扩展,因为所有实例的平均CPU利用率约为%70,而触发器应在命中%80时启动新实例。也使用ELB实例运行状况检查,但此%0实例运行状况良好 是否可以配置自动缩放以删除此类实例? 我们不想为检查设置任何自定义作业 更新2 是否可以配置自动缩放以删除此类实例 是的,见下文-根据您的评论,您已经正确地完成了这项工作 我们不

我们使用自动缩放,对我们来说效果很好,但今天早上它出了点问题。
由于某种原因,其中一个实例的CPU利用率约为%0,这将%100的CPU利用率带到同一可用性区域中的其余实例,并且它没有扩展,因为所有实例的平均CPU利用率约为%70,而触发器应在命中%80时启动新实例。也使用ELB实例运行状况检查,但此%0实例运行状况良好

是否可以配置自动缩放以删除此类实例? 我们不想为检查设置任何自定义作业

更新2 是否可以配置自动缩放以删除此类实例

是的,见下文-根据您的评论,您已经正确地完成了这项工作

我们不想为检查设置任何自定义作业

鉴于您的配置显然是正确的(这意味着自动缩放和/或ELB存在各自的问题),恐怕无法通过主动关闭未使用的实例或促进设置为实例的运行状况来避免定制解决方案,正如我在下面的初步回答中所建议的那样,tribalcrossing的回答也建议了前者,这似乎解决了您的情况:

我们运行每5分钟触发一次的cronjob来扫描所有 ELB中的服务器,以检查它是否已运行超过5天 分钟,这是不健康的。当我们找到一个,我们就把它关掉。我们已经 hadd发布的“死亡”实例卡在ELB中并被丢弃 监控触发自动缩放操作的指标,以及 已经为我们解决了这个问题


更新1
也使用ELB实例运行状况检查,但此%0实例已被删除 健康的

您所指的健康指标是什么?您是如何得出实例健康的结论的

必须认识到,自动缩放和ELB测量健康实例的方式不同,请参见alighafour对以下内容的回应:

ELB在应用层进行检查,而自动缩放在应用层进行检查 机器层

AWS团队对相关问题(实际上解决了一个相反的问题)的回答中进一步详细说明了这种差异:

Autoscaling关注的是实例的运行状况—他们将获取一个实例 如果数据显示实例不健康,则关闭。他们会拿走的 此时它将退出ELB,然后关闭实例

另一方面,ELB正在通过 读取文件或连接端口。如果应用程序 如果某些检查失败,实例将继续运行, 但ELB不会向其发送任何新流量。厄尔巴鄂河继续向东延伸 执行运行状况检查-如果应用程序实例变得正常 同样,它将开始向它发送流量ELB不会删除 来自ELB注册的实例-它只是停止发送 直到恢复健康为止。[我的重点]

结论 上面提到的场景似乎确实适用于您的体验:ELB停止向您的实例发送流量,因为ELB运行状况检查失败,而自动缩放运行状况检查没有发现实例本身的问题;例如,如果ELB运行状况检查探测Apache服务的网页,而该网页由于任何原因(例如Apache崩溃或其他原因)都无法响应,则可能会发生这种情况

解决方案 您需要配置自动缩放策略,使其运行状况决策同时基于EC2运行状况状态和ELB运行状况状态,如创建弹性负载平衡的运行状况检查一节所述:

默认情况下,自动缩放使用AmazonEC2健康状态作为所有 自动缩放托管实例。也可以使用弹性载荷 平衡器的运行状况检查,设置组的HealthCheckType属性 至ELB:

%as更新自动缩放组myGroup–-健康检查类型ELB

有了这个配置,一旦ELB健康检查失败,实例将被视为不健康,并将相应地被替换


初步答复 一个自动缩放组可以有多个触发器吗

不幸的是,没有,请参见AWS团队对以下内容的回复:

不幸的是,自动缩放服务只允许每自动一个触发器 缩放组,因此我们不支持为 此时模板中的同一组

另一种方法是通过as set实例运行状况实施自定义解决方案,如以下内容中的“自定义运行状况检查”一节所述:

如果您有自己的健康检查系统,您可以将其与 自动缩放。使用SetInstanceHealth发送实例的运行状况 信息直接从您的系统自动缩放


但我已经成功地添加了一个缩小策略,并为其指定了度量。我不确定这是否有帮助,因为自动缩放将终止最旧的实例,并且无法保证%0已删除一个实例。你能为我们检查一下为什么实例Id没有带来流量吗?@RomanNewaza:请参阅我的更新答案,以了解可能发生的情况的分析和相应的配置调整。“也使用ELB实例健康检查,但此%0实例是健康的。”-这意味着我们也使用ELB健康检查:健康检查:ELB