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

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

使用 Amazon EC2 Connect

本节介绍如何使用 Amazon EC2 启动 Amazon DocumentDB(具有 MongoDB 兼容性)集群并使用 mongo shell 与其进行交互。下面的视频演示了本指南中的步骤。

Prerequisites

在创建第一个 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 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 Web Services 区域 ,您可能已经创建了默认 VPC,也可能没有创建。如果您没有默认 VPC,请完成Amazon VPC 入门中的Amazon VPC User Guide. 这将需要不到五分钟的时间。

第 1 步:创建 Amazon EC2 实例

在此步骤中,您将在相同的区域和 Amazon VPC 中创建一个 Amazon EC2 实例,以后将用于配置 Amazon DocumentDB 集群。

  1. 在 Amazon EC2 控制台上,选择启动实例.

  2. 定位Amazon Linux 2 AMI,然后选择Select.

  3. 选择t3.micro实例类型。

  4. 选择核查并启动,这将允许您跳到控制台的步骤 7:核查实例启动页.

  5. 在 “安全组” 下,选择编辑安全组.

  6. 这将默认为创建新安全组. 在安全组名称字段,写入demoEC2.

  7. 将 “类型” 更改为 “SSH”。这将自动将端口范围设置为 22。

  8. 选择下拉菜单,然后选择我的 IP.

    注意

    您只能从您当前的 IP 地址访问 DemoEC2 安全组。如果您的 IP 地址发生了变化,则必须更新安全组。

  9. 现在选择核查并启动. 现在,您应看到 DecreEC2 安全组个安全组部分。

  10. 验证信息并选择启动.

  11. 将弹出一个标题为选择现有 key pair 或创建新 key pair. 它将如下所示:

    您必须提供 Amazon EC2 key pair。如果您确实有 Amazon EC2 key pair,请执行以下操作:

    1. 选择 key pair,从列表中选择您的 key pair。

    2. 您必须有可用的私有密钥文件(.pem 文件)才能登录 Amazon EC2 实例。

    如果您没有 Amazon EC2 key pair:

    1. 选择 Create a new key pair

    2. 在字段中为键栏写一个名称密钥对名称.

    3. 下载私有密钥文件(.pem 文件)。稍后在登录 Amazon EC2 实例时,您将需要此文件。

  12. 选择 Launch Instances

第 2 步:创建安全组

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

  1. 在 Amazon EC2 控制台中,在网络和安全性中,选择安全组.

  2. 选择创建安全组

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

  4. 对于 Description (说明),输入说明。

  5. 适用于VPC,接受您的默认 VPC 的使用。

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

  7. 对于 Type,选择 Custom TCP Rule

  8. 适用于端口范围中输入27017.

  9. 对于 Destination (目标),Custom (自定义). 在旁边的字段中,搜索刚刚创建的名为demoEC2. 您可能需要刷新浏览器以使 Amazon EC2 控制台才能自动填充demoEC2源名称。

  10. 接受所有其他默认值,然后选择创建安全组.

第 3 步:创建 Amazon DocumentDB 集群

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

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

  2. 选择创建

  3. 适用于实例的数量中,选择1. 这将最大限度地降低成本。将其他设置保留为默认值。

  4. 适用于身份验证中,输入用户名和密码。重要提示:在稍后的步骤中,您将需要此用户名和密码来验证您的集群。

  5. 启用 。显示高级设置.

  6. Network settings (网络设置)部分, 用于Amazon VPC 安全组中,选择演示数据库.

  7. 选择 Create Cluster (创建集群)

第 4 步:Connect 到您的 Amazon EC2 实例

要安装 mongo shell,您必须先连接 Amazon EC2 实例。通过安装 mongo shell,您可以连接和查询您的 Amazon DocumentDB 集群。完成以下步骤:

  1. 在 Amazon EC2 控制台上,导航到您的实例,并查看您刚创建的实例是否正在运行。如果是,选择实例.

  2. 选择 Connect

  3. 您将看到连接方法的三个选项:Amazon EC2 实例 Connect、会话管理器或 SSH 客户端。您必须从中选择一项并按照其提示进行操作。

注意

如果您的 IP 地址在开始本演练后发生了变化,或者稍后将返回环境,则必须更新demoEC2安全组入站规则以启用来自新 API 地址的入站流量。

第 5 步:安装 mongo shell

现在,您可以安装 mongo shell,该命令行实用程序是用于连接和查询 Amazon DocumentDB 集群的命令行实用程序。按照以下说明安装 mongo shell 以适用于您的操作系统。

在 Amazon Linux 上安装 mongo shell

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

    echo -e "[mongodb-org-3.6] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo
  2. 完成后,通过执行以下命令安装 mongo shell:

    sudo yum install -y mongodb-org-shell

在 Ubuntu 18.04 上安装 mongo shell

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

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
  2. 使用适合您的 Ubuntu 版本的命令创建用于 MongoDB 的列表文件 /etc/apt/sources.list.d/mongodb-org-3.6.list

    Ubuntu 18.04

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
    注意

    以上命令将同时为 Bionic 和 Xenial 安装 mongo 3.6 shell。

  3. 使用以下命令重新加载本地程序包数据库:

    sudo apt-get update
  4. 安装 MongoDB shell。

    sudo apt-get install -y mongodb-org-shell

有关在您的 Ubuntu 系统上安装早期版本的 MongoDB 的信息,请参阅在 Ubuntu 中安装 MongoDB Community Edition

 

要在其他操作系统上安装 mongo shell,请参阅 MongoDB 文档中的安装 MongoDB Community Edition

第 6 步:管理 Amazon DocumentDB TLS

使用以下代码下载 Amazon DocumentDB 的 CA 证书: wget https://s3.cn-north-1.amazonaws.com.cn/rds-downloads/rds-combined-ca-cn-bundle.pem

注意

默认情况下,会为所有新 Amazon DocumentDB 集群启用传输层安全性 (TLS)。有关更多信息,请参阅 。管理 Amazon DocumentDB 集群 TLS 设置.

步骤 7:Connect 到您的 Amazon DocumentDB 集群

  1. 在 Amazon 文档数据库控制台的集群下,找到您的集群。选择您创建的集群。

  2. 导航到Connection。它将如下所示。

    复制提供的连接字符串。

    将其粘贴到终端并对其进行以下更改之后:首先,确保字符串中有正确的用户名。然后,省略<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

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

  4. 当您输入密码时,可以看到rs0:PRIMARY>提示时,您已成功连接到您的 Amazon DocumentDB 集群。

连接时遇到问题? 请参阅Amazon DocumentDB 故障排除.

步骤 8:插入和查询数据

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

  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 }

步骤 9:了解

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

下一步是什么 了解如何充分利用这个功能强大的数据库及其一些流行功能:

注意

为了节省成本,您可以停止 Amazon DocumentDB 集群以降低成本或删除集群。默认情况下,在 30 分钟处于非活动状态后,Amazon Cloud9环境将停止底层 Amazon EC2 实例。