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

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

使用Amazon EC2 Connect

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

先决条件

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

创建Amazon Web Services (Amazon) 账户

在开始使用 Amazon DocumentDB 之前,您必须拥有AAmazon 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 DocumentDDB 中的 IdentIdentity and Access Management y

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

  2. 进入 IAM 控制台后,选择Users从导航窗格中。

  3. 选择您的用户名。

  4. 单击按钮添加权限.

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

  6. 类型AmazonDocDBFullAccess在搜索栏中,并在它出现在搜索结果中后将其选中。

  7. 点击底部的蓝色按钮,上面写着下一步:审核

  8. 点击底部的蓝色按钮,上面写着添加权限.

创建 AAmazon Virtual Private Cloud tual Private

取决于哪个Amazon Web Services 区域你在,你可能已经创建了默认 VPC,也可能没有。如果您没有默认 VPC,则完成中的步骤 1Amazon VPC 入门Amazon VPC User Guide. 这将花费不到五分钟。

第 1 步:创建 Amazon EC2 实例

在此步骤中,您将在同一区域和亚马逊 VPC 中创建一个 Amazon EC2 实例,稍后将使用该实例来配置您的 Amazon DocumentDB 集群。

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

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

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

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

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

  6. 这将默认为创建新的安全组. 在安全组名称字段中,writedemoEC2.

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

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

    注意

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

  9. NOW 选择核查和启动. 现在,您应该看到在 demoEC2 安全组内容安全组部分。

  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允许您通过端口 27017(Amazon DocumentDB B 的默认端口)从 Amazon EC2 实例连接到您的 Amazon DocumentDB 集群。

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

  2. 选择Create security group(创建安全组)。

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

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

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

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

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

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

  9. 对于目标,选择Custom. 在旁边的字段中,搜索你刚才创建的安全组demoEC2. 您可能需要刷新浏览器,让 Amazon EC2 控制台自动填充demoEC2来源名称。

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

第 3 步:创建 AAmazon DocumentDB 集群

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

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

  2. 选择Create(创建)。

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

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

  5. 显示高级设置.

  6. 网络设置部分,用于Amazon VPC 安全组,选择demodocDB.

  7. 选择创建集群

第 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,请按照以下说明安装 mongo shell。

在 Amazon Linux 上安装 mongo shell

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

    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
  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 T

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

注意

对于任何新的 Amazon DocumentDB 集群,传输层安全性 (TLS) 均处于启用状态。有关更多信息,请参阅 。管理Amazon DocumentDB B 集群 TLS 设置.

步骤 7:Connect 您的 Amazon DocumentDB 集群

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

  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. 现在在终端中按 Enter 键。现在将提示您输入密码。输入您的密码。

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

连接有问题吗? 请参阅对 AAmazon 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 B 快速入门指南。

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

注意

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