首页 文章

AWS Load Balancer EC2运行状况检查请求超时失败

提问于
浏览
11

我'm trying to get down and dirty with DevOps and I' m遇到 Health 检查请求超时失败 . 问题是我的Elastic Load Balancer向我的EC2实例发送运行状况检查并获得网络超时 . 我不确定我做错了什么 . 我正在关注this tutorial并完成了包括"Using a Elastic Load Balancer"在内的所有步骤 . 我的EC2实例似乎工作正常,我能够在EC2实例中成功地在端口9292上卷曲localhost .

EC2实例安全组设置:
description

弹性负载均衡器设置:
enter image description here

我的ELB路由目标组通过HTTP打开端口9292,这是我的目标组中目标组的目标屏幕截图,它不 Health .
enter image description here

Health 检查配置:
enter image description here

我有一个VPC,我的EC2实例是其中的一部分,我的ELB连接到同一个VPC . 我没有安装Apache,也没有安装nginx . 据我了解,我不需要这些 . 我有一个Rails Puma服务器正在运行,我可以将成功的curl请求发送到服务器 .

我的预感是我的ELB不允许到达我的EC2实例,导致网络超时和 Health 状况检查失败 . 我无法找到原因 . 有任何想法吗?这SO post没有多大帮助 . 我的安全组是否配置错误?还有什么可能阻止从ELB到我的EC2实例的路由请求?

另外,有没有办法查看我的EC2实例的网络请求/日志?我一直看到VPC流量记录,但我觉得有更简单的替代品 .

Here's something我在AWS论坛上发布但无济于事 .

更新:我可以从EC2实例中精确地卷曲目标的私有IP . 我认为这不是目标实例,我认为这与安全组设置有关 . 我无法确定原因,因为我基本上允许从Load Balancer到EC2实例的所有流量 .

1 回答

  • 4

    我在“设置您的VPC”步骤中犯了我的错误 . 我完成了为RDS实例创建子网 . 我开始启动一个实例,当我切换到我的VPC时,AWS选择的默认子网是我为RDS制作的子网,它不是公共子网 . 因此,任何来自任何EC2实例或我的负载均衡器的尝试都无法访问它,因为我只设置了我的公共子网来接收请求 .

    解决方案是创建一个新实例,这一次,选择正确的 public 子网 . 当负载均衡器指向公有子网时,我的原始EC2实例与私有子网关联 .

    这是a link到一个手绘图像,帮助我指出我的问题,希望可以帮助其他人直接放置图像,因为它超过2MB .

    很高兴回答任何进一步的问题!

相关问题