本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EC2 自动连接 Amazon
在 EC2 实例和新的 Amazon DocumentDB 数据库之间建立连接之前,请确保满足中所述的要求。与 EC2 实例的自动连接概述如果您在配置连接后对安全组进行了更改,则更改可能会影响 EC2 实例与 Amazon DocumentDB 数据库之间的连接。
注意
您只能使用自动在 EC2 实例和 Amazon DocumentDB 数据库之间建立连接。 Amazon Web Services Management Console您无法使用 Amazon CLI 或亚马逊 DocumentDB API 自动建立连接。
自动将 EC2 实例连接到新的亚马逊文档数据库数据库
下面的程序假定您已经完成 先决条件 主题中的步骤。
步骤
步骤 1:创建亚马逊 EC2 实例
在本步骤中,您将在同一地区和 Amazon VPC 中创建一个亚马逊 EC2 实例,稍后将使用该实例来配置您的 Amazon DocumentDB 集群。
-
在 Amazon EC2 控制台上,选择启动实例。
-
在名称和标签部分的名称字段中,输入名称或标识符。
-
在亚马逊机器映像 (AMI) 下拉列表中,找到并选中 Amazon Linux 2 AMI。
-
在实例类型下拉列表中,找到并选中 t3.micro。
-
在密钥对(登录)部分,输入现有密钥对的标识符,或选择新建密钥对。
您必须提供 Amazon EC2 密钥对。
如果你有 Amazon EC2 密钥对:
-
选定一个密钥对,从列表中选择您的密钥对。
-
您必须已经拥有私钥文件(.pem 或.ppk 文件)才能登录您的亚马逊实例。 EC2
如果您没有 Amazon EC2 密钥对:
-
选择新建密钥对,随后出现创建密钥对对话框。
-
在密钥对名称字段中输入名称。
-
选择密钥对类型和私有密钥文件格式。
-
选择 Create key pair (创建密钥对)。
注意
出于安全考虑,我们强烈建议使用密钥对与您的实例进行 SSH 和互联网连接。 EC2
-
-
可选:在网络设置部分的防火墙(安全组)下,选择创建安全组或选择现有安全组。
如果选择现有安全组,请从通用安全组下拉列表中选择一个安全组。
如果您选择创建新的安全组,请检查适用于您的 EC2 连接的所有流量允许规则。
-
在摘要部分,查看您的 EC2 配置,如果正确,请选择启动实例。 编辑安全组。
步骤 2:创建 Amazon DocumentDB 集群
在配置亚马逊 EC2 实例的同时,您将创建自己的亚马逊文档数据库集群。
-
导航至 Amazon DocumentDB 控制台并且从导航窗格中选择集群。
-
选择创建。
-
将集群类型设置保留为默认的基于实例的集群。
-
对于实例数,选择1。这将使成本最小化。保留其他设置的默认值。
-
对于 “连接”,选择 “连接到 EC2 计算资源”。这是您在步骤 1 中创建的 EC2 实例。
注意
连接到 EC2 计算资源会自动为您与 Amazon DocumentDB 集群的 EC2 计算资源连接创建一个安全组。创建完集群后,如果想查看新创建的安全组,请导航到集群列表并选择集群的标识符。在连接和安全选项卡中,转到安全组,然后在安全组名称 (ID) 下找到您的安全组。它将包含集群的名称,其外观类似于此:
docdb-ec2-docdb-2023-12-11-21-33-41:i-0e4bb09985d2bbc4c (sg-0238e0b0bf0f73877)
。 -
对于身份验证,请输入登录凭证。重要提示:在后续步骤中,您将需要登录凭证来对您的集群进行身份验证。
-
开启显示高级设置。
-
在网络设置 部分中,对于 Amazon VPC 安全组,选择 DemodocDB。
-
选择创建集群。
步骤 3:连接到您的亚马逊 EC2 实例
要安装 mongo 外壳,您必须先连接到您的 Amazon EC2 实例。安装 Mongo Shell 使您能够连接到并查询您的 Amazon DocumentDB 集群。完成以下步骤:
-
在 Amazon EC2 控制台上,导航到您的实例,查看您刚刚创建的实例是否正在运行。如果是,请单击实例 ID 选择实例。
-
选择连接。
-
您的连接方法有四个选项卡:Amazon EC2 Instance Connect、会话管理器、SSH 客户端或 EC2 串行控制台。您必须选择一个选项并遵循其说明。完成后,选择连接。
注意
如果您开始这次演练后自己的 IP 地址变化,或者您稍后正要返回您的环境,则必须更新您的demoEC2
安全组入站规则,以启用来自您新 API 地址的入站流量。
步骤 4:安装 mongo Shell
您现在可以安装 mongo Shell,它是一个命令行实用程序,用于连接和查询 Amazon DocumentDB 集群。遵循以下说明为您的操作系统安装 mongo Shell。
步骤 5:管理 Amazon DocumentDB TLS
用以下代码下载 Amazon DocumentDB 的 CA 证书:wget https://rds-truststore.s3.cn-north-1.amazonaws.com.cn/global/global-bundle.pem
注意
传输层安全性协议 (TLS)默认对所有新的 Amazon DocumentDB 集群启用。有关更多信息,请参阅管理 Amazon DocumentDB Cluster TLS 设置。
步骤 6:连接到 Amazon DocumentDB 集群
-
在 Amazon DocumentDB 数据库控制台上的集群下,定位您的集群。通过单击集群标识符选择您已创建的集群。
-
在连接和安全选项卡中,在连接方框中找到使用 mongo Shell 连接到此集群:
复制所提供的连接字符串,并将其粘贴到您的终端中。
对其进行以下更改:
确保字符串中的用户名正确。
省略
<insertYourPassword>
从而 mongo Shell 在您连接时提示您输入密码。
您的连接字符串应与以下类似:
mongo --ssl host docdb-2020-02-08-14-15-11. cluster.region.docdb.amazonaws.com:27107 --sslCAFile rds-combined-ca-cn-bundle.pem --username demoUser --password
-
在您的终端中按回车。现在,系统将提示您输入密码。输入您的密码。
-
当输入密码并可以看到
rs0:PRIMARY>
提示时,您已成功连接到您的 Amazon DocumentDB 集群。
连接时遇到问题? 参见 Amazon DocumentDB 故障排除。
步骤 7:插入和查询数据
现在,您已连接到自己的集群,您可以运行几个查询来熟悉如何使用文档数据库。
-
要插入单个文档,请输入以下内容:
db.collection.insert({"hello":"DocumentDB"})
-
您会得到以下输出:
WriteResult({ "nInserted" : 1 })
-
您可以读取您用
findOne()
命令编写过的文档(因为它只返回单个文档)。输入以下:db.collection.findOne()
-
您会得到以下输出:
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
-
要执行若干更多查询,请考虑游戏个人资料用例。首先,将几个条目插入标题为
profiles
的集合。输入以下:db.profiles.insertMany([ { "_id" : 1, "name" : "Matt", "status": "active", "level": 12, "score":202}, { "_id" : 2, "name" : "Frank", "status": "inactive", "level": 2, "score":9}, { "_id" : 3, "name" : "Karen", "status": "active", "level": 7, "score":87}, { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27} ])
-
您会得到以下输出:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }
-
使用
find()
命令返回个人资料集合中的所有文档。输入以下:db.profiles.find()
-
您将获得将与您在步骤 5 中已键入数据匹配的输出。
-
利用筛选器对单个文档使用查询。输入以下:
db.profiles.find({name: "Katie"})
-
您应该收回这个输出:
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
-
现在,让我们尝试查找个人资料并使用
findAndModify
命令修改它。我们将用以下代码向用户 Matt 给予额外的十分:db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })
-
你得到以下输出(请注意,他的分数尚未增加):
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 202 }
-
你可以借助以下查询验证他的分数是否已变化:
db.profiles.find({name: "Matt"})
-
您会得到以下输出:
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
步骤 8:探索
恭喜您!您已成功完成 Amazon DocumentDB 快速入门指南。
接下来做什么? 了解如何充分利用这款强大的数据库及其热门功能:
注意
为了节省成本,您可以停用您的 Amazon DocumentDB 集群以降低成本,也可以删除该集群。默认情况下,在闲置 30 分钟后,您的 Amazon Cloud9 环境将停止底层 Amazon EC2 实例。
自动将 EC2 实例连接到现有的 Amazon DocumentDB 数据库
以下过程假设您有一个现有的 Amazon DocumentDB 集群和一个现有的亚马逊 EC2 实例。
访问您的亚马逊 DocumentDB 集群并设置亚马逊连接 EC2
-
访问 Amazon DocumentDB 集群。
登录 Amazon Web Services Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com
-
在导航窗格中,选择集群。
提示
如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (
)。
-
通过选择集群名称左侧的按钮,指定需要的集群。
-
设置亚马逊 EC2 连接。
-
选择 “操作”,然后选择 “设置 EC2 连接”。
将出现 “设置 EC2 连接” 对话框。
-
在EC2 实例字段中,选择要连接到集群的 EC2 实例。
-
选择继续。
将出现检查并确认页面。
-
确保更改正确。然后选择设置连接。
-
成功后会显示以下验证:

与 EC2 实例的自动连接概述
当您在 EC2 实例和亚马逊文档数据库之间建立连接时,Amazon DocumentDB 会自动 EC2 为您的实例和您的亚马逊文档数据库配置 VPC 安全组。
以下是将 EC2 实例与 Amazon DocumentDB 数据库连接的要求:
该 EC2 实例必须与亚马逊文档数据库位于同一 VPC 中。
如果同一 VPC 中不存在 EC2 实例,则控制台会提供创建实例的链接。
设置连接的用户必须具有执行以下 Amazon EC2 操作的权限:
ec2:AuthorizeSecurityGroupEgress
ec2:AuthorizeSecurityGroupIngress
ec2:CreateSecurityGroup
ec2:DescribeInstances
ec2:DescribeNetworkInterfaces
ec2:DescribeSecurityGroups
ec2:ModifyNetworkInterfaceAttribute
ec2:RevokeSecurityGroupEgress
如果数据库实例和 EC2 实例位于不同的可用区,则您的账户可能会产生跨可用区成本。
当您建立与 EC2 实例的连接时,Amazon DocumentDB 会根据与 Amazon DocumentDB 数据库 EC2 和实例关联的安全组的当前配置进行操作,如下表所述:
当前 Amazon DocumentDB 安全组配置 | 当前 EC2 安全组配置 | Amazon DocumentDB 操作 |
---|---|---|
有一个或多个安全组与 Amazon DocumentDB 数据库关联,该数据库的名称与模式 DocumentDB-ec2-n 相匹配。尚未修改与此模式匹配的安全组。该安全组只有一条以 EC2 实例的 VPC 安全组为来源的入站规则。 |
有一个或多个安全组与该 EC2 实例关联,其名称与模式匹配DocumentDB-ec2-n (其中 n 是数字)。尚未修改与此模式匹配的安全组。该安全组只具有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则。 |
Amazon DocumentDB 不执行任何操作。已经在 EC2 实例和 Amazon DocumentDB 数据库之间自动配置了连接。由于 EC2 实例和 Amazon DocumentDB 数据库之间已经存在连接,因此不会修改安全组。 |
以下任一条件适用:
|
以下任一条件适用:
|
Amazon DocumentDB 操作:新建安全组 |
有一个或多个安全组与 Amazon DocumentDB 数据库关联,该数据库的名称与模式 DocumentDB-ec2-n 相匹配。尚未修改与此模式匹配的安全组。该安全组只有一条以 EC2 实例的 VPC 安全组为来源的入站规则。 |
有一个或多个安全组与该 EC2 实例关联,其名称与模式相匹配ec2-DocumentDB-n 。但是,Amazon DocumentDB 不能将其中任何安全组用于连接 Amazon DocumentDB 数据库。如果安全组没有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则,则 Amazon DocumentDB 无法使用该安全组。Amazon DocumentDB 也无法使用经过修改的安全组。 |
Amazon DocumentDB 操作:新建安全组 |
有一个或多个安全组与 Amazon DocumentDB 数据库关联,该数据库的名称与模式 DocumentDB-ec2-n 相匹配。尚未修改与此模式匹配的安全组。该安全组只有一条以 EC2 实例的 VPC 安全组为来源的入站规则。 |
存在有效的连接 EC2 安全组,但该安全组未与 EC2 实例关联。此安全组的名称与模式 DocumentDB-ec2-n 相匹配。尚未修改它。它只具有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则。 |
亚马逊 DocumentDB 操作:关联安全组 EC2 |
以下任一条件适用:
|
有一个或多个安全组与该 EC2 实例关联,其名称与模式相匹配DocumentDB-ec2-n 。尚未修改与此模式匹配的安全组。该安全组只具有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则。 |
Amazon DocumentDB 操作:新建安全组 |
Amazon DocumentDB 操作:新建安全组
Amazon DocumentDB 执行以下操作:
创建与模式
DocumentDB-ec2-n
匹配的新安全组。此安全组具有以 EC2 实例的 VPC 安全组为来源的入站规则。该安全组与 Amazon DocumentDB 数据库关联,允许 EC2 实例访问亚马逊文档数据库数据库。创建与模式
ec2-DocumentDB-n
匹配的新安全组。该安全组具有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则。此安全组与实例关联,允许该 EC2 EC2 实例向 Amazon DocumentDB 数据库发送流量。
亚马逊 DocumentDB 操作:关联安全组 EC2
Amazon DocumentDB 将有效的现有 EC2 安全组与实例关联起来。 EC2 该安全组允许 EC2 实例向亚马逊文档数据库发送流量。
查看连接的计算资源
您可以使用 Amazon Web Services Management Console 来查看连接到 Amazon DocumentDB 数据库的计算资源。显示的资源包括自动设置的计算资源连接。您可以通过以下方式自动设置与计算资源的连接:
您可以在创建数据库时选择计算资源。有关更多信息,请参阅 创建 Amazon DocumentDB 集群 并创建多可用区数据库集群。
您可以在现有数据库和计算资源之间设置连接。有关更多信息,请参阅 EC2 自动连接 Amazon。
列出的计算资源不包括手动连接到数据库的计算资源。例如,您可以通过向与数据库关联的 VPC 安全组添加规则来允许计算资源手动访问数据库。
要列出计算资源,必须满足以下条件:
与计算资源关联的安全组的名称与模式
ec2-DocumentDB-n
相匹配(其中 n 是数字)。与计算资源关联的安全组具有出站规则,其端口范围设置为 Amazon DocumentDB 数据库使用的端口。
与计算资源关联的安全组具有出站规则,源设置为与 Amazon DocumentDB 数据库关联的安全组。
与 Amazon DocumentDB 数据库关联的安全组的名称与模式
DocumentDB-ec2-n
(其中 n 是数字)相匹配。与 Amazon DocumentDB 数据库关联的安全组具有一条出站规则,其端口范围设置为 Amazon DocumentDB 数据库使用的端口。
与 Amazon DocumentDB 数据库关联的安全组有一条入站规则,其源设置为与计算资源关联的安全组。
查看已连接到 Amazon DocumentDB 数据库的计算资源
登录 Amazon Web Services Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com
在导航窗格中,选择数据库,然后选择 Amazon DocumentDB 数据库的名称。
在连接和安全选项卡上,在连接的计算资源中查看计算资源。