我在VPC中设置了一个内部(不面向互联网)的NLB,该NLB路由到只有一个目标的目标组,并且健康检查成功。NLB路由到一个只包含一个目标的目标组,健康检查也很成功。
然而,我无法使用NLB的DNS进行JDBC调用。NLB在端口10000上有一个监听器,我有EC2实例在同一个VPC中运行一个应用程序。当这些EC2实例试图向jdbc:hive2:/nlb-dns-name.com:10000orchard进行JDBC调用时,它们在尝试连接时超时。我已经登录EC2实例并尝试ping NLB DNS记录,也会超时。
如果我在这里忽略了一些明显的东西,请让我知道。谢谢您
编辑:EC2实例的安全组允许所有出站流量到同一个VPC。NLB的目标的SG允许入站流量,健康检查通过。NLB在端口10000上监听并路由到包含一个EMR集群的主节点的目标组,该目标组在端口10000上监听JDBC连接。
然而,我有理由确信错误不在NLB -> 目标路由中,因为健康检查通过了。我相信错误是在实例-> NLB中,因为超时,我不确定我做的那部分是否正确。
NLB将使用EC2安全组来评估流量。请确保源 IP 地址在 NLB 安全组中被列入白名单。
此外,请确保你启用了跨区负载平衡,否则你可能会击中一个没有实例的目标AZ,因此会挂起。