EC2 托管在两个 TG 中 - 一个健康,一个不健康

问题描述 投票:0回答:1

我有一个 EC2 实例,正在运行 Web 服务器。它正在运行,我可以连接。

现在,它位于 ALB 后面,该 ALB 将流量转发到 TG,该 TG 将此 EC2 实例作为其唯一注册目标。目标组报告 EC2 实例运行状况良好,一切都很好。该 ALB 附加了必要的证书,以便我可以使用 HTTPS 浏览。

不幸的是,这个LB位于公共互联网上,我不再希望这个主机可以公开访问。

我想首先在我们的内部网络(即不同的负载均衡器上)上使用它,然后再从公共负载均衡器中删除路由规则(或目标组)。

因此,换句话说,可以通过两个单独的 LB 访问该主机 - 一个是公共的,一个是私有的。

因此,我创建了另一个目标组,具有相同的设置,并将 EC2 实例添加到第二个组中。

仅在这个新组中,主机的状态报告为不健康 - “请求超时”。

我已经仔细检查了健康检查规则(两个目标组都相同),并使用

curl
我能够从端口 80 获得响应(即
curl http://private-ip:80/api/
返回
HTTP/1.1 200 OK
),另外,正如我提到的,原TG中,主机显示为“healthy”。

我确信我错过了一些明显的东西......但现在,它正在逃避我......

EDIT00:EC2 实例设置为允许端口 80 和 443 上的入站请求。

EDIT01:我原以为我已将其设置为允许所有入站(

0.0.0.0/0
),但显然附加的安全组还不够。感谢Mark B为我指明了正确的方向。

amazon-web-services amazon-ec2 amazon-vpc aws-application-load-balancer
1个回答
0
投票

TL;博士; EC2 实例上定义的安全组不足以允许来自新 ALB 的流量。

一旦我被指向正确的方向,我(临时)添加了一个安全组,允许来自任何来源的端口 80/443。

一旦我应用了该方法并且两个 ALB 的运行状况检查都成功,这就是我的答案。

虽然不想让 EC2 实例保持开放状态,但我获取了新 ALB 的 IP 地址并修改了 SG 规则以仅允许这些 IPv4 地址上的入站 80/443。

如果您需要获取 ALB 的 IP 地址,请转到此处

© www.soinside.com 2019 - 2024. All rights reserved.