2

使用最新的 Robo 3T 和 AWS 提供的命令行

mongodb://<dbname>:<insertYourPassword>@example-db.cluster-c2e1234stuff0e.eu-west-2.docdb.amazonaws.com:27017

我得到这个错误:

原因:SSL 隧道故障:网络不可达或 SSL 连接被服务器拒绝。原因:连接失败

我也尝试过遵循演练,但没有任何乐趣。

我已经读到可以通过 SSH 连接到同一 VPC 上的 EC2 实例并以这种方式访问​​ documentdb,但理想情况下,我希望直接访问它而不为额外的 EC2 实例付费。如果我有这个权利?

我也尝试过通过 Mongo shell 并得到以下响应:

Error: couldn't connect to server example-db.cluster-c2eblahblaho0e.eu-west-2.docdb.amazonaws.com:27017, connection attempt failed: NetworkTimeout: Error connecting to example-db.cluster-c2eblahblaho0e.eu-west-2.docdb.amazonaws.com:27017 (<IP address>) :: caused by :: Socket operation timed out :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
4

1 回答 1

1

我怀疑正在发生的事情是,要么您在与 DocumentDB 集群相同的 VPC 中没有 EC2 实例,要么您的笔记本电脑无法访问 EC2 实例。我首先使用 SSH 连接到 EC2 实例以建立连接,然后使用该 EC2 实例从 Robo3T 连接到 SSH 代理。

就上下文而言,部署在 VPC 中的 Amazon DocumentDB 集群可以由部署在同一 VPC 中的 EC2 实例或其他 AWS 服务直接访问。此外,同一区域或其他区域的不同 VPC 中的 EC2 实例或其他 AWS 服务可以通过 VPC 对等访问 Amazon DocumentDB。

在 VPC 中部署集群的优势在于 VPC 为 Internet 提供了强大的网络边界。从笔记本电脑连接到 DocumentDB 的一种常见方法是在与 DocumentDB 集群相同的 VPC 中创建一个 EC2 实例,并通过该 EC2 实例通过 SSH 隧道连接到您的集群:https ://docs.aws.amazon.com/documentdb/latest /developerguide/connect-from-outside-a-vpc.html

为了最大限度地降低本地开发成本,请从最小的 EC2 实例大小开始,并在不使用集群时利用启动/停止功能。

DocumentDB 也可以这样做。在开发时,您可以通过在不再需要集群时停止集群来节省实例成本:https ://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html

另一种方法是使用 AWS Cloud9:https ://docs.aws.amazon.com/documentdb/latest/developerguide/connect-with-cloud9.html 。此解决方案仍需要与您的 Amazon Document 在同一 VPC 中的 EC2 实例。该解决方案的有用之处在于,Cloud9 提供了一种机制,可以在 EC2 实例空闲 30 分钟时自动关闭它,以帮助节省成本。

于 2019-08-11T14:04:18.177 回答