开始使用 Amazon DocumentDB - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

开始使用 Amazon DocumentDB

有许多连接和开始使用 Amazon DocumentDB 的方式。我们之所以创建本指南,是因为我们发现这种方法是用户开始使用我们强大文档数据库的最快、最简单、最简单方法。本指南利用 Amazon Cloud9,它基于 Web 的终端 ,直接使用来自 Amazon Web Services Management Console 的 mongo shell 连接和查询您的 Amazon DocumentDB 集群。有资格使用 Amazon 免费套餐的新客户可免费使用 Amazon DocumentDB 和 Amazon Cloud9。如果您的 Amazon Cloud9 环境或 Amazon DocumentDB 集群使用免费套餐之外的资源,您需要以正常的 Amazon 费率为这些资源付费。本指南将让你在不到 15 分钟内入门 Amazon DocumentDB。

注意

本指南中的说明专门用于创建和连接基于 Amazon DocumentDB 实例的集群。如果您想要创建并连接到 Amazon DocumentDB 弹性集群,请参阅 开始使用 Amazon DocumentDB 弹性集群

如果您希望通过创建与 Amazon EC2 实例的 SSH 连接从您的本地计算机连接到您的 Amazon DocumentDB,请参阅用 EC2连接说明

先决条件

在创建第一个 Amazon DocumentDB 集群之前,您必须执行以下操作:

已创建 Amazon Web Services(Amazon)账户

在开始使用 Amazon DocumentDB 之前,您必须拥有 Amazon Web Services(Amazon)账户。Amazon 账户是免费的。您只需为使用的服务和资源付费。

如果您还没有 Amazon Web Services 账户,请完成以下步骤来创建一个。

注册 Amazon Web Services 账户
  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,将接到一通电话,要求使用电话键盘输入一个验证码。

    当您注册 Amazon Web Services 账户时,系统将会创建一个 Amazon Web Services 账户根用户。根用户有权访问该账户中的所有 Amazon Web Services 和资源。作为安全最佳实践,请为管理用户分配管理访问权限,并且只使用根用户执行需要根用户访问权限的任务

设置所需的 Amazon Identity and Access Management(IAM)权限。

访问以管理 Amazon DocumentDB 资源(如集群、实例和集群参数组)时需要提供 Amazon可用来验证请求身份的凭证。有关更多信息,请参阅 适用于 Amazon DocumentDB 的 Identity and Access Management

  1. 在 Amazon Web Services Management Console 的搜索栏中,键入 IAM并且在出现的下拉菜单中选择 IAM

  2. 一旦您进入 IAM 控制台,就从导航窗格中选择用户

  3. 选择您的用户名。

  4. 点击添加权限 按钮。

  5. 选择 Attach existing policies directly(直接附加现有策略)。

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

  7. 在底部点击写有下一步:查看的蓝色按钮。

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

创建 Amazon Virtual Private Cloud(Amazon VPC)

这个步骤仅在您尚没有默认的 Amazon VPC 时才需要。如果您的确没有,请完成 Amazon VPC 用户指南 Amazon VPC 入门的步骤 1。这将耗时不到五分钟。

步骤 1:创建 Amazon Cloud9环境

Amazon Cloud9 提供一个基于 Web 的终端,您可以使用该终端利用 mongo shell 连接和查询 Amazon DocumentDB 集群。

  1. 从 Amazon Web Services Management Console 导航到 Amazon Cloud9 控制台,然后选择创建环境

  2. 创建环境对话框的详情部分,在名称字段中输入 DocumentDBCloud9

  3. 对于新 EC2 实例网络设置标签部分,保持默认设置不变并且单击屏幕底部的创建

您的新Amazon Cloud9环境出现于环境表中:

注意

Amazon Cloud9 环境预配置可能耗时长达三分钟。

步骤 2:创建安全组

这个安全组将使您能够从您的 Amazon Cloud9 环境连接到您的 Amazon DocumentDB 集群。

  1. Amazon EC2 管理控制台上,网络和安全下,选择安全组

  2. 选择创建安全组

  3. 在 “基本详情” 部分中:

    1. 对于安全组名称,输入 demoDocDB

    2. 对于说明,输入说明。

    3. 对于 VPC,请接受使用您的默认 VPC。

  4. 入站规则部分中,选择添加规则

    1. 对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)

    2. 对于 端口范围,输入 27017

    3. 对于 S ourc e,为刚刚创建的Amazon Cloud9环境选择安全组。要查看可用安全组列表,请在字段右侧的搜索字段cloud9中输入内容。选择名为 aws-cloud9-<environment name> 的安全组。

    4. 对于目的地,选择自定义。在紧邻它的字段中,搜索您刚才调用过的安全组 demoEC2。您可能需要刷新浏览器以便 Amazon EC2 控制台自动填充 demoEC2 来源名称。

    注意

    端口 27017 是 Amazon DocumentDB 的默认端口。

  5. 接受所有其他默认值并选择创建安全组

步骤 3:创建 Amazon DocumentDB 集群

在此步骤中,您将创建上一步中的安全组创建 Amazon DocumentDB 集群。

