本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 Amazon DocumentDB
有许多连接和开始使用 Amazon DocumentDB 的方式。本指南是用户开始使用我们强大文档数据库的最快捷、最简便的方法。本指南使用 AWS CloudShell 直接从 AWS 管理控制台 连接和查询 Amazon DocumentDB 集群。有资格使用 AWS 免费套餐的新客户可免费使用 Amazon DocumentDB 和 CloudShell。如果您的 AWS CloudShell 环境或 Amazon DocumentDB 集群使用免费套餐之外的资源,您需要以正常的 AWS 费率为这些资源付费。本指南将让您在五分钟内入门 Amazon DocumentDB。
注意
本指南中的说明专门用于创建和连接基于 Amazon DocumentDB 实例的集群(Amazon DocumentDB 和 AWS CloudShell 在其中可用)。
如果您想要创建并连接到 Amazon DocumentDB 弹性集群,请参阅 开始使用 Amazon DocumentDB 弹性集群。
如果您位于 AWS 中国区域,请参阅 自动连接 Amazon EC2。
先决条件
在创建第一个 Amazon DocumentDB 集群之前,您必须执行以下操作:
- 已创建 Amazon Web Services(AWS)账户
-
在开始使用 Amazon DocumentDB 之前,您必须拥有 Amazon Web Services(AWS)账户。AWS 账户是免费的。您只需为使用的服务和资源付费。
如果您还没有 AWS 账户,请完成以下步骤来创建一个。
注册 AWS 账户
打开 https://portal.aws.amazon.com/billing/signup
。 按照屏幕上的说明操作。
在注册时,将接到电话或收到短信,要求使用电话键盘输入一个验证码。
当您注册 AWS 账户 时,系统将会创建一个 AWS 账户根用户。根用户有权访问该账户中的所有 AWS 服务和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
- 设置所需的 AWS Identity and Access Management(IAM)权限。
-
访问以管理 Amazon DocumentDB 资源(如集群、实例和集群参数组)时需要提供 AWS可用来验证请求身份的凭证。有关更多信息,请参阅 适用于 Amazon DocumentDB 的 Identity and Access Management。
-
在 AWS 管理控制台 的搜索栏中,键入 IAM并且在出现的下拉菜单中选择 IAM。
-
一旦您进入 IAM 控制台,就从导航窗格中选择用户。
-
选择您的用户名。
-
单击添加更多权限。
-
选择直接附加策略。
-
在搜索栏中键入
AmazonDocDBFullAccess,并且一旦它出现在搜索结果中就选择之。 -
单击下一步。
-
单击添加更多权限。
-
注意
您的 AWS 账户在每个区域中均包含一个默认 VPC。如果您选择使用 Amazon VPC,请完成《Amazon VPC 用户指南》中的创建 Amazon VPC 主题。
步骤 1:创建集群
在这一步骤中,您将创建 Amazon DocumentDB 集群。
登录到 AWS 管理控制台 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb
。 -
在 Amazon DocumentDB 管理控制台上,集群下,选择创建。
-
在“创建 Amazon DocumentDB 集群”页面上,在集群类型部分中选择基于实例的集群(这是默认选项)。
注意
此类别中的另一个选项是弹性集群。要了解有关 Amazon DocumentDB 弹性集群的更多信息,请参阅 Amazon DocumentDB 弹性集群。
-
在集群配置部分中:
在集群标识符中,输入唯一名称,例如
mydocdbcluster。请注意,无论如何输入,控制台都会将所有集群的名称更改为小写。对于主引擎版本,选择 5.0.0。
-
在集群存储配置部分,选择 Amazon DocumentDB 标准(此为默认选项)。
注意
此类别中的另一个选项是 Amazon DocumentDB I/O 优化。要了解有关任一选项的更多信息,请参阅 Amazon DocumentDB 集群存储配置
-
在实例配置部分:
对于数据库实例类,选择内存优化类(包括 r 类)(这是默认值)。
另一个实例选项是 NVMe 支持的类。要了解更多信息,请参阅NVMe 支持的实例。
对于实例类,请选择 db.t3.medium。这符合获得 AWS 免费试用的资格。
对于实例数,选择 1 个实例。选择一个实例有助于成本最小化。如果这是生产系统,我们建议您预配置三个实例以便可用性高。
-
在连接部分中,保留默认设置:不连接到 EC2 计算资源。
-
在身份验证部分中,输入主要用户的用户名,然后选择自行管理。输入密码,然后确认密码。
如果您改为选择了在 AWS Secrets Manager 中管理,请参阅 使用 Amazon DocumentDB 进行密码管理以及 AWS Secrets Manager 以了解更多信息。
-
使其他所有选项保持默认,并选择创建集群。
Amazon DocumentDB 现在正配置您的集群,这可能耗时长达数分钟完成。
注意
有关集群状态值的信息,请参阅“监控 Amazon DocumentDB”一章中的 集群状态值。
步骤 2:连接到集群
使用 AWS CloudShell 连接到 Amazon DocumentDB 集群。
-
在 Amazon DocumentDB 管理控制台上的集群下,找到您创建的集群。单击集群旁边的复选框,选择您的集群。
-
单击连接到集群(位于操作下拉菜单旁边)。只有在您单击集群旁边的复选框并且区域集群和主实例的状态都显示为可用后,才会启用此按钮。将出现 CloudShell 运行命令屏幕。
-
在新环境名称字段中,输入唯一名称,例如“test”,然后单击创建并运行。将自动为您的 Amazon DocumentDB 数据库配置 VPC 环境详细信息。
-
出现提示时,输入您在“步骤 1:创建 Amazon DocumentDB 集群”(子步骤 7)中创建的密码。
在您输入密码并且提示符变成
rs0 [direct: primary] <env-name>>后,表示您已成功连接到您的 Amazon DocumentDB 集群。
注意
有关对 流进行问题排查的更多信息,请参阅 Amazon DocumentDB 问题排查。
步骤 3:插入和查询数据
现在,您已连接到自己的集群,您可以运行几个查询来熟悉如何使用文档数据库。
-
要插入单个文档,请输入以下内容:
db.collection.insertOne({"hello":"DocumentDB"})您会得到以下输出:
{ acknowledged: true, insertedId: ObjectId('673657216bdf6258466b128c') } -
您可以读取您用
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: { '0': 1, '1': 2, '2': 3, '3': 4 } } -
使用
find()命令返回个人资料集合中的所有文档。输入以下:db.profiles.find()您将获得将与您在步骤 3 中已键入数据匹配的输出。
-
利用筛选器对单个文档使用查询。输入以下:
db.profiles.find({name: "Katie"})您会得到以下输出:
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27} -
现在,让我们尝试查找个人资料并使用
findAndModify命令修改它。我们将用以下代码向用户 Matt 给予额外的 10 分: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 }
步骤 4:探索
恭喜您!您已成功完成基于 Amazon DocumentDB 实例的集群入门指南。
接下来做什么? 了解如何充分利用这个数据库及其热门功能:
注意
您通过此入门练习创建的集群将持续产生费用,除非您将其删除。有关说明,请参阅删除 Amazon DocumentDB 集群。