使用 VPC 对等连接跳转到 MongoDB Atlas
Jump box to MongoDB Atlas with VPC Peering
我有一个 Mongodb Atlas 数据库,该数据库设置有与 AWS 中的 VPC 对等的 VPC。这可以找到并且我能够从 VPC 内部访问它。然而,我希望提供一个 jumpbox,以便开发人员可以使用 SSH 隧道从他们在 VPC 之外的工作站连接到 Atlas 数据库。
Developer workstation --> SSH Tunnel to box in VPC --> Atlas
我遇到了麻烦,但是因为我不确定我需要设置什么隧道。在我看来,Mongo 通过在 DNS 种子列表 (mongodb+srv://) 中查找副本信息进行连接。所以它并不像做
那么简单
ssh user@jumpbox -L 27017:env.somehost.mongodb.net:27017
有没有办法在 Atlas 上启用直接连接,以便我可以让开发人员通过 SSH 隧道访问此数据库?
对于副本集连接,仅 MongoDB 和驱动程序无法正常工作,但您可以尝试 运行 在 jumpbox 上使用 https://github.com/coinbase/mongobetween 等代理。
对于独立部署,您可以通过隧道连接,因为驱动程序使用您提供的地址,仅此而已。使用 directConnection
URI 选项强制独立连接到任何部署的节点。虽然这允许您连接到任何节点,但您必须连接到副本集的正确节点(您不能写入辅助节点),因此这种方法对副本集部署的实用性有限。
对于不在 Atlas 上的 mongos 部署,适用独立行为。使用 Atlas 时,驱动程序 follows 发布了 SRV 记录,因此出于隧道目的,Atlas 分片集群的行为就像一个副本集,您不能简单地代理到它的连接。 mongobetween 在这种情况下也可以工作。
我有一个 Mongodb Atlas 数据库,该数据库设置有与 AWS 中的 VPC 对等的 VPC。这可以找到并且我能够从 VPC 内部访问它。然而,我希望提供一个 jumpbox,以便开发人员可以使用 SSH 隧道从他们在 VPC 之外的工作站连接到 Atlas 数据库。
Developer workstation --> SSH Tunnel to box in VPC --> Atlas
我遇到了麻烦,但是因为我不确定我需要设置什么隧道。在我看来,Mongo 通过在 DNS 种子列表 (mongodb+srv://) 中查找副本信息进行连接。所以它并不像做
那么简单ssh user@jumpbox -L 27017:env.somehost.mongodb.net:27017
有没有办法在 Atlas 上启用直接连接,以便我可以让开发人员通过 SSH 隧道访问此数据库?
对于副本集连接,仅 MongoDB 和驱动程序无法正常工作,但您可以尝试 运行 在 jumpbox 上使用 https://github.com/coinbase/mongobetween 等代理。
对于独立部署,您可以通过隧道连接,因为驱动程序使用您提供的地址,仅此而已。使用 directConnection
URI 选项强制独立连接到任何部署的节点。虽然这允许您连接到任何节点,但您必须连接到副本集的正确节点(您不能写入辅助节点),因此这种方法对副本集部署的实用性有限。
对于不在 Atlas 上的 mongos 部署,适用独立行为。使用 Atlas 时,驱动程序 follows 发布了 SRV 记录,因此出于隧道目的,Atlas 分片集群的行为就像一个副本集,您不能简单地代理到它的连接。 mongobetween 在这种情况下也可以工作。