Amazon DocumentDB 入门
有很多种方式可以连接和开始 Amazon DocumentDB. 我们创建本指南的原因在于,我们发现这种方式是用户开始使用我们功能强大的文档数据库的最快速、最简单和最简单的方法。本指南利用 AWS Cloud9,一个基于Web的终端,用于连接和查询您的 Amazon DocumentDB 群集,使用mongoshell直接从 AWS 管理控制台. 有资格使用 AWS 免费套餐的 AWS 新客户可免费使用 AWS Cloud9。如果您的 AWS Cloud9 环境使用免费层以外的资源,您将按这些资源的正常AWS费率收费。本指南将帮助您了解 Amazon DocumentDB 不到15分钟,且预期成本低于0.10美元/小时。
注意
Amazon DocumentDB 没有免费级别。有关定价的更多信息,请参阅 AmazonDocumentDB(具有MongoDB兼容性)定价.
如果您更愿意连接到您的 Amazon DocumentDB 通过创建SSH连接到 Amazon EC2 实例,请参阅 与EC2说明连接
Prerequisites
在创建第一个 Amazon DocumentDB 集群之前,您必须执行以下操作:
创建一个 Amazon Web Services (AWS) 账户
开始使用 Amazon DocumentDB 之前,您必须具有 Amazon Web Services (AWS) 账户。AWS 账户是免费的。您只需为使用的服务和资源付费。
如果您没有 AWS 账户,请通过以下步骤创建一个账户。
注册 AWS
- 打开 https://aws.amazon.com/,然后选择 Create an AWS Account。
- 按照屏幕上的说明进行操作。
设置所需的 AWS Identity and Access Management (IAM) 权限。
访问以管理 Amazon DocumentDB资源(如集群、实例和集群参数组)时需要提供 AWS 可用来验证请求身份的凭证。有关更多信息,请参阅Amazon DocumentDB 中的 Identity and Access Management。
- 在AWS管理控制台的搜索栏中,键入 IAM 并选择 iam 在显示的下拉菜单中。
- 一旦您在 IAM 控制台,选择 用户 从导航窗格。
- 选择您的用户名。
- 点击按钮 添加权限.
- 选择 Attach existing policies directly (直接附加现有策略)。
- 类型
AmazonDocDBFullAccess在搜索栏中,并在搜索结果中显示一次。 - 点击下面的蓝色按钮 下一步: 审核
- 点击下面的蓝色按钮 添加权限.
创建一个 Amazon Virtual Private Cloud (Amazon VPC)
只有当您没有默认值时,才需要此步骤 Amazon VPC. 如果不是,则完成 开始使用 Amazon VPC 在 Amazon VPC 用户指南. 这将需要不到五分钟。
第1步: 创建 AWS Cloud9 环境
AWS Cloud9 提供一个基于Web的终端,您可以使用它来连接和查询 Amazon DocumentDB 群集。
- 从 AWS 管理控制台 导航到 AWS Cloud9 控制台并选择 创建环境.
2. 在 环境名称和描述 部分, 名称 字段,输入 DocumentDBCloud9.
3. 选择 下一步.
4. 在 配置设置部分,选择 下一步.
5. 在 审核 部分,选择 创建环境.

注意
配置 AWS Cloud9 环境可能需要最多三分钟。
第2步: 创建安全组
此授权组将使您能够连接到您的 Amazon DocumentDB 群集 AWS Cloud9 环境。
- 在 Amazon EC2 管理控制台,下方 网络和安全,选择 安全组.
2. 选择 创建安全组.
3. 在 基本详情 方框,为每个字段输入以下内容:
- For 安全组名称, enter
降级数据库. - For Description, enter a description.
- For VPC 。, accept the usage of your default VPC.
4. 在 入站规则 部分,选择 添加规则.
5. 对于 类型,选择 自定义TCP规则.
6. 对于 端口范围,输入 27017.
7. 来源是用于 AWS Cloud9 您刚创建的环境。要查看可用安全组列表,请输入 cloud9 在目标字段。选择名称的安全组 aws-cloud9-<environment name>.
8. 接受所有其他默认值并选择 创建安全组.

注意
端口27017是的默认端口 Amazon DocumentDB.
第3步: 创建 Amazon DocumentDB 集群
在此步骤中,您将创建一个 Amazon DocumentDB 群集。
- 在 Amazon DocumentDB 管理控制台, 群集,选择 创建.
2. 在CreateAmazonDocumentDBCluster页面中, 配置 部分,选择 1 对于 实例数. 选择一个实例有助于最大程度地降低成本。如果这是一个生产系统,建议为高可用性调配三个实例。您可以在 配置 默认部分。
3. 在 身份验 部分,输入用户名和密码。
4. 打开 显示高级设置.
5. 在 网络设置 部分, VPC安全组,选择 降级数据库.
6. 选择 创建群集.

Amazon DocumentDB 现在正在配置您的群集,完成可能需要几分钟时间。当群集和实例状态均显示为 Available.
第4步: 安装 mongo shell
您现在将在您的 AWS Cloud9 环境。mongoshell是命令行实用程序,用于连接和查询 Amazon DocumentDB 群集。
- 如果您的 AWS Cloud9 环境在步骤 1 中仍处于打开状态,请返回到该环境并跳至说明 3。如果您已离开 AWS Cloud9 环境,请在 AWS Cloud9 管理控制台中的 Your environments (您的环境) 下,找到已标记该环境DocumentDBCloud9。选择 Open IDE (打开 IDE)。
2. 在命令提示符处,使用以下命令创建存储库文件:
```
- echo -e "[mongodb-org-4.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo ```
- 完成后,使用以下命令安装 mongo shell:
```
- sudo yum install -y mongodb-org-shell ```
- 要加密传输中的数据,请从 Amazon DocumentDB 下载 https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem 的公有密钥。此操作将下载名为
rds-combined-ca-bundle.pem的文件。
```
- wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem ```
注意
默认情况下,在 Amazon DocumentDB 上启用传输中加密。 您可以选择禁用 TLS。有关更多信息,请参阅管理 Amazon DocumentDB 集群 TLS 设置。
第5步: 连接到您的 Amazon DocumentDB 群集
您现在将连接到您的 Amazon DocumentDB 使用您在步骤4中安装的mongoshell群集。
- 在 Amazon DocumentDB 管理控制台上的 Clusters (集群) 下,找到您的集群。通过单击群集标识符来选择您创建的群集。
2. 在 Connectivity and Security (连接性和安全性) 选项卡上的 Connect to this cluster with the mongo shell (使用 mongo shell 连接到此集群) 下,复制提供的连接字符串。忽略复制 <insertYourPassword>,以便 mongo shell 在您连接时提示您输入密码。
3. 返回 AWS Cloud9 环境并粘贴连接字符串。
当您输入密码时,您的提示变为 rs0:PRIMARY> 提示,您已成功连接到您的 Amazon DocumentDB 群集。
注意
有关故障排除的信息,请参阅 故障排除 Amazon DocumentDB.
第6步: 插入和查询数据
现在您已连接到群集,您可以运行几个查询以熟悉使用文档数据库。
- 要插入单个文档,请输入以下内容:
```
- db.collection.insert({"hello":"DocumentDB"}) ```
- 您将获得以下输出:
WriteResult({ "nInserted" : 1 })
3. 您可以阅读您使用 findOne() 命令编写的文档(因为它仅返回单个文档)。输入以下内容:
```
- db.collection.findOne() ```
- 您将获得以下输出:
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
5. 要执行更多查询,请考虑一个游戏配置文件使用案例。首先,将一些条目插入标题为 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 ] }
7. 使用 find() 命令返回配置文件集合中的所有文档。输入以下内容:
```
- db.profiles.find() ```
- 您将获得与在步骤 5 中键入的数据相匹配的输出。
- 通过筛选条件对单个文档使用查询。输入以下内容:
```
- db.profiles.find({name: "Katie"}) ```
-
您应获得此输出:
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}11. 现在,让我们尝试使用findAndModify命令查找并修改配置文件。我们将向用户提供额外十个点,包含以下代码:```
- 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"})14. 您将获得以下输出:{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
第7步: 探索
恭喜您!您已成功完成 Amazon DocumentDB.
接下来该做什么? 了解如何充分利用此数据库及其一些热门功能:
注意
您从此入门练习中创建的群集将继续累计成本,除非您将其删除。有关说明,请参阅 删除 Amazon DocumentDB 集群.
