

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

# 使用 Amazon EC2 进行连接
<a name="connect-ec2"></a>

本节介绍如何设置 Amazon DocumentDB 集群和 Amazon EC2 之间的连接，以及如何从 Amazon EC2 实例访问 Amazon DocumentDB 集群。

有两种选项可用于配置 EC2 连接：
+ [EC2 实例自动连接到 Amazon DocumentDB 数据库](connect-ec2-auto.md)：使用 EC2 控制台中的自动连接功能，自动配置 EC2 实例与新的或现有 Amazon DocumentDB 数据库之间的连接。此连接允许在 EC2 实例与 Amazon DocumentDB 数据库之间传输流量。这一选项通常用于测试和创建新的安全组。
+ [手动连接 EC2 实例到 Amazon DocumentDB 数据库](connect-ec2-manual.md)：通过手动配置和分配安全组来配置 EC2 实例与 Amazon DocumentDB 数据库之间的连接，从而重现由自动连接功能创建的配置。这一选项通常用于更改更高级的设置以及使用现有的安全组。

## 先决条件
<a name="connect-ec2-prerequisites"></a>

不管选择哪种选项，在创建第一个 Amazon DocumentDB 集群之前，您必须执行以下操作：

**已创建 Amazon Web Services（AWS）账户**  
在开始使用 Amazon DocumentDB 之前，您必须拥有 Amazon Web Services（AWS）账户。该 AWS 账户是免费的。您只需为使用的服务和资源付费。  
如果您没有 AWS 账户，请完成以下步骤来创建一个。  

**报名参加 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

**（可选）设置所需的 AWS Identity and Access Management (IAM) 权限。**  
要管理集群、实例和集群参数组等 Amazon DocumentDB 资源，需要 AWS 能够对您的请求进行身份验证的证书。有关更多信息，请参阅 [适用于 Amazon DocumentDB 的 Identity and Access Management](security-iam.md)。  

1. 在的搜索栏中 AWS 管理控制台，键入 IAM，然后在出现的下拉菜单中选择 **IAM**。

1. 一旦您进入 IAM 控制台，就从导航窗格中选择**用户**。

1. 选择您的用户名。

1. 点击**添加权限** 按钮。

1. 选择 **Attach existing policies directly**（直接附加现有策略）。

1. 在搜索栏中键入 `AmazonDocDBFullAccess`，并且一旦它出现在搜索结果中就选择之。

1. 在底部点击写有**下一步：查看**的蓝色按钮。

1. 在底部点击写有**添加权限**的蓝色按钮。

**创建 Amazon Virtual Private Cloud（Amazon VPC）**  
根据您所在的位置， AWS 区域 您可能已经创建了默认 VPC，也可能没有。如果您没有默认 VPC，请完成* Amazon VPC 用户指南*中[ Amazon VPC 入门](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) 的步骤 1。这将耗时不到五分钟。

# 自动连接 Amazon EC2
<a name="connect-ec2-auto"></a>

