从 Amazon VPC 外部连接到 Amazon DocumentDB 集群 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 Amazon VPC 外部连接到 Amazon DocumentDB 集群

Amazon DocumentDB(兼容 MongoDB)集群在 Amazon Virtual Private Cloud (Amazon VPC) 中部署。它们可以由 Amazon EC2 实例或其他实例直接访问Amazon部署在同一 Amazon VPC 中的服务。此外,EC2 实例或其他实例可以访问 Amazon DocumentDBAmazon在同一 VPC 中使用的服务Amazon Web Services 区域或者通过 VPC 对等互连进行其他区域。

但是,假设您的使用案例要求您(或您的应用程序)从集群的 VPC 外部访问您的 Amazon DocumentDB 资源。在这种情况下,您可以使用 SSH 隧道(也称为端口转发) 以访问您的 Amazon DocumentDB 资源。

深入讨论 SSH 隧道超出了本主题的范围。有关 SSH 隧道的更多信息,请参阅以下内容:

要创建 SSH 隧道,您需要一个与 Amazon DocumentDB 集群在同一 Amazon VPC 中运行的 Amazon EC2 实例。您可以使用同一 VPC 中的现有 EC2 实例作为集群,或创建一个集群。有关更多信息,请参阅适合您的操作系统的主题:

您可能通常会使用以下命令连接到 EC2 实例:

ssh -i "ec2Access.pem" ubuntu@ec2-34-229-221-164.compute-1.amazonaws.com

如果是这样,您可以设置到 Amazon DocumentDB 集群的 SSH 隧道。sample-cluster.node.us-east-1.docdb.amazonaws.com在本地计算机上运行以下命令。-L 标志用于转发本地端口。使用 SSH 隧道时,我们建议您使用集群终端节点连接到集群,而不要尝试以副本集模式(即在连接字符串中指定 replicaSet=rs0)进行连接,因为这会导致错误。

ssh -i "ec2Access.pem" -L 27017:sample-cluster.node.us-east-1.docdb.amazonaws.com:27017 ubuntu@ec2-34-229-221-164.compute-1.amazonaws.com -N

创建 SSH 隧道后,您发布到的任何命令localhost:27017被转发到 Amazon DocumentDB 集群sample-cluster在 Amazon VPC 中运行。如果在 Amazon DocumentDB 群集上启用了传输层安全性 (TLS),则需要从下载 Amazon DocumentDB 的公钥 . 以下操作将下载此文件:

wget https://s3.cn-north-1.amazonaws.com.cn/rds-downloads/rds-combined-ca-cn-bundle.pem
注意

默认情况下会对新的 Amazon DocumentDB 集群启用 TLS。但是,您可以将其禁用。有关更多信息,请参阅管理 Amazon DocumentDB 集群 TLS 设置

要从 Amazon VPC 外部连接到您的 Amazon DocumentDB 集群,请使用以下命令。

mongo --sslAllowInvalidHostnames --ssl --sslCAFile rds-combined-ca-cn-bundle.pem --username <yourUsername> --password <yourPassword>