AWS错误:这些可用区中没有一个包含健康目标。请求被路由到所有目标。在AWS中

时间:2017-02-07 09:34:13

标签: amazon-web-services amazon-ec2

我在Aws中创建了一个应用程序负载平衡。 我创建了2个EC2并将它们组成一个组。 之后,我将该组添加到具有侦听器80的ALB。

但是当系统进行健康检查时,它会给出错误并显示两个注册的EC2不健康。

错误是:

  

这些可用区中没有一个包含健康目标。要求   被送到所有目标。

     

可用区域:    subnet-5691df0f - ap-northeast-1c,    subnet-97ae35e1 - ap-northeast-1a

请让我知道原因。

AWS Related image

AWS Related image2

6 个答案:

答案 0 :(得分:6)

检查目标组中的健康检查参数是否已正确配置

协议和端口应指向响应头返回200 ok

的内容

屏幕截图 target group settings

另外,检查您的EC2健康检查是否正常,您添加到Alb的子网应至少有1个Ec2运行任何这些子网,

检查安全组还应该允许ALB查找EC2

AwS link 3https://i.stack.imgur.com/TEOnU.gif] 2

AWS Link 4

答案 1 :(得分:4)

我遇到了这个问题,并且还收到504网关超时,最终成为了the documentation中的这个缺失规则。

  1. 通过https://console.aws.amazon.com/ec2/打开Amazon EC2控制台。

  2. 在左侧导航中,选择“安全组”。

  3. 选择您的容器实例使用的安全组。如果您使用Amazon ECS首次运行向导创建了容器实例,则此安全组可能具有ECS允许的端口说明。

  4. 选择“入站”选项卡,然后选择“编辑”。

  5. 对于类型,选择所有流量。

  6. 对于“源”,选择“自定义”,然后键入在“配置安全组”中创建的Application Load Balancer安全组的名称。该规则允许来自您的应用程序负载平衡器的所有流量到达您在负载平衡器中注册的任务中的容器。

  7. 选择“保存”以完成操作。

答案 2 :(得分:1)

大家好,我刚刚遇到了相同的问题,解决方案是ALB(应用程序负载平衡器)本身中的设置

确保ALB AZ与您的实例AZ相匹配,这是该设置的屏幕截图。我正在为我们的实例使用us-east-1a和us-eas-1e。因此,我的AZ的ALB设置应与此匹配,请单击“编辑子网”按钮以在ALB上编辑您的AZ

enter image description here

答案 3 :(得分:0)

在学习为EC2实例设置负载均衡器时遇到了类似的问题。

事实证明,在“目标组”下:

“运行状况检查”选项卡下的“路径”未注册,尽管它显示了正确的值“ /”。

因此,我只是将路径值(通过单击“编辑运行状况检查”编辑)编辑为“ /”,然后再次保存,以便系统可以注册该值。 (您也可以先将其保存为其他值,例如“ / health”,然后再将其保存回“ /”)

这似乎解决了我的问题。

答案 4 :(得分:0)

确保在负载均衡器和目标之间的安全组级别允许通信。

从AWS https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-update-security-groups.html

  

您必须确保您的负载均衡器可以与侦听器端口和运行状况检查端口上的注册目标进行通信,还必须验证与负载均衡器关联的安全组是否都允许新端口中的流量通过指示。

例如,如果您在安全组sg-001中有一个PUBLIC FACING负载均衡器,而在另一个安全组sg-002中有三个EC2目标,则描述需求规则的简单方法如下:

enter image description here

答案 5 :(得分:0)

只需点击负载均衡器描述下的编辑子网即可添加新的可用区。