**Topics**
+ [将 EC2 实例自动连接到新的 Amazon DocumentDB 数据库](#auto-connect-ec2.process)
+ [将 EC2 实例自动连接到现有的 Amazon DocumentDB 数据库](#auto-connect-ec2-existing-cluster)
+ [与 EC2 实例的自动连接概述](#auto-connect-ec2.overview)
+ [查看连接的计算资源](#auto-connect-ec2.compute)

在设置 EC2 实例与新 Amazon DocumentDB 数据库之间的连接之前，请确保满足 [与 EC2 实例的自动连接概述](#auto-connect-ec2.overview) 中所述的要求。如果您在配置连接后更改安全组，则这些更改可能会影响 EC2 实例与 Amazon DocumentDB 数据库之间的连接。

**注意**  
您只能使用 AWS 管理控制台自动设置 EC2 实例与 Amazon DocumentDB 数据库之间的连接。您无法使用 AWS CLI 或亚马逊 DocumentDB API 自动建立连接。

## 将 EC2 实例自动连接到新的 Amazon DocumentDB 数据库
<a name="auto-connect-ec2.process"></a>

下面的程序假定您已经完成 [先决条件](connect-ec2.md#connect-ec2-prerequisites) 主题中的步骤。

**Topics**
+ [步骤 1：创建 Amazon EC2 实例](#auto-connect-ec2.launch-ec2-instance)
+ [步骤 2：创建 Amazon DocumentDB 集群](#auto-connect-ec2.launch-cluster)
+ [步骤 3：连接 Amazon EC2 实例](#manual-connect-ec2.connect)
+ [步骤 4：安装 MongoDB Shell](#auto-connect-ec2.install-mongo-shell)
+ [步骤 5：管理 Amazon DocumentDB TLS](#auto-connect-ec2.tls)
+ [步骤 6：连接到 Amazon DocumentDB 集群](#auto-connect-ec2.connect-use)
+ [步骤 7：插入和查询数据](#auto-cloud9-insert-query)
+ [步骤 8：探索](#auto-connect-ec2.explore)

### 步骤 1：创建 Amazon EC2 实例
<a name="auto-connect-ec2.launch-ec2-instance"></a>

在这个步骤，您将在同一区域和 Amazon VPC 中创建一个 Amazon EC2 实例，稍后您将使用这个实例配置您的 Amazon DocumentDB 集群。

1. 从 Amazon EC2 控制台控制中，选择**启动实例**。  
![\[Amazon EC2 控制台上的“启动实例”部分。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/launch-instance.png)

1. 在**名称和标签**部分的**名称**字段中，输入名称或标识符。

1. 在**亚马逊机器映像 (AMI)** 下拉列表中，找到并选中 **Amazon Linux 2 AMI**。  
![\[“应用程序和操作系统映像”界面，已在“快速入门”部分中选择 Amazon Linux 2 AMI 选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/linux2-ami.png)

1. 在**实例类型**下拉列表中，找到并选中 **t3.micro**。

1. 在**密钥对（登录）**部分，输入现有密钥对的标识符，或选择**新建密钥对**。  
![\[显示“密钥对名称”字段和“创建新密钥对”选项的“密钥对”界面。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/key-pair.png)

   您必须提供 Amazon EC2 密钥对。
   + 如果您的确有 Amazon EC2 密钥对：

     1. 选定一个密钥对，从列表中选择您的密钥对。

     1. 您必须有可用的私有密钥文件（.pem 或 .ppk 文件）才能登录 Amazon EC2 实例。
   + 如果您没有 Amazon EC2 密钥对：

     1. 选择**新建密钥对**，随后出现**创建密钥对**对话框。

     1. 在**密钥对名称**字段中输入名称。

     1. 选择**密钥对类型**和**私有密钥文件格式**。

     1. 选择 **Create key pair (创建密钥对)**。  
![\[“创建密钥对”界面，其中包含密钥对名称、类型和文件格式等字段。“创建密钥对”按钮位于右下角。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/create-key-pair.png)
**注意**  
为安全起见，我们强烈建议使用密钥对进行 EC2 实例的 SSH 和互联网连接。

1. **可选：**在**网络设置部分**的**防火墙（安全组）**下，选择**创建安全组**。  
![\[“网络设置”界面，其中显示了用于创建安全组的选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/firewall.png)

   选择**创建安全组**（选中所有适用于您的 EC2 连接的流量允许规则）。
**注意**  
如果您想要使用现有安全组，请按照 [手动连接 Amazon EC2](connect-ec2-manual.md) 中的说明进行操作。

1. 在**摘要**部分中，查看 EC2 配置，如果配置正确，选择**启动实例**。

### 步骤 2：创建 Amazon DocumentDB 集群
<a name="auto-connect-ec2.launch-cluster"></a>

在预配置 Amazon EC2 实例的同时，创建您的 Amazon DocumentDB 集群。

1. 导航至 Amazon DocumentDB 控制台并且从导航窗格中选择**集群**。

1. 选择**创建**。

1. 将**集群类型**设置保留为默认的**基于实例的集群**。

1. 在**集群配置**中，对于**集群标识符**，请输入唯一名称。请注意，无论如何输入，控制台都会将所有集群的名称更改为小写。

   将**引擎版本**保留为默认值 **5.0.0**。

1. 对于**集群存储配置**，请保留 **Amazon DocumentDB 标准**的默认设置。

1. 在**实例配置**中：
   + 对于**数据库实例类**，选择**内存优化类（包括 r 类）**（这是默认值）。

     另一个实例选项是**NVMe由支持的类**。要了解更多信息，请参阅[NVMe 支持的实例](db-instance-nvme.md)。
   + 对于**实例类**，请选择符合您需求的实例类型。有关实例类的更详细说明，请参阅 [实例类规格](db-instance-classes.md#db-instance-class-specs)。
   + 对于**实例数量**，请选择最能反映您的需求的数量。请记住，数字越低，成本越低，集群可以管理的 read/write 容量也越低。  
![\[“配置”界面，其中包含集群标识符、引擎版本和实例类的默认值，并且实例数量设置为 1。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-cluster/instance-config.png)

1. 对于**连接**，选择**连接到 EC2 计算资源**。这是您在步骤 1 中创建的 EC2 实例。  
![\[“连接”界面，已选择“连接到 EC2 计算资源”选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2-connect.png)
**注意**  
连接到 EC2 计算资源会自动为 EC2 计算资源到 Amazon DocumentDB 集群的连接创建一个安全组。创建完集群后，如果想查看新创建的安全组，请导航到集群列表并选择集群的标识符。在**连接和安全**选项卡中，转到**安全组**，然后在**安全组名称 (ID)** 下找到您的安全组。它将包含集群的名称，其外观类似于此：`docdb-ec2-docdb-2023-12-11-21-33-41:i-0e4bb09985d2bbc4c (sg-0238e0b0bf0f73877)`。

1. 在**身份验证**部分中，输入主要用户的用户名，然后选择**自行管理**。输入密码，然后确认密码。

   如果您改为**在中选择 “托管**” AWS Secrets Manager，[使用 Amazon DocumentDB 进行密码管理以及 AWS Secrets Manager](docdb-secrets-manager.md)请参阅，了解更多信息。

1. 选择**创建集群**。

### 步骤 3：连接 Amazon EC2 实例
<a name="manual-connect-ec2.connect"></a>

要安装 Mongo Shell，您必须首先连接到您的 Amazon EC2 实例。安装 Mongo Shell 使您能够连接到并查询您的 Amazon DocumentDB 集群。完成以下步骤：

1. 在 Amazon EC2 控制台上，导航到您的实例并且查看您刚才创建的实例是否正在运行。如果是，请单击实例 ID 选择实例。  
![\[实例表列出了 Amazon EC2 控制台中的两个实例。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/ec2-instance-table.png)

1. 选择**连接**。  
![\[Amazon EC2 实例的实例摘要。“连接”按钮位于右上角。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/ec2-instance-summary.png)

1. 连接方法有四个选项卡选项：Amazon EC2 Instance Connect、会话管理器、SSH 客户端或 EC2 Serial Console。您必须选择一个选项并遵循其说明。完成后，选择**连接**。  
![\[显示 EC2 Instance Connect 连接方法配置选项的界面。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/connect-options.png)

**注意**  
如果您开始这次演练后自己的 IP 地址发生变化，或者您稍后正要返回您的环境，则必须更新您的 `demoEC2` 安全组入站规则，以启用来自新 API 地址的入站流量。

### 步骤 4：安装 MongoDB Shell
<a name="auto-connect-ec2.install-mongo-shell"></a>

您现在可以安装 MongoDB Shell，它是一个命令行实用程序，用于连接和查询 Amazon DocumentDB 集群。目前有两个版本的 MongoDB Shell：最新版本 mongosh 和先前版本 mongo Shell。

**重要**  
低于版本 6.13.1 的 Node.js 驱动程序存在已知限制，Amazon DocumentDB 目前不支持用这种驱动程序进行 IAM 身份验证。必须升级 Node.js 驱动程序以及使用 Node.js 驱动程序的工具（例如 mongosh），以使用 Node.js 驱动程序版本 6.13.1 或更高版本。

遵循以下说明为您的操作系统安装 MongoDB Shell。

------
#### [ On Amazon Linux ]

**在 Amazon Linux 上安装 MongoDB Shell**

如果您*未*使用 IAM 身份验证，并且想要使用最新的 MongoDB Shell（mongosh）连接到您的 Amazon DocumentDB 集群，请按照以下步骤操作：

1. 创建存储库文件。在您创建的 EC2 实例的命令行中，执行以下命令：

   ```
   echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
   ```

1. 完成后，在命令提示符处使用以下两个命令选项之一安装 mongosh：

   **选项 1**：如果您在 Amazon EC2 配置期间选择了默认的 Amazon Linux 2023，请输入以下命令：

   ```
   sudo yum install -y mongodb-mongosh-shared-openssl3
   ```

   **选项 2**：如果您在 Amazon EC2 配置期间选择了 Amazon Linux 2，请输入以下命令：

   ```
   sudo yum install -y mongodb-mongosh
   ```

如果您使用的是 IAM 身份验证，则必须使用先前版本的 MongoDB Shell（5.0）连接到您的 Amazon DocumentDB 集群，请按照以下步骤操作：

1. 创建存储库文件。在您创建的 EC2 实例的命令行中，执行以下命令：

   ```
   echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
   ```

1. 完成后，在命令提示符处使用以下命令选项安装 mongodb 5.0 Shell：

   ```
   sudo yum install -y mongodb-org-shell
   ```

------
#### [ On Ubuntu ]

**在 Ubuntu 上安装 mongosh**

1. 导入包管理系统将使用的公有密钥。

   ```
   curl -fsSL https://pgp.mongodb.com/server-5.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-5.0.gpg
   ```

1. 使用适合您的 Ubuntu 版本的命令创建用于 MongoDB 的列表文件 `mongodb-org-5.0.list`。

   ```
   echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
   ```

1. 使用以下命令导入并更新本地程序包数据库：

   ```
   sudo apt-get update
   ```

1. 安装 mongosh。

   ```
   sudo apt-get install -y mongodb-mongosh
   ```

有关在您的 Ubuntu 系统上安装早期版本的 MongoDB 的信息，请参阅[在 Ubuntu 中安装 MongoDB Community Edition](https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu/)。

------
#### [ On other operating systems ]

要在其他操作系统上安装 mongo Shell，请参阅 MongoDB 文档中的[安装 MongoDB Community Edition](https://www.mongodb.com/docs/manual/administration/install-community/)。

------

### 步骤 5：管理 Amazon DocumentDB TLS
<a name="auto-connect-ec2.tls"></a>

用以下代码下载 Amazon DocumentDB 的 CA 证书：`wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem`

**注意**  
传输层安全性协议 (TLS)默认对所有新的 Amazon DocumentDB 集群启用。有关更多信息，请参阅[管理 Amazon DocumentDB Cluster TLS 设置](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html)。

### 步骤 6：连接到 Amazon DocumentDB 集群
<a name="auto-connect-ec2.connect-use"></a>

1. 在 Amazon DocumentDB 数据库控制台上的**集群**下，定位您的集群。通过单击该集群的**集群标识符**，选择您创建的集群。

1. 在**连接和安全**选项卡中，在**连接**方框中找到**使用 mongo Shell 连接到此集群**：  
![\[集群连接设置，突出显示的 MongoDB 连接字符串用于使用 mongo Shell 连接到 Amazon DocumentDB 集群。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/connect-mongosh.png)

   复制所提供的连接字符串，并将其粘贴到您的终端中。

   对其进行以下更改：

   1. 确保字符串中的用户名正确。

   1. 省略 `<insertYourPassword>` 从而 mongo Shell 在您连接时提示您输入密码。

   1. 可选：如果您使用的是 IAM 身份验证，或者使用的是先前版本的 MongoDB Shell，请按以下方式修改您的连接字符串：

      `mongo --ssl --host mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1.docdb.amazonaws.com:27017 --sslCAFile global-bundle.pem --username SampleUser1 --password`

      将 `mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1` 替换为您的集群中的相同信息。

1. 在您的终端中按回车。现在，系统将提示您输入密码。输入您的密码。

1. 当输入密码并可以看到 `rs0 [direct: primary] <env-name>>` 提示时，您已成功连接到您的 Amazon DocumentDB 集群。

连接时遇到问题？ 参见 [Amazon DocumentDB 故障排除](https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.html)。

### 步骤 7：插入和查询数据
<a name="auto-cloud9-insert-query"></a>

现在，您已连接到自己的集群，您可以运行几个查询来熟悉如何使用文档数据库。

1. 要插入单个文档，请输入以下内容：

   ```
   db.collection.insertOne({"hello":"DocumentDB"})
   ```

   您会得到以下输出：

   ```
   {
     acknowledged: true,
     insertedId: ObjectId('673657216bdf6258466b128c')
   }
   ```

1. 您可以读取您用 `findOne()` 命令编写过的文档（因为它只返回单个文档）。输入以下：

   ```
   db.collection.findOne()
   ```

   您会得到以下输出：

   ```
   { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
   ```

1. 要执行若干更多查询，请考虑游戏个人资料用例。首先，将几个条目插入标题为 `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: { '0': 1, '1': 2, '2': 3, '3': 4 } }
   ```

1. 使用 `find()` 命令返回个人资料集合中的所有文档。输入以下：

   ```
   db.profiles.find()
   ```

   您将获得与您在步骤 3 中键入的数据相匹配的输出。

1. 利用筛选器对单个文档使用查询。输入以下：

   ```
   db.profiles.find({name: "Katie"})
   ```

   您会得到以下输出：

   ```
   { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
   ```

1. 现在，让我们尝试查找个人资料并使用 `findAndModify` 命令修改它。我们将用以下代码向用户 Matt 给予额外的 10 分：

   ```
   db.profiles.findAndModify({
           query: { name: "Matt", status: "active"},
           update: { $inc: { score: 10 } }
       })
   ```

   你得到以下输出（请注意，他的分数尚未增加）：

   ```
   {
       [{_id : 1, name : 'Matt', status: 'active', level: 12, score: 202}]
   ```

1. 你可以借助以下查询验证他的分数是否已变化：

   `db.profiles.find({name: "Matt"})`

   您会得到以下输出：

   ```
   { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
   ```

### 步骤 8：探索
<a name="auto-connect-ec2.explore"></a>

恭喜您！您已成功完成 Amazon DocumentDB 快速入门指南。

接下来做什么？ 了解如何充分利用这款强大的数据库及其热门功能：
+  [管理 Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/managing-documentdb.html) 
+  [扩展](https://docs.aws.amazon.com/documentdb/latest/developerguide/operational_tasks.html) 
+  [备份和还原](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore.html) 

**注意**  
为了节省成本，您可以停用您的 Amazon DocumentDB 集群以降低成本，也可以删除该集群。默认情况下，在闲置 30 分钟后，您的 AWS Cloud9 环境将停止底层 Amazon EC2 实例。

## 将 EC2 实例自动连接到现有的 Amazon DocumentDB 数据库
<a name="auto-connect-ec2-existing-cluster"></a>

下面的程序假定存在一个现有 Amazon DocumentDB 集群和一个现有 Amazon EC2 实例。

**访问 Amazon DocumentDB 集群并设置 Amazon EC2 连接**

1. 访问 Amazon DocumentDB 集群。

   1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

   1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   1. 通过选择集群名称左侧的按钮，指定需要的集群。

1. 设置 Amazon EC2 连接。

   1. 选择**操作**，然后选择**设置 EC2 连接**。  
![\[“操作”下拉列表，其中已选择“设置 EC2 连接”选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/setup-ec2-connect.png)

      将出现**设置 EC2 连接**页面。

   1. 在 **EC2 实例**字段中，选择要连接到集群的 EC2 实例。  
![\[“设置 EC2 连接”界面，其中突出显示了“EC2 实例”下拉列表。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/setup-ec2-connect-dialog.png)

   1. 选择**继续**。

      将出现**检查并确认**页面。

   1. 确保更改正确。然后选择**设置连接**。  
![\[“检查并确认”界面，其中显示了变更摘要。“设置连接”按钮位于右下角。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/setup-ec2-review-confirm.png)

成功后会显示以下验证：

![\[在 Amazon DocumentDB 数据库与 EC2 实例之间成功设置了连接的确认消息。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/setup-ec2-connect-success.png)


## 与 EC2 实例的自动连接概述
<a name="auto-connect-ec2.overview"></a>

当您设置 EC2 实例和 Amazon DocumentDB 数据库之间的连接时，Amazon DocumentDB 会自动为您的 EC2 实例和 Amazon DocumentDB 数据库配置 VPC 安全组。

以下是将 EC2 实例与 Amazon DocumentDB 数据库连接的要求：
+ EC2 实例必须与 Amazon DocumentDB 数据库存在于同一 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 数据库之间已经存在连接，因此不会修改安全组。 | 
| 以下任一条件适用：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/connect-ec2-auto.html)  | 以下任一条件适用：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/connect-ec2-auto.html) | 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 安全组作为源的出站规则。 | Amazon DocumentDB 操作：关联 EC2 安全组 | 
| 以下任一条件适用：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/connect-ec2-auto.html)  | 有一个或多个安全组与 EC2 实例（名称与模式 DocumentDB-ec2-n 匹配）关联。尚未修改与此模式匹配的安全组。该安全组只具有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则。 | Amazon DocumentDB 操作：新建安全组 | 

**Amazon DocumentDB 操作：新建安全组**

Amazon DocumentDB 执行以下操作：
+ 创建与模式 `DocumentDB-ec2-n` 匹配的新安全组。该安全组具有一条以 EC2 实例的 VPC 安全组作为源的入站规则。此安全组与 Amazon DocumentDB 数据库关联，并允许 EC2 实例访问 Amazon DocumentDB 数据库。
+ 创建与模式 `ec2-DocumentDB-n` 匹配的新安全组。该安全组具有一条以 Amazon DocumentDB 数据库的 VPC 安全组作为源的出站规则。该安全组与 EC2 实例相关联，并允许 EC2 实例向 Amazon DocumentDB 数据库发送流量。

**Amazon DocumentDB 操作：关联 EC2 安全组**

Amazon DocumentDB 将有效的现有 EC2 安全组与 EC2 实例关联。该安全组允许 EC2 实例向 Amazon DocumentDB 数据库发送流量。

## 查看连接的计算资源
<a name="auto-connect-ec2.compute"></a>

您可以使用 AWS 管理控制台 来查看连接到 Amazon DocumentDB 数据库的计算资源。显示的资源包括自动设置的计算资源连接。您可以通过以下方式自动设置与计算资源的连接：
+ 您可以在创建数据库时选择计算资源。有关更多信息，请参阅 [创建 Amazon DocumentDB 集群](db-cluster-create.md) 并创建多可用区数据库集群。
+ 您可以在现有数据库和计算资源之间设置连接。有关更多信息，请参阅 [自动连接 Amazon EC2](#connect-ec2-auto)。

列出的计算资源不包括手动连接到数据库的计算资源。例如，您可以通过向与数据库关联的 VPC 安全组添加规则来允许计算资源手动访问数据库。

要列出计算资源，必须满足以下条件：
+ 与计算资源关联的安全组的名称与模式 `ec2-DocumentDB-n` 相匹配（其中 n 是数字）。
+ 与计算资源关联的安全组具有出站规则，其端口范围设置为 Amazon DocumentDB 数据库使用的端口。
+ 与计算资源关联的安全组具有出站规则，源设置为与 Amazon DocumentDB 数据库关联的安全组。
+ 与 Amazon DocumentDB 数据库关联的安全组的名称与模式 `DocumentDB-ec2-n`（其中 n 是数字）相匹配。
+ 与 Amazon DocumentDB 数据库关联的安全组具有一条出站规则，其端口范围设置为 Amazon DocumentDB 数据库使用的端口。
+ 与 Amazon DocumentDB 数据库关联的安全组有一条入站规则，其源设置为与计算资源关联的安全组。

**查看已连接到 Amazon DocumentDB 数据库的计算资源**

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**数据库**，然后选择 Amazon DocumentDB 数据库的名称。

1. 在**连接和安全**选项卡上，在**连接的计算资源**中查看计算资源。

# 手动连接 Amazon EC2
<a name="connect-ec2-manual"></a>

**Topics**
+ [步骤 1：创建 Amazon EC2 实例](#manual-connect-ec2.launch-ec2-instance)
+ [步骤 2：创建安全组](#manual-connect-ec2.security-group)
+ [步骤 3：创建 Amazon DocumentDB 集群](#manual-connect-ec2.launch-cluster)
+ [第 4 步：配置 Amazon EC2 实例](#manual-connect-ec2.connect)
+ [步骤 5：安装 MongoDB Shell](#manual-connect-ec2.install-mongo-shell)
+ [步骤 6：管理 Amazon DocumentDB TLS](#manual-connect-ec2.tls)
+ [步骤 7：连接到 Amazon DocumentDB 集群](#manual-connect-ec2.connect-use)
+ [步骤 8：插入和查询数据](#manual-cloud9-insert-query)
+ [步骤 9：探索](#manual-connect-ec2.explore)

下面的步骤假定您已经完成 [先决条件](connect-ec2.md#connect-ec2-prerequisites) 主题中的步骤。

## 步骤 1：创建 Amazon EC2 实例
<a name="manual-connect-ec2.launch-ec2-instance"></a>

在这个步骤，您将在同一区域和 Amazon VPC 中创建一个 Amazon EC2 实例，稍后您将使用这个实例配置您的 Amazon DocumentDB 集群。

1. 从 Amazon EC2 控制台控制中，选择**启动实例**。  
![\[Amazon EC2 控制台上的“启动实例”部分。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/launch-instance.png)

1. 在**名称和标签**部分的**名称**字段中，输入名称或标识符。

1. 在**亚马逊机器映像 (AMI)** 下拉列表中，找到并选中 **Amazon Linux 2 AMI**。  
![\[“应用程序和操作系统映像”界面，已在“快速入门”部分中选择 Amazon Linux 2 AMI 选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/linux2-ami.png)

1. 在**实例类型**下拉列表中，找到并选中 **t3.micro**。

1. 在**密钥对（登录）**部分，输入现有密钥对的标识符，或选择**新建密钥对**。  
![\[显示“密钥对名称”字段和“创建新密钥对”选项的“密钥对”界面。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/key-pair.png)

   您必须提供 Amazon EC2 密钥对。
   + 如果您的确有 Amazon EC2 密钥对：

     1. 选定一个密钥对，从列表中选择您的密钥对。

     1. 您必须有可用的私有密钥文件（.pem 或 .ppk 文件）才能登录 Amazon EC2 实例。
   + 如果您没有 Amazon EC2 密钥对：

     1. 选择**新建密钥对**，随后出现**创建密钥对**对话框。

     1. 在**密钥对名称**字段中输入名称。

     1. 选择**密钥对类型**和**私有密钥文件格式**。

     1. 选择 **Create key pair (创建密钥对)**。  
![\[“创建密钥对”界面，其中包含密钥对名称、类型和文件格式等字段。“创建密钥对”按钮位于右下角。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/create-key-pair.png)
**注意**  
为安全起见，我们强烈建议使用密钥对进行 EC2 实例的 SSH 和互联网连接。

1. 在**网络设置部分**的**防火墙（安全组）**下，选择**创建安全组**或**选择现有安全组**。  
![\[“网络设置”界面，其中显示了用于创建安全组的选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/firewall.png)

   如果选择现有安全组，请从**通用安全组**下拉列表中选择一个安全组。

   如果选择创建新的安全组，请执行以下操作：

   1. 查看所有适用于 EC2 连接的流量允许规则。

   1. 在 IP 字段中，选择**我的 IP** 或选择**自定义**，以便从 CIDR 数据块、前缀列表或安全组列表中进行选择。除非 EC2 实例位于隔离网络上，否则我们不建议使用**任何地方**选项，因为它允许任何 IP 地址访问 EC2 实例。  
![\[“我的 IP”下拉列表。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/ip-field.png)

1. 在**摘要**部分中，查看 EC2 配置，如果配置正确，选择**启动实例**。

## 步骤 2：创建安全组
<a name="manual-connect-ec2.security-group"></a>

现在，您将在您的默认 Amazon VPC 中创建一个新安全组。该安全组`demoDocDB`使您能够在端口 27017（ Amazon DocumentDB 的默认端口）上从 Amazon EC2 实例连接到您的 Amazon DocumentDB 集群。

1. 在 [Amazon EC2 管理控制台](https://console.aws.amazon.com/ec2)上，**网络和安全**下，选择**安全组**。  
![\[Amazon DocumentDB 控制台导航窗格，在“网络和安全”下拉列表中选择了“安全组”选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/nav-security-groups.png)

1. 选择**创建安全组**。  
![\[“创建安全组”按钮。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/create-sg-btn-2.png)

1. 在**基本详细信息**部分：

   1. 对于**安全组名称**，输入 `demoDocDB`。

   1. 对于**说明**，输入说明。

   1. 对于 **VPC**，请接受使用您的默认 VPC。

1. 在**入站规则**部分中，选择**添加规则**。

   1. 对于**类型**，请选择**自定义 TCP 规则**（默认值）。

   1. 对于**端口范围**，输入 `27017`。

   1. 对于 **Source**，选择 **Custom**。在与其紧邻的字段中，搜索您刚才在步骤 1 中创建的安全组。您可能需要刷新浏览器以便 Amazon EC2 控制台自动填充 来源名称。  
![\[“入站规则”部分，显示了类型、协议、端口范围、来源和描述等字段。“添加规则”按钮位于左下角。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/inbound-rules.png)

1. 接受所有其他默认值并选择**创建安全组**。  
![\[“创建安全组”按钮。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/create-sg-btn-2.png)

## 步骤 3：创建 Amazon DocumentDB 集群
<a name="manual-connect-ec2.launch-cluster"></a>

正在预配置 Amazon EC2 实例的同时，您将创建自己的 Amazon DocumentDB 集群。

1. 导航至 Amazon DocumentDB 控制台并且从导航窗格中选择**集群**。

1. 选择**创建**。

1. 将**集群类型**设置保留为默认的**基于实例的集群**。

1. 在**集群配置**中，对于**集群标识符**，请输入唯一名称。请注意，无论如何输入，控制台都会将所有集群的名称更改为小写。

   将**引擎版本**保留为默认值 **5.0.0**。

1. 对于**集群存储配置**，请保留 **Amazon DocumentDB 标准**的默认设置。

1. 在**实例配置**中：
   + 对于**数据库实例类**，选择**内存优化类（包括 r 类）**（这是默认值）。

     另一个实例选项是**NVMe由支持的类**。要了解更多信息，请参阅[NVMe 支持的实例](db-instance-nvme.md)。
   + 对于**实例类**，请选择符合您需求的实例类型。有关实例类的更详细说明，请参阅 [实例类规格](db-instance-classes.md#db-instance-class-specs)。
   + 对于**实例数量**，请选择最能反映您的需求的数量。请记住，数字越低，成本越低，集群可以管理的 read/write 容量也越低。  
![\[“配置”界面，其中包含集群标识符、引擎版本和实例类的默认值，并且实例数量设置为 1。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-cluster/instance-config.png)

1. 对于**连接**，保留默认设置：**不连接到 EC2 计算资源**。
**注意**  
连接到 EC2 计算资源时会自动为您的集群连接创建安全组。由于您已经在上一步中手动创建了这些安全组，因此应选择**不连接到 EC2 计算资源**，以免创建第二组安全组。

1. 在**身份验证**部分中，输入主要用户的用户名，然后选择**自行管理**。输入密码，然后确认密码。

   如果您改为**在中选择 “托管**” AWS Secrets Manager，[使用 Amazon DocumentDB 进行密码管理以及 AWS Secrets Manager](docdb-secrets-manager.md)请参阅，了解更多信息。

1. 选择**创建集群**。

## 第 4 步：配置 Amazon EC2 实例
<a name="manual-connect-ec2.connect"></a>

连接到您的 Amazon EC2 实例将允许您安装 MongoDB Shell。安装 Mongo Shell 使您能够连接到并查询您的 Amazon DocumentDB 集群。完成以下步骤：

1. 在 Amazon EC2 控制台上，导航到您的实例并且查看您刚才创建的实例是否正在运行。如果是，请单击实例 ID 选择实例。  
![\[实例表列出了 Amazon EC2 控制台上的两个实例。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/ec2-instance-table.png)

1. 选择**连接**。  
![\[Amazon EC2 实例的实例摘要。“连接”按钮位于右上角。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/ec2-instance-summary.png)

1. 连接方法有四个选项卡选项：Amazon EC2 Instance Connect、会话管理器、SSH 客户端或 EC2 Serial Console。您必须选择一个选项并遵循其说明。完成后，选择**连接**。  
![\[显示 EC2 Instance Connect 连接方法配置选项的界面。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/ec2/connect-options.png)

**注意**  
如果您开始这次演练后自己的 IP 地址发生变化，或者您稍后正要返回您的环境，则必须更新您的 `demoEC2` 安全组入站规则，以启用来自新 API 地址的入站流量。

## 步骤 5：安装 MongoDB Shell
<a name="manual-connect-ec2.install-mongo-shell"></a>

您现在可以安装 MongoDB Shell，它是一个命令行实用程序，用于连接和查询 Amazon DocumentDB 集群。目前有两个版本的 MongoDB Shell：最新版本 mongosh 和先前版本 mongo Shell。

**重要**  
低于版本 6.13.1 的 Node.js 驱动程序存在已知限制，Amazon DocumentDB 目前不支持用这种驱动程序进行 IAM 身份验证。必须升级 Node.js 驱动程序以及使用 Node.js 驱动程序的工具（例如 mongosh），以使用 Node.js 驱动程序版本 6.13.1 或更高版本。

遵循以下说明为您的操作系统安装 MongoDB Shell。

------
#### [ On Amazon Linux ]

**在 Amazon Linux 上安装 MongoDB Shell**

如果您*未*使用 IAM，并且想要使用最新的 MongoDB Shell（mongosh）连接到您的 Amazon DocumentDB 集群，请按照以下步骤操作：

1. 创建存储库文件。在您创建的 EC2 实例的命令行中，执行以下命令：

   ```
   echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
   ```

1. 完成后，在命令提示符处使用以下两个命令选项之一安装 mongosh：

   **选项 1**：如果您在 Amazon EC2 配置期间选择了默认的 Amazon Linux 2023，请输入以下命令：

   ```
   sudo yum install -y mongodb-mongosh-shared-openssl3
   ```

   **选项 2**：如果您在 Amazon EC2 配置期间选择了 Amazon Linux 2，请输入以下命令：

   ```
   sudo yum install -y mongodb-mongosh
   ```

如果您使用的是 IAM，则必须使用先前版本的 MongoDB Shell（5.0）连接到您的 Amazon DocumentDB 集群，请按照以下步骤操作：

1. 创建存储库文件。在您创建的 EC2 实例的命令行中，执行以下命令：

   ```
   echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
   ```

1. 完成后，在命令提示符处使用以下命令选项安装 mongodb 5.0 Shell：

   ```
   sudo yum install -y mongodb-org-shell
   ```

------
#### [ On Ubuntu ]

**在 Ubuntu 上安装 mongosh**

1. 导入包管理系统将使用的公有密钥。

   ```
   curl -fsSL https://pgp.mongodb.com/server-5.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-5.0.gpg
   ```

1. 使用适合您的 Ubuntu 版本的命令创建用于 MongoDB 的列表文件 `mongodb-org-5.0.list`。

   ```
   echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
   ```

1. 使用以下命令导入并更新本地程序包数据库：

   ```
   sudo apt-get update
   ```

1. 安装 mongosh。

   ```
   sudo apt-get install -y mongodb-mongosh
   ```

有关在您的 Ubuntu 系统上安装早期版本的 MongoDB 的信息，请参阅[在 Ubuntu 中安装 MongoDB Community Edition](https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu/)。

------
#### [ On other operating systems ]

要在其他操作系统上安装 mongo Shell，请参阅 MongoDB 文档中的[安装 MongoDB Community Edition](https://www.mongodb.com/docs/manual/administration/install-community/)。

------

## 步骤 6：管理 Amazon DocumentDB TLS
<a name="manual-connect-ec2.tls"></a>

用以下代码下载 Amazon DocumentDB 的 CA 证书：`wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem`

**注意**  
传输层安全性协议 (TLS)默认对所有新的 Amazon DocumentDB 集群启用。有关更多信息，请参阅[管理 Amazon DocumentDB Cluster TLS 设置](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html)。

## 步骤 7：连接到 Amazon DocumentDB 集群
<a name="manual-connect-ec2.connect-use"></a>

1. 在 Amazon DocumentDB 数据库控制台上的**集群**下，定位您的集群。通过单击该集群的**集群标识符**，选择您创建的集群。  
![\[Amazon DocumentDB 集群列表，其中显示了包含主实例详细信息的区域集群。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/cluster-connect-choose.png)

1. 在**连接和安全**选项卡中，在**连接**方框中找到**使用 mongo Shell 连接到此集群**：  
![\[集群连接设置，突出显示的 MongoDB 连接字符串用于使用 mongo Shell 连接到 Amazon DocumentDB 集群。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/connect-mongosh.png)

   复制所提供的连接字符串，并将其粘贴到您的终端中。

   对其进行以下更改：

   1. 确保字符串中的用户名正确。

   1. 省略 `<insertYourPassword>` 从而 mongo Shell 在您连接时提示您输入密码。

   1. 可选：如果您使用的是 IAM 身份验证，或者使用的是先前版本的 MongoDB Shell，请按以下方式修改您的连接字符串：

      `mongo --ssl --host mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1.docdb.amazonaws.com:27017 --sslCAFile global-bundle.pem --username SampleUser1 --password`

      将 `mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1` 替换为您的集群中的相同信息。

1. 在您的终端中按回车。现在，系统将提示您输入密码。输入您的密码。

1. 当输入密码并可以看到 `rs0 [direct: primary] <env-name>>` 提示时，您已成功连接到您的 Amazon DocumentDB 集群。

连接时遇到问题？ 参见 [Amazon DocumentDB 故障排除](https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.html)。

## 步骤 8：插入和查询数据
<a name="manual-cloud9-insert-query"></a>

现在，您已连接到自己的集群，您可以运行几个查询来熟悉如何使用文档数据库。

1. 要插入单个文档，请输入以下内容：

   ```
   db.collection.insertOne({"hello":"DocumentDB"})
   ```

   您会得到以下输出：

   ```
   {
     acknowledged: true,
     insertedId: ObjectId('673657216bdf6258466b128c')
   }
   ```

1. 您可以读取您用 `findOne()` 命令编写过的文档（因为它只返回单个文档）。输入以下：

   ```
   db.collection.findOne()
   ```

   您会得到以下输出：

   ```
   { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
   ```

1. 要执行若干更多查询，请考虑游戏个人资料用例。首先，将几个条目插入标题为 `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: { '0': 1, '1': 2, '2': 3, '3': 4 } }
   ```

1. 使用 `find()` 命令返回个人资料集合中的所有文档。输入以下：

   ```
   db.profiles.find()
   ```

   您将获得与您在步骤 3 中键入的数据相匹配的输出。

1. 利用筛选器对单个文档使用查询。输入以下：

   ```
   db.profiles.find({name: "Katie"})
   ```

   您会得到以下输出：

   ```
   { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
   ```

1. 现在，让我们尝试查找个人资料并使用 `findAndModify` 命令修改它。我们将用以下代码向用户 Matt 给予额外的 10 分：

   ```
   db.profiles.findAndModify({
           query: { name: "Matt", status: "active"},
           update: { $inc: { score: 10 } }
       })
   ```

   你得到以下输出（请注意，他的分数尚未增加）：

   ```
   {
       [{_id : 1, name : 'Matt', status: 'active', level: 12, score: 202}]
   ```

1. 你可以借助以下查询验证他的分数是否已变化：

   `db.profiles.find({name: "Matt"})`

   您会得到以下输出：

   ```
   { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
   ```

## 步骤 9：探索
<a name="manual-connect-ec2.explore"></a>

恭喜您！您已成功完成 Amazon DocumentDB 快速入门指南。

接下来做什么？ 了解如何充分利用这款强大的数据库及其热门功能：
+  [管理 Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/managing-documentdb.html) 
+  [扩展](https://docs.aws.amazon.com/documentdb/latest/developerguide/operational_tasks.html) 
+  [备份和还原](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore.html) 

**注意**  
为了节省成本，您可以停用您的 Amazon DocumentDB 集群以降低成本，也可以删除该集群。默认情况下，在闲置 30 分钟后，您的 AWS Cloud9 环境将停止底层 Amazon EC2 实例。