本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Connect 使用 Amazon EC2
本部分介绍如何使用 Amazon EC2 启动 Amazon DocumentDB 集群(具有 MongoDB 兼容性)并使用 mongo shell 与其进行交互。下面的视频演示了本指南中的步骤。
先决条件
在创建第一个 Amazon DocumentDB 集群之前,您必须执行以下操作:
- 创建 Amazon Web Services (Amazon) 账户
-
在开始使用 Amazon DocumentDB 之前,您必须有 Amazon Web Services (Amazon) 账户。Amazon 账户是免费的。您只需为使用的服务和资源付费。
如果您还没有 Amazon Web Services 账户,请完成以下步骤创建一个。
注册 Amazon Web Services 账户
按照屏幕上的说明进行操作。
在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。
- 设置所需的Amazon Identity and Access Management(IAM) 权限。
-
访问以管理 Amazon DocumentDB 资源(如集群、实例和集群参数组)时需要提供以下凭证:Amazon可以对您的请求进行身份验证。有关更多信息,请参阅Amazon DocumentDB 中的 Identity and Access Management。
-
在搜索栏中Amazon Web Services Management Console,键入 IAM 然后选择IAM在显示的下拉菜单中。
-
一旦您进入 IAM 控制台,请选择用户从导航窗格中。
-
选择您的用户名。
-
单击按钮添加权限.
-
选择 Attach existing policies directly (直接附加现有策略)。
-
类型
AmazonDocDBFullAccess
在搜索栏中,然后在搜索结果中出现后将其选中。 -
点击底部显示的蓝色按钮后续:审核。
-
点击底部显示的蓝色按钮添加权限.
-
- 创建 Amazon Virtual Private Cloud (Amazon VPC)
-
取决于哪个Amazon Web Services 区域你在,你可能已经创建了默认 VPC,也可能没有。如果您没有默认 VPC,则完成Amazon VPC 入门中的Amazon VPC User Guide. 这将需要不到五分钟的时间。
第 1 步:创建 Amazon EC2 实例
在此步骤中,您将在稍后用于预置 Amazon DocumentDB 集群的同一区域和 Amazon VPC 中创建一个 Amazon EC2 实例。
-
在 Amazon EC2 控制台上,选择启动实例.
-
定位Amazon Linux 2 AMI然后选择Select.
-
选择t3.micro实例类型。
-
选择核查和启动,这将允许你跳到控制台步骤 7:核查实例启动页.
-
在 “安全组” 下,选择编辑安全组.
-
这将默认为创建新安全组. 在安全组名称写入字段
demoEC2
. -
将类型更改为 SSH。这将自动将端口范围设置为 22。
-
选择下拉菜单源然后选择我的 IP.
注意 您只能从当前的 IP 地址访问 demoEC2 安全组。如果您的 IP 地址发生了变化,则必须更新安全组。
-
现在选择核查和启动. 现在,您应在个安全组部分。
-
验证信息并选择启动.
-
将弹出一个标题为选择现有 key pair 或创建新 key pair 或创建新密钥对。. 它将如下所示:
您必须提供 Amazon EC2 key pair。如果您确实有 Amazon EC2 key pair:
-
选择 key pair,从列表中选择您的 key pair。
-
您必须有可用的私有密钥文件(.pem 文件)才能登录 Amazon EC2 实例。
如果您没有 Amazon EC2 key pair:
-
选择 Create a new key pair。
-
在字段中为钥匙栏写一个名字密钥对名称.
-
下载私有密钥文件(.pem 文件)。稍后登录 Amazon EC2 实例时,将需要此文件。
-
-
选择 Launch Instances。
第 2 步:创建安全组
现在,您将在默认 Amazon VPC 中创建一个新的安全组。安全组demoDocDB
使您能够从 Amazon EC2 实例连接到端口 27017(Amazon DocumentDB 的默认端口)上的 Amazon DocumentDB 集群。
-
在 Amazon EC2 控制台上,网络和安全性,选择安全组.
-
选择创建安全组。
-
对于安全组名称,输入
demoDocDB
。 -
对于说明,输入说明。
-
适用于VPC接受您的默认 VPC 的使用。
-
在入站规则部分中,选择添加规则。
-
对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)。
-
适用于端口范围输入
27017
. -
对于 Destination (目标)Custom (自定义). 在旁边的字段中,搜索刚调用的安全组
demoEC2
. 您可能需要为 Amazon EC2 控制台刷新浏览器才能自动填充demoEC2
源名称。 -
接受所有其他默认值并选择创建安全组.
第 3 步:创建 Amazon DocumentDB 集群
在配置 Amazon EC2 实例时,您将创建 Amazon DocumentDB 集群。
-
导航到 Amazon DocumentDB 控制台并选择集群从导航窗格中。
-
选择 Create (创建)。
-
适用于实例的数量,选择1. 这将尽量减少成本。将其他设置保留为默认设置。
-
适用于身份验证中,输入用户名和密码。重要提示:在后面的步骤中,您将需要此用户名和密码才能对集群进行身份验证。
-
启用 。显示高级设置.
-
在Network settings (网络设置)部分,Amazon VPC 安全组,选择demodocDB.
-
选择 Create cluster (创建集群)。
第 4 步:Connect 到您的 Amazon EC2 实例
要安装 mongo shell,您必须先连接到 Amazon EC2 实例。通过安装 mongo shell,您可以连接和查询 Amazon DocumentDB 集群。完成以下步骤:
-
在 Amazon EC2 控制台上,导航到您的实例并查看您刚创建的实例是否正在运行。如果是的话,选择实例.
-
选择 Connect (连接)。
-
你将看到连接方法的三个选项:Amazon EC2 实例 Connect、会话管理器或 SSH 客户端。您必须选择一项并按照其说明进行操作。
如果在开始本演练后您的 IP 地址发生了更改,或者稍后要返回环境,则必须更新demoEC2
安全组入站规则,用于启用来自新 API 地址的入站流量。
第 5 步:安装 mongo shell
您现在可以安装 mongo shell,该命令行实用程序可用于连接和查询 Amazon DocumentDB 集群。按照以下说明安装适用于操作系统的 mongo shell。
在 Amazon Linux 上安装 mongo shell
-
创建存储库文件。在 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
-
完成后,通过执行以下命令安装 mongo shell:
sudo yum install -y mongodb-org-shell
在 Ubuntu 18.04 上安装 mongo shell
-
导入包管理系统将使用的公有密钥。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
-
使用适合您的 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。
-
使用以下命令重新加载本地程序包数据库:
sudo apt-get update
-
安装 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 集群
-
在 Amazon Document 数据库控制台的群集下,找到您的集群。选择您创建的集群。
-
导航到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
-
现在在你的终端中按 Enter 键。现在将提示您输入密码。输入您的密码。
-
当您输入密码并可以看到
rs0:PRIMARY>
提示符,您已成功连接到 Amazon DocumentDB 集群。
连接时遇到问题? 请参阅Amazon DocumentDB 故障排除.
步骤 8:插入和查询数据
现在您已连接到集群,可以运行几个查询来熟悉文档数据库的使用。
-
要插入单个文档,请输入以下内容:
db.collection.insert({"hello":"DocumentDB"})
-
您将得到以下输出:
WriteResult({ "nInserted" : 1 })
-
你可以阅读你用
findOne()
命令(因为它只返回一个文档)。输入以下内容:db.collection.findOne()
-
您将得到以下输出:
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
-
要执行更多查询,请考虑游戏配置文件使用案例。首先,将一些条目插入标题为
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 ] }
-
使用
find()
命令返回配置文件集合中的所有文档。输入以下内容:db.profiles.find()
-
您将获得与步骤 5 中键入的数据匹配的输出。
-
使用筛选器对单个文档使用查询。输入以下内容:
db.profiles.find({name: "Katie"})
-
您应该收回此输出内容:
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
-
现在让我们尝试查找个人资料并使用
findAndModify
命令。我们将使用以下代码给用户 Matt 额外的十点积分: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"})
-
您将得到以下输出:
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
步骤 9:了解
恭喜您!您已成功完成 Amazon DocumentDB 快速入门指南。
下一步是什么? 了解如何充分利用这个功能强大的数据库以及其一些常见功能:
为了节省成本,您可以停止 Amazon DocumentDB 集群以降低成本,也可以删除集群。默认情况下,在不活动 30 分钟后,Amazon Cloud9环境将停止底层 Amazon EC2 实例。