【发布时间】: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