注意

这个步骤中的说明专门用于创建基于 Amazon DocumentDB 实例的集群。如果要创建 Amazon DocumentDB 弹性集群,请参阅。开始使用 Amazon DocumentDB 弹性集群

  1. 在 Amazon DocumentDB 管理控制台上,集群下,选择创建

  2. 在创建 Amazon DocumentDB 集群页面上,在集群类型部分选择基于实例的集群(这是默认选项)。

  3. 配置部分中,选择 1 个实例。选择一个实例有助于成本最小化。如果这是生产系统,我们建议您预配置三个实例以便可用性高。您可以任由配置部分中的其他设置为默认。

  4. 对于 “连接”,保留默认设置 “不要连接到 EC2 计算资源”。

  5. 身份验证部分,输入登录凭证。

  6. 开启显示高级设置

  7. 网络设置部分,对于VPC 安全组,如果您正在创建测试集群或演示集群,请选择DemoDocDB (VPC)。如果您正在给生产系统创建集群,请选择默认 (VPC),或者想要创建一个特定 VPC 安全组,请参阅 Amazon 虚拟化私有云用户指南中的安全组

  8. 选择创建集群

Amazon DocumentDB 现在正配置您的集群,这可能耗时长达数分钟完成。当集群和实例状态都显示为 available 时,您可以连接到您的集群。

注意

有关集群状态值的信息,请参阅“监控 Amazon DocumentDB”一章中的 集群状态值

有关实例状态值的信息,请参阅 “监控 Amazon DocumentDB” 一章中的 实例状态值

步骤 4:安装 mongo shell

现在,您将在您已于步骤 1 创建的 Amazon Cloud9 环境中安装 mongo shell。Mongo Shell 是一个命令行实用程序,用于连接和查询 Amazon DocumentDB 集群。

  1. 如果您的 Amazon Cloud9 环境从步骤 1 起仍为打开状态,请返回该环境并跳转至指令 3。如果您离开了您的Amazon Cloud9环境,请在Amazon Cloud9管理控制中环境下查找标有 DocumentDBCloud9 的环境。在 Cloud9 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
  3. 创建完成后,用以下命令安装 mongo shell:

    sudo yum install -y mongodb-org-shell

步骤 5:连接到 Amazon DocumentDB 集群

现在,您将使用自己在步骤 4 中安装过的 Mongo shell 连接到 Amazon DocumentDB 集群。

  1. 在 Amazon DocumentDB 管理控制台上,集群下,定位您的集群。通过单击集群标识符选择您已创建的集群。

  2. 亚马逊 Doc ncryption-in-transit umentDB 上默认启用 E。您可以选择禁用 TLS。要下载对您的集群进行身份验证所需的当前证书,请在连接和安全选项卡连接部分中,下载对您的集群进行身份验证所需的 Amazon DocumentDB 证书颁发机构 (CA) 证书” 下,复制提供的连接字符串。返回您的Amazon Cloud9环境并粘贴该连接字符串。

  3. 返回到您的集群,在 Amazon DocumentDB 控制台中连接和安全选项卡下,连接部分中,使用 mongo shell 连接到这个集群下,复制提供的连接字符串。省略复制 <insertYourPassword>,从而 mongo shell 在您连接时提示您输入密码。

    返回您的Amazon Cloud9环境并粘贴该连接字符串。

当输入密码并您的提示符变成 rs0:PRIMARY> 提示符时,您成功连接到您的 Amazon DocumentDB 集群。

注意

有关对 流进行问题排查的更多信息,请参阅 Amazon DocumentDB 问题排查

步骤 6:插入和查询数据

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

  1. 要插入单个文档,请输入以下内容:

    db.collection.insert({"hello":"DocumentDB"})
  2. 您会得到以下输出:

    WriteResult({ "nInserted" : 1 })
  3. 您可以读取您用 findOne() 命令编写过的文档(因为它只返回单个文档)。输入以下:

    db.collection.findOne()
  4. 您会得到以下输出:

    { "_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} ])
  6. 您会得到以下输出:

    { "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }
  7. 使用 find() 命令返回个人资料集合中的所有文档。输入以下:

    db.profiles.find()
  8. 您将获得将与您在步骤 5 中已键入数据匹配的输出。

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

    db.profiles.find({name: "Katie"})
  10. 您应该收回这个输出:

    { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
  11. 现在,让我们尝试查找个人资料并使用 findAndModify 命令修改它。我们将用以下代码向用户 Matt 给予额外的十分:

    db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })
  12. 你得到以下输出(请注意,他的分数尚未增加):

    { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 202 }
  13. 你可以借助以下查询验证他的分数是否已变化:

    db.profiles.find({name: "Matt"})
  14. 您会得到以下输出:

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

步骤 7:探索

恭喜您!您已成功完成 Amazon DocumentDB 入门指南。

接下来做什么? 了解如何充分利用这个数据库及其热门功能:

注意

除非您删除,否则您在这次入门练习中创建的集群将继续累积成本。有关说明,请参阅删除 Amazon DocumentDB 集群