快速掌握 Amazon DocumentDB 文档数据库
前言
Amazon DocumentDB 是一款具备灵活数据模型的文档数据库,可以在各行各业的业务场景中发挥价值。本教程以某游戏为例,你可以快速启动并搭建一个文档数据库系统,以游戏账号存储为基础,并模拟操作为特定活跃账号推送促销活动信息为场景,进行实践操作。
完成此演练的费用低于 5 元人民币。
关于本教程 | |
预计部署时间 | 20 分钟 - 30 分钟 |
费用 | 低于 5 元人民币 |
受众 | 通用 |
级别 | 初级 |
相关产品 | Amazon DocumentDB |
相关行业 | 通用 |
上次更新时间 | 2022 年 4 月 |
-
创建 EC2 实例 (作为DocumentDB 客户端)
1. 访问 Amazon EC2 console (区域已选择宁夏区域)
2. 创建 EC2 密钥对
输入名称: docdbkey (其它都按照缺省)
3. 创建新的EC2实例
访问 EC2 console
4. 选择AMI 类型:Amazon Linux 2 AMI (HVM), SSD Volume Type
5. 选择实例类型:t2.micro, 点击审核和启动按钮,开始创建实例
6. 选择刚创建的 EC2 Key Pairs:docdbkey 点击启动新实例按钮
7. 点击查看实例按钮
8. 为新创建 EC2 实例加上 Label Name (docdb)
9. 为新创建的 EC2 实例安全组,增加 Label Name (docdb)
-
创建 Amazon DocumentDB 集群
1. 访问 Amazon DocumentDB console (区域已选择宁夏区域)
2. 点击创建集群
输入Cluster Name: docdb
选择 Instance Class: db.t3.medium
选择 Number of Instances: 1输入 Master Username: labuser
输入 Master Password: Password1
Amazon DocumentDB Cluster 开始创建 (整个过程大致几分种时间)
-
修改 Amazon DocumentDB 集群安全组 让新建 EC2 实例能够访问
1. 访问 Amazon DocumentDB Cluster 点击刚才建的 DocumentDB 集群: docdb
2. 选择集群 docdb 安全组 做进一步配置
3. 编辑安全组入站规则
端口输入:27017
允许安全组选择:标签为 docdb 的 EC2 安全组
选择保存规则
-
连接新建 EC2 安装 MongoShell 并连接到 Amazon DocumentDB cluster
1. 访问 EC2 实例页面
2. 获取 SSH 客户端连接新建 EC2 实例相关信息
3. 启动本地电脑 打开 SSH 客户端,例如 Mac 电脑 Terminal 工具 连接到 EC2 堡垒机,密钥是之前下载密钥 docdbkey.pem
chmod 0600 docdbkey.pem ssh -i docdbkey.pem ec2-user@[bastionEndpoint]
如果本地电脑没有安装 SSH 客户端,可以采用 web console 连接到 EC2
4. 连接到 EC2 堡垒机后,安装 MongoShell
a. 要安装 4.0 mongo shell,请在命令提示符中使用以下命令创建 repo 文件:
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
b. 完成之后,使用以下命令安装 mongo shell:
sudo yum install -y mongodb-org-shell
5. 下载 Amazon DocumentDB 连接所需要的证书
Amazon DocumentDB 是安全级别非常高的数据库服务,缺省TLS是打开的, 需要证书连接
wget https://rds-truststore.s3.cn-north-1.amazonaws.com.cn/cn-northwest-1/cn-northwest-1-bundle.pem
请注意需要将下载证书改名成rds-combined-ca-cn-bundle.pem
mv cn-northwest-1-bundle.pem rds-combined-ca-cn-bundle.pem
-
连接到 Amazon Document DB 集群
1. 访问 Amazon DocumentDB Cluster 点击刚才建的 Amazon DocumentDB 集群:docdb
2. 拷贝 Mongo shell 连接部分 替换密码为刚刚设置的 Password1
3. 连接到 EC2 堡垒机,拷贝上面步骤 2 MongoShell 命令 ( 密码替换成 Password1 ),执行 Mongo Shell 命令
4. 成功连接到 Amazon DocumentDB 集群
-
插入和查询数据
1. 现在您已连接到集群,您可以运行一些查询来熟悉文档数据库的使用。
要插入单个文档,请输入以下代码:
db.collection.insert({"hello":"DocumentDB"})
您将获得以下输出:
WriteResult({ "nInserted" : 1 })
2. 您可以阅读使用 findOne() 命令编写的文档(因为它只返回一个文档)
请参阅以下代码:
db.collection.findOne()
您将获得以下输出:
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
3. 要执行更多查询,请考虑游戏档案用例。首先,将一些条目插入名为档案的集合中。
请参阅以下代码:
db.profiles.insertMany([ { "_id" : 1, "name" : "Tim", "status": "active", "level": 12, "score":202}, { "_id" : 2, "name" : "Justin", "status": "inactive", "level": 2, "score":9}, { "_id" : 3, "name" : "Beth", "status": "active", "level": 7, "score":87}, { "_id" : 4, "name" : "Jesse", "status": "active", "level": 3, "score":27} ])
您将获得以下输出:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }
4. 使用 find() 命令返回个人资料集合中的所有文档。
请参阅以下代码:
db.profiles.find()
您将获得以下输出:
{ "_id" : 1, "name" : "Tim", "status" : "active", "level" : 12, "score" : 202 } { "_id" : 2, "name" : "Justin", "status" : "inactive", "level" : 2, "score" : 9 } { "_id" : 3, "name" : "Beth", "status" : "active", "level" : 7, "score" : 87 } { "_id" : 4, "name" : "Jesse", "status" : "active", "level" : 3,
5. 使用筛选条件查询单个文档。
请参阅以下代码:
db.profiles.find({name: "Jesse"})
您将获得以下输出:
{ "_id" : 4, "name" : "Jesse", "status" : "active", "level" : 3, "score" : 27 }
6. 游戏中的一个常见用例是查找给定用户的档案,并在该用户的档案中增加值。
在此场景中,您希望向最活跃的游戏玩家进行促销。如果玩家填写了一项调查,则其分数会增加 10。
为此,请使用 findAndModify 命令。在此用例中,用户 Tim 收到并完成了调查。要为 Tim 提供积分,请输入以下代码:
db.profiles.findAndModify({ query: { name: "Tim", status: "active"}, update: { $inc: { score: 10 } } })
您将获得以下输出:
{ "_id" : 1, "name" : "Tim", "status" : "active", "level" : 12, "score" : 202 }
7. 您可以使用以下查询来验证结果:
db.profiles.find({name: "Tim"})
您将获得以下输出:
{ "_id" : 1, "name" : "Tim", "status" : "active", "level" : 12, "score" : 212 }
-
删除实验所使用资源
特别提示:集群持续运行会产生云上花费,实验完毕,请删除实验所使用相关资源。
1. 删除 Amazon DocumentDB 集群
a. 先修改 Amazon DocumentDB 集群 修改删除保护选项
把删除保护选项去掉
选择立即生效
b. 先选中 Amazon DocumentDB 集群实例删除
整个 Amazon DocumentDB Cluster 会被删除
2. 删除 EC2 堡垒机
访问 EC2 instance 页面 选择要删除 EC2 实例 选择 Terminate 操作
现在就开始在亚马逊云上构建
无论您是在寻找计算能力、数据库、存储、内容分发、人工智能与机器学习,大数据分析还是其他功能,亚马逊云科技都有相应的服务来帮助您建立具有更高灵活性、可扩展性和可靠性的复杂应用。