开始使用 Amazon DocumentDB 弹性集群 - Amazon DocumentDB

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

开始使用 Amazon DocumentDB 弹性集群

这个入门部分将向您介绍如何创建和查询您的第一个弹性集群。

有许多连接和开始使用 Amazon DocumentDB 的方式。以下过程是用户开始使用我们强大文档数据库的最快捷、最简便的方法。本指南使用 AWS CloudShell 直接从 AWS 管理控制台 连接和查询 Amazon DocumentDB 集群。有资格使用 AWS 免费套餐的新客户可免费使用 Amazon DocumentDB 和 CloudShell。如果您的 AWS CloudShell 环境或 Amazon DocumentDB 弹性集群使用免费套餐之外的资源,您需要以正常的 AWS 费率为这些资源付费。本指南将让你在不到 5 分钟内入门 Amazon DocumentDB。

先决条件

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

已创建 Amazon Web Services(AWS)账户

在开始使用 Amazon DocumentDB 之前,您必须拥有 Amazon Web Services(AWS)账户。AWS 账户是免费的。您只需为使用的服务和资源付费。

如果您还没有 AWS 账户,请完成以下步骤来创建一个。

注册 AWS 账户
  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明操作。

    在注册时,将接到电话或收到短信,要求使用电话键盘输入一个验证码。

    当您注册 AWS 账户 时,系统将会创建一个 AWS 账户根用户。根用户有权访问该账户中的所有 AWS 服务和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务

设置所需的 AWS Identity and Access Management(IAM)权限。

访问以管理 Amazon DocumentDB 资源(如集群、实例和集群参数组)时需要提供 AWS可用来验证请求身份的凭证。有关更多信息,请参阅 适用于 Amazon DocumentDB 的 Identity and Access Management

  1. 在 AWS 管理控制台 的搜索栏中,键入 IAM 并且在下拉菜单中选择 IAM

  2. 一旦您处于 IAM 控制台中,就从导航窗格选择用户

  3. 选择您的用户名。

  4. 单击添加更多权限

  5. 选择直接附加策略

  6. 在搜索栏中键入 AmazonDocDBElasticFullAccess,并且一旦它出现在搜索结果中就选择之。

  7. 单击下一步

  8. 单击添加更多权限

注意

您的 AWS 账户在每个区域中均包含一个默认 VPC。如果您选择使用 Amazon VPC,请完成《Amazon VPC 用户指南》中的创建 Amazon VPC 主题。

第 1 步:创建弹性集群

在这个部分,我们将解释如何配合以下说明使用 AWS 管理控制台 或 AWS CLI,创建一个全新的弹性集群。

Using the AWS 管理控制台

使用 AWS 管理控制台 创建弹性集群配置:

  1. 登录到 AWS 管理控制台 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb

  2. Amazon DocumentDB 管理控制台上,集群下,选择创建

    弹性集群表显示没有集群作为起点。
  3. 创建 Amazon DocumentDB 集群页面上,在集群类型部分中选择弹性集群

    弹性集群的“集群类型”对话框显示了基于实例的集群和弹性集群的选项。
  4. 配置部分中,配置以下内容:

    1. 集群名称字段中,输入唯一集群标识符(遵循字段下方的命名要求)。

    2. 分片计数字段中,输入您在自身集群中想要的分片的数目。每个集群的最大分片数目为 32。

      注意

      将对每个分片部署两个节点。两个节点将具有相同的分片容量。

    3. 分片实例数字段中,选择想要与每个分片关联的副本实例的数量。分片实例的最大数量为 16 个,以 1 个为增量。所有副本实例都有相同的分片容量,具体定义见以下字段。出于测试目的,默认值 2 应已足够。

      注意

      副本实例的数量适用于弹性集群中的所有分片。分片实例计数值为 1 表示有一个写入器实例,其他任何实例都是可用于读取和提高可用性的副本。出于测试目的,默认值 2 应已足够。

    4. 分片容量字段中,选择您想要与每个分片实例关联的虚拟 CPU (vCPU) 的数目。每个分片实例的最大 vCPU 数目为 64。允许值为 2、4、8、16、32、64。出于测试目的,默认值 2 应已足够。

    5. 虚拟私有云(VPC)字段中,从下拉列表中选择一个 VPC。

    6. 对于子网 VPC 安全组,您可以使用默认值或选择您选定的三个子网和多达三个 VPC 安全组(最少一个)。

    弹性集群配置对话框显示了可配置字段。
  5. 身份验证部分,在用户名字段中输入确定主用户登录名称的字符串。

    密码字段中,输入符合说明的唯一密码,然后确认该密码。

    “身份验证”部分,其中包含用户名和密码的输入字段。
  6. 加密部分中,保留默认设置(默认密钥)。

    或者,您可以输入自己创建过的 AWS KMS key ARN。有关更多信息,请参阅 用于 Amazon DocumentDB 弹性集群的静态数据加密

    重要

    必须对弹性集群启用加密。

  7. 备份部分,根据您的备份要求编辑字段。出于测试目的,您可以保留默认设置。

    “备份”对话框的屏幕截图,其中显示了用于配置集群备份时段的步骤。
    1. 备份留存期 — 在列表中,选择在删除此集群的自动备份前保留它们的天数。

    2. 备份时段 — 设置 Amazon DocumentDB 要备份此集群的每日时间和持续时间。

      1. 如果要配置创建备份的时间和时长,请选择选择时段

        开始时间 — 在第一个列表中,选择开始自动备份的开始时间小时 (UTC)。在第二个列表中,选择您希望自动备份开始的时间(分钟)。

        持续时间 — 在该列表中,选择要向创建自动备份分配的小时数。

      2. 如果想要 Amazon DocumentDB 选择创建备份的时间和时长,请选择无首选项

  8. 维护部分中,选择对集群进行修改或修补的日期、时间和持续时间。出于测试目的,您可以保留默认设置。

    “维护”部分显示了维护时段选项。
  9. 选择创建集群

弹性集群现正在预配置。此过程可能需要数分钟完成。当弹性集群状态在集群列表中显示为可用时,可以连接到您的集群。

Using the AWS CLI

要使用 AWS CLI 创建弹性集群,请使用带以下参数的 create-cluster 操作:

  • --cluster-name – 必填项。创建期间输入或上次修改的弹性扩展集群的当前名称。

  • --shard-capacity – 必填项。分配给每个分片的 vCPU 的数目。最大值为 64。允许值为 2、4、8、16、32、64。

  • --shard-count – 必填项。分配给集群的分片的数目。最大值为 32。

  • --shard-instance-count—可选。适用于此集群中所有分片的副本实例数量。最大值为 16。

  • --admin-user-name – 必填项。与管理用户关联的用户名。

  • --admin-user-password – 必填项。与管理用户关联的密码。

  • --auth-type – 必填项。用于确定从何处获取用于访问弹性集群的密码的身份验证类型。有效类型为 PLAIN_TEXTSECRET_ARN

  • --vpc-security-group-ids—可选。要与此集群关联的 EC2 VPC 安全组的列表。

  • --preferred-maintenance-window—可选。配置可进行系统维护的每周时间范围(采用通用协调时间(UTC))。

    格式为:ddd:hh24:mi-ddd:hh24:mi。有效值 (ddd):Mon、Tue、Wed、Thu、Fri、Sat、Sun

    默认值为每个 Amazon Web Services 区域 8 小时的时间段中随机选择的 30 分钟时段(随机选取周中的某天进行)。

    至少 30 分钟的窗口。

  • --kms-key-id—可选。配置已加密集群的 KMS 密钥标识符。

    KMS 密钥标识符是 AWS KMS 加密密钥的 Amazon 资源名称(ARN)。如果使用拥有用于加密新集群的 KMS 加密密钥的同一 Amazon Web Services 账户创建集群,则可以使用 KMS 密钥别名而不是 KMS 加密密钥的 ARN。

    如果未指定加密密钥并且如果 StorageEncrypted 参数为真,则 Amazon DocumentDB 将使用您的默认加密密钥。

  • --preferred-backup-window—可选。创建自动备份的每日首选时间范围。默认值为从每个 AWS 区域 的 8 小时时间段中随机选择的 30 分钟时间。

  • --backup-retention-period — 可选。自动备份的保留天数。默认值是 1。

  • --storage-encrypted—可选。配置集群是已加密还是未加密。

    --no-storage-encrypted 指定集群未加密。

  • --subnet-ids—可选。配置网络子网 ID。

在以下示例中,将每个用户输入占位符替换为您自己的信息。

注意

以下示例包括创建特定 KMS 密钥。要使用默认 KMS 密钥,请不要包含 --kms-key-id 参数。

对于 Linux、macOS 或 Unix:

aws docdb-elastic create-cluster \ --cluster-name sample-cluster-123 \ --shard-capacity 8 \ --shard-count 4 \ --shard-instance-count 3 \ --auth-type PLAIN_TEXT \ --admin-user-name testadmin \ --admin-user-password testPassword \ --vpc-security-group-ids ec-65f40350 \ --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \ --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \ --preferred-backup-window 18:00-18:30 \ --backup-retention-period 7

对于 Windows:

aws docdb-elastic create-cluster ^ --cluster-name sample-cluster-123 ^ --shard-capacity 8 ^ --shard-count 4 ^ --shard-instance-count 3 ^ --auth-type PLAIN_TEXT ^ --admin-user-name testadmin ^ --admin-user-password testPassword ^ --vpc-security-group-ids ec-65f40350 ^ --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^ --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \ --preferred-backup-window 18:00-18:30 \ --backup-retention-period 7

步骤 2:连接到您的弹性集群

使用 AWS CloudShell 连接到您的 Amazon DocumentDB 弹性集群。

  1. 在 Amazon DocumentDB 管理控制台上的集群下,找到您创建的弹性集群。单击集群旁边的复选框,选择您的集群。

    Amazon DocumentDB 集群管理界面,其中显示了弹性集群
  2. 单击连接到集群(位于操作下拉菜单旁边)。只有在您单击集群旁边的复选框并且集群的状态显示为可用后,才会启用此按钮。将出现 CloudShell 运行命令屏幕。

  3. 新环境名称字段中,输入唯一名称,例如“test”,然后单击创建并运行。将自动为您的 Amazon DocumentDB 数据库配置 VPC 环境详细信息。

    弹性集群 CloudShell“运行命令”屏幕,其中显示请求新的环境名称
  4. 出现提示时,输入您在“步骤 1:创建 Amazon DocumentDB 弹性集群”(子步骤 5)中创建的密码。

    弹性集群 CloudShell 屏幕,其中显示请求用户密码

    在您输入密码并且提示符变成 direct: mongos] <env-name>> 后,表示您已成功连接到您的 Amazon DocumentDB 集群

注意

有关对 流进行问题排查的更多信息,请参阅 Amazon DocumentDB 问题排查

步骤 3:对您的集合分片,插入和查询数据

弹性集群增加对 Amazon DocumentDB 中分片过程的支持。既然您已连接到集群,您可以对集群分片、插入数据并运行数个查询。

  1. 要对集合分片,请输入以下:

    sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })
  2. 要插入单个文档,请输入以下内容:

    db.Employee1.insertOne({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })

    以下输出显示:

    WriteResult({ "nInserted" : 1 })
  3. 要阅读您编写的文档,请输入以下findOne()命令(它返回单一文档):

    db.Employee1.findOne()

    以下输出显示:

    { "_id" : ObjectId("61f344e0594fe1a1685a8151"), "EmployeeID" : 1, "Name" : "Joe", "LastName" : "Bruin", "level" : 1 }
  4. 要执行若干更多查询,请考虑游戏配制文件用例。首先,将几个条目插入标题为“员工”的集合。输入以下信息:

    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': ObjectId('679d02cd6b5a0581be78bcbd'), '1': ObjectId('679d02cd6b5a0581be78bcbe'), '2': ObjectId('679d02cd6b5a0581be78bcbf'), '3': ObjectId('679d02cd6b5a0581be78bcc0') } }
  5. 要返回配制文件集合中的所有文档,请输入find () 命令:

    db.Employee.find()

    您在步骤 4 中输入的数据显示。

  6. 要查询单一文档,请纳入过滤器(例如:“Katie”)。输入以下信息:

    db.Employee.find({name: "Katie"})

    以下输出显示:

    [
 {
 _id: ObjectId('679d02cd6b5a0581be78bcc0'),
 Employeeid: 4,
 name: 'Katie',
 lastname: 'Schaper',
 level: 3
 }
 ]
  7. 要查找配置文件并对其进行修改,请输入findAndModify命令。在此示例中,给予员工“Matt”更高等级,即 “14”:

    db.Employee.findAndModify({ query: { "Employeeid" : 1, "name" : "Matt"}, update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } })

    以下输出显示(请注意,级别尚未更改):

    {
 _id: ObjectId('679d02cd6b5a0581be78bcbd'),
 Employeeid: 1,
 name: 'Matt',
 lastname: 'Winkle',
 level: 12
 }
  8. 要验证级别提高,请输入以下查询:

    db.Employee.find({name: "Matt"})

    以下输出显示:

    [ {
 _id: ObjectId('679d02cd6b5a0581be78bcbd'),
 Employeeid: 1,
 name: 'Matt',
 lastname: 'Winkle',
 level: 14
 } ]

步骤 4:探索

恭喜您!您已成功完成 Amazon DocumentDB 弹性集群的入门过程。

接下来做什么? 了解如何充分利用这个数据库及其热门功能:

注意

您在此入门过程中创建的弹性集群将继续产生费用,除非您将其删除。有关指导,请参阅删除弹性集群