【问题标题】:Attempting to reach AWS Network Load Balancer leads to timeout尝试访问 AWS 网络负载均衡器会导致超时
【发布时间】:2020-08-19 13:25:12
【问题描述】:

我在 VPC 中设置了一个内部(不面向 Internet)的 NLB。 NLB 路由到仅包含一个目标的目标组,并且运行状况检查成功。

但是,我无法使用 NLB 的 DNS 进行 JDBC 调用。 NLB 在端口 10000 上有一个侦听器,我有 EC2 实例在同一个 VPC 中运行应用程序。当这些 EC2 实例尝试对 jdbc:hive2://nlb-dns-name.com:10000/orchard 进行 JDBC 调用时,它们会超时尝试连接。我已登录 EC2 实例并尝试 ping NLB DNS 记录,但也超时。

如果我在这里忽略了一些明显的东西,请告诉我。谢谢!

编辑:EC2 实例的安全组允许所有出站流量到同一 VPC。 NLB 目标的 SG 允许入站流量,并且运行状况检查正在通过。 NLB 监听 10000 端口并路由到包含一个 EMR 集群的主节点的目标组,该集群监听 10000 端口上的 JDBC 连接。

但是,我有理由确定错误不在 NLB -> 目标路由中,因为运行状况检查通过了。我相信错误在实例中 -> NLB 由于超时,我不确定我是否正确地执行了该部分。

【问题讨论】:

  • 由于 NLB 没有安全组,您能否提供有关如何为实例设置 SG 的详细信息?还有 NLB 侦听器和目标组的详细信息。
  • 会做,我会在帖子里补充的
  • 您能否澄清一下您是如何调用 JDBC 的?您是从 NLB 后面的实例调用 NLB 吗?因此,您正在尝试执行以下操作:EC2 实例->NLB->相同的 EC2 实例?
  • 不,我在做 EC2 实例 -> NLB -> EMR 集群的主节点。我正在尝试打开从 EC2 实例到 jdbc:hive2://nlb-dns-name.com:10000/orchard 的 Java SQL 连接。以前,我路由到 jdbc:hive2://{EMR cluster master's public DNS}:10000/orchard 并且这有效,但现在为了使路由更容易并且不必对 EMR 主公共 DNS 进行硬编码,我希望连接通过NLB。
  • 是的,将实例与目标组分开,但在同一个 VPC 内。

标签: amazon-web-services networking jdbc amazon-ec2 nlb


【解决方案1】:

意识到我从未发布过更新:问题是我通过实例 ID 添加目标。由于某种原因,当我通过 IP 地址添加它们时,连接开始成功。

【讨论】:

  • 您发现按实例 ID 添加和按 IP 地址添加之间存在差异的最可能原因是安全组在两种情况下的工作方式不同:当您按实例 ID 添加目标时,目标的安全组需要允许来自客户端的连接(在这种情况下,NLB 有点“透明”:网络规则可以“通过”它查看连接的真实来源),而当您通过 IP 地址添加目标,目标的安全组需要允许来自 NLB 的连接。
猜你喜欢
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 2019-12-30
  • 2021-12-04
  • 2021-07-16
  • 2017-09-30
  • 2018-03-14
  • 2021-01-10
相关资源
最近更新 更多