我在VPC外部托管了一个mongodb服务器。我可以从本地系统通过Internet直接访问它。我无法从我的私有子网中的实例连接它。我有一个NAT实例,该实例允许VPC的cidr中的所有TCP。我在路由中使用此NAT实例,目标为0.0.0.0/0,并且此NAT实例为目标。子网网络ACL允许所有流量入站和出站。在私人实例中,我尝试ping google.com和wget www.google.com,并且两者都正常工作,因此可以访问Internet。仅连接到mongodb失败,连接超时。
connection attempt failed: SocketException: Error connecting to <mongo endpoint> :: caused by :: Connection timed out
地图集上还托管了另一个mongodb服务器。也可以通过互联网将其用于任何IP。我再次能够从本地系统和默认VPC中的实例连接它,但是当尝试从私有子网中的实例访问时,也会发生相同的连接超时。私有实例中的安全组如下
Inbound
ALL TCP - source (vpc cidr)
Outbound
All traffic - desstination 0.0.0.0/0
答案 0 :(得分:0)
MongoDB连接需要两个部分:
网络连接本身。您是否可以使用应用程序实例中的私有IP连接到运行MongoDB的服务器上的ssh之类的守护程序?
正确的DNS解析。您正在使用的DNS名称解析为上一步中测试的IP吗?
使用副本集或分片群集时,RS / SC配置中提到的所有主机名(包括MongoDB节点之间的流量)也必须解析为第一步中测试的IP地址,然后才能正常工作。
答案 1 :(得分:0)
您可以参考以下文档来设置VPC对等。
-与Atlas对等的VPC对等(https://docs.atlas.mongodb.com/security-vpc-peering/) -VPC对等博客文章-(https://www.mongodb.com/blog/post/introducing-vpc-peering-for-mongodb-atlas) -MongoDB Atlas-(https://www.mongodb.com/blog/post/cidr-subnet-selection-for-mongodb-atlas)的CIDR子网选择
但是,如果在设置VPC时仍然遇到问题,请提供您的AWS VPC CIDR范围,子网范围,路由表和任何NACL规则的屏幕截图。 然后,在尝试建立VPC对等连接的主机上提供ping和nslookup输出。