本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用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 账户
按照屏幕上的说明进行操作。
在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。
- 设置所需的Amazon Identity and Access Management(IAM) 权限。
-
访问管理 Amazon DocumentDB 资源(例如集群、实例和集群参数组)需要具备以下证书Amazon可以用来验证您的请求。有关更多信息,请参阅 Amazon DocumentDDB 中的 IdentIdentity and Access Management y。
-
在的搜索栏中Amazon Web Services Management Console,键入 IAM 并选择IAM在出现的下拉菜单中。
-
进入 IAM 控制台后,选择Users从导航窗格中。
-
选择您的用户名。
-
单击按钮添加权限.
-
选择 Attach existing policies directly (直接附加现有策略)。
-
类型
AmazonDocDBFullAccess在搜索栏中,并在它出现在搜索结果中后将其选中。 -
点击底部的蓝色按钮,上面写着下一步:审核。
-
点击底部的蓝色按钮,上面写着添加权限.
-
- 创建 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 集群。
-
在 Amazon EC2 控制台上,选择启动实例.
-
定位Amazon Linux AMI然后选择Select.
-
选择t3.micro实例的类型。
-
选择核查和启动,这将允许你跳到控制台的步骤 7:核查实例启动页面。
-
在 “安全组” 下,选择编辑安全组.
-
这将默认为创建新的安全组. 在安全组名称字段中,write
demoEC2.
-
将类型更改为 SSH。这会自动将端口范围设置为 22。
-
选择下拉菜单源然后选择我的 IP.
注意 您只能从当前的 IP 地址访问 demoEC2 安全组。如果您的 IP 地址发生变化,则必须更新安全组。
-
NOW 选择核查和启动. 现在,您应该看到在 demoEC2 安全组内容安全组部分。
-
验证信息并选择启动.
-
将弹出一个窗口,标题为选择现有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允许您通过端口 27017(Amazon DocumentDB B 的默认端口)从 Amazon EC2 实例连接到您的 Amazon DocumentDB 集群。
-
在 Amazon EC2 控制台下网络和安全性,选择安全组.
-
选择Create security group(创建安全组)。
-
对于安全组名称,输入
demoDocDB。 -
对于说明,输入说明。
-
对于VPC,接受使用您的默认 VPC。
-
在入站规则部分中,选择添加规则。
-
对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)。
-
对于端口范围,输入
27017. -
对于目标,选择Custom. 在旁边的字段中,搜索你刚才创建的安全组
demoEC2. 您可能需要刷新浏览器,让 Amazon EC2 控制台自动填充demoEC2来源名称。 -
接受所有其他默认值并选择创建安全组.
第 3 步:创建 AAmazon DocumentDB 集群
在配置 Amazon EC2 实例的同时,您将创建您的 Amazon DocumentDB 集群。
-
导航到Amazon DocumentDB B 控制台并选择集群从导航窗格中。
-
选择Create(创建)。
-
对于实例数,选择1. 这将最大限度地降低成本。保留其他设置的默认值。
-
对于身份验证,输入用户名和密码。重要提示:在后面的步骤中,您将需要此用户名和密码来对集群进行身份验证。
-
开显示高级设置.
-
在网络设置部分,用于Amazon VPC 安全组,选择demodocDB.
-
选择创建集群。
第 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,请按照以下说明安装 mongo shell。
在 Amazon Linux 上安装 mongo shell
-
创建存储库文件。在 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 -
完成后,通过执行以下命令安装 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 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 集群
-
在 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 B 集群。
连接有问题吗? 请参阅对 AAmazon 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 B 快速入门指南。
下一步是什么? 了解如何充分利用这个强大的数据库及其一些常用功能:
为了节省成本,您可以停止您的 Amazon DocumentDB 集群以降低成本,也可以删除该集群。默认情况下,在闲置 30 分钟后,您的Amazon Cloud9环境将停止底层 Amazon EC2 实例。