创建 Amazon DocumentDB集群

Amazon DocumentDB集群由一些实例和一个表示该集群的数据的集群卷组成。集群卷作为单个虚拟卷在三个可用区之间的 6 个方向进行复制。集群包含一个主实例,以及可选的最多 15 个副本实例。

下面几节说明了如何使用 Amazon DocumentDB或 AWS 管理控制台 创建 AWS CLI.集群。然后,您可为该集群添加更多副本实例。使用控制台创建 Amazon DocumentDB集群时,会同时自动为您创建一个主实例。如果您使用 AWS CLI 创建 Amazon DocumentDB集群,则在集群的状态为 available (可用) 后,您必须为该集群创建主实例。

Prerequisites

以下是创建 Amazon DocumentDB集群的先决条件。

如果您没有 AWS 账户,请通过以下步骤创建一个账户。

注册 AWS

  1. 打开 https://aws.amazon.com/,然后选择 Create an AWS Account

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

VPC 先决条件

您只能在跨三个可用区的 Amazon DocumentDB (Amazon Virtual Private Cloud) 中创建 Amazon VPC集群。每个可用区必须至少包含一个子网。通过跨至少三个可用区分配您的集群实例,您可以确保集群中有可用的实例,避免出现可用区故障。Amazon DocumentDB集群的集群卷始终跨三个可用区提供持久性存储,数据丢失的可能性很小。

如果您要使用控制台创建 Amazon DocumentDB集群,则在默认情况下,控制台将在您的账户的默认 Amazon VPC. 中创建集群。或者,您也可以选择要在其中创建 Amazon DocumentDB集群的任何 VPC。要在 Amazon DocumentDB集群中使用您的 VPC,该 VPC 必须最少在三个可用区中均拥有一个子网。

子网先决条件

创建 Amazon DocumentDB集群时,您必须选择一个 VPC 和该 VPC 中的对应子网组来启动您的集群。子网确定可用区以及该可用区内要用于启动实例的 IP 范围。在本讨论中,术语子网可用区 可以互换使用。子网组是一组指定的子网(或可用区)。子网组可让您指定要用于启动 Amazon DocumentDB 实例的可用区。例如,在包含三个实例的集群中,为了实现高可用性,建议在单独的可用区中配置各个实例。因此,如果单个可用区出现故障,它只会影响单个实例。

Amazon DocumentDB 实例目前可在多达三个可用区中预配置。即使子网组拥有三个以上的子网,您也只能使用这三个子网来创建 Amazon DocumentDB 集群。因此,在创建子网组时,建议仅选择要将实例部署到的三个子网。在美国东部(弗吉尼亚北部)中,您的子网组可以有六个子网(或可用区)。但是,当已预配置一个 Amazon DocumentDB 集群后,Amazon DocumentDB 将选择这些可用区中将用于预配置实例的三个可用区。

例如,假设您在创建集群时,Amazon DocumentDB 选择可用区 {1A、1B 和 1C}。如果您尝试在可用区 {1D} 中创建实例,API 调用将失败。但是,如果您选择创建一个实例而不指定特定的可用区,Amazon DocumentDB 将代表您选择一个可用区。Amazon DocumentDB 使用某种算法对可用区中的实例进行负载平衡以帮助您实现高可用性。例如,如果配置了三个实例,则在默认情况下,将在三个可用区中配置它们,而不会在单个可用区中配置。

建议:

  • 除非您有特殊原因,否则请始终创建包含三个子网的子网组。这样做可帮助确保包含三个或更多实例的集群能够实现更高的可用性,因为将在三个可用区中预配置实例。

  • 始终将实例分散在多个可用区中以实现高可用性。切勿将集群的所有实例放在单个可用区中。

  • 由于故障转移事件随时可能发生,您不应假定主实例或副本实例始终位于特定可用区中。

其他先决条件

以下是创建 Amazon DocumentDB集群的一些其他先决条件:

  • 如要使用 AWS Identity and Access Management (IAM) 证书连接到 AWS,您的 IAM 账户必须拥有 IAM 策略来授予执行 Amazon DocumentDB操作所需的权限。

    如果要使用 IAM 账户访问 Amazon DocumentDB控制台,必须先使用您的 AWS 管理控制台 账户登录到 IAM 然后转至 Amazon DocumentDB 上的 https://console.aws.amazon.com/docdb. 控制台。

  • 如果要定制您的集群的配置参数,您必须指定集群参数组和具有必需参数设置的参数组。有关创建或修改集群参数组的信息,请参阅管理 Amazon DocumentDB 集群参数组.

  • 您必须确定要为集群指定的 TCP/IP 端口号。有些公司的防火墙不允许连接到 的默认端口。Amazon DocumentDB. 如果您公司的防火墙阻止该默认端口,请为您的集群选择其他端口。集群中的所有实例都使用同一端口。

使用 创建集群和主实例AWS 管理控制台

以下过程介绍如何使用控制台启动包含一个或多个实例的 Amazon DocumentDB集群。

创建集群:使用默认设置

使用 AWS 管理控制台创建包含使用默认设置的实例的集群

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

  2. 如果要在美国东部(弗吉尼亚北部)区域以外的 AWS 区域内创建集群,请在控制台右上部分的列表中选择相应区域。

  3. 在导航窗格中,选择 Clusters (集群),然后选择 Create (创建)

    提示

    如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (创建集群 - 图1)。

  4. Create Amazon DocumentDB Cluster (创建 Amazon DocumentDB 集群) 页中,完成 Configuration (配置) 窗格。

    1. Cluster identifier (集群标识符) — 接受 Amazon DocumentDB 提供的名称,或者为您的集群输入名称,例如 sample-cluster

      集群命名约束:

      • 长度为 [1—63] 个字母、数字或连字符。

      • 第一个字符必须是字母。

      • 不能以连字符结束或包含两个连续连字符。

      • 对于每个区域的每个 AWS 账户的所有集群(在 Amazon RDS、Neptune 和 Amazon DocumentDB中)必须是唯一的。

    2. 引擎版本 接受 4.0.0 的默认引擎版本,或者选择 3.6.0。—

    3. Instance class (实例类) — 接受默认值 db.r5.large,或者从列表中选择您需要的实例类。

    4. Number of instances (实例数) — 在列表中,选择要使用此集群创建的实例的数量。第一个实例为主实例,所有其他实例为只读副本实例。您可以在稍后添加和删除实例(如果需要)。默认情况下,Amazon DocumentDB 集群将以三个实例(一个主实例和两个副本)启动。

  5. 完成 Authentication (身份验证) 窗格。

    1. Master username (主用户名) — 输入主用户的名称。要登录您的集群,您必须使用主用户名称。

      主用户命名约束:

      • 长度为 [1—63] 个字母数字字符。

      • 第一个字符必须是字母。

      • 不能是数据库引擎的保留字。

    2. Master password (主密码) — 输入主用户的密码,然后确认该密码。要登录您的集群,您必须使用主密码。

      主密码约束:

      • 长度为 [8-100] 个可打印 ASCII 字符。

      • 可以使用任何可打印 ASCII 字符,以下字符除外:

        • /(正斜杠)

        • "(双引号)

        • @(@ 符号)

  1. 在屏幕的底部,选择以下选项之一:

    • 要立即创建集群,请选择 Create cluster (创建集群)

    • 要不创建集群,请选择 Cancel (取消)

    • 要在创建集群前进一步配置集群,请选择 Show additional configurations (显示其他配置),然后在创建集群:其他配置上继续。

      Additional Configurations (其他配置) 部分中包含的配置如下:

      • Network settings (网络设置) — 默认值为使用 default VPC 安全组。

      • Cluster options (集群选项) — 默认为使用端口 27017 和默认参数组。

      • Encryption (加密) — 默认值为使用 (default) aws/rds 密钥启用加密。

        重要

        集群加密后,就不能取消加密。

      • Backup (备份) — 默认值为保留备份 1 天并让 Amazon DocumentDB 选择备份时段。

      • Log exports (日志导出) — 默认设置是不将审核日志导出到 CloudWatch Logs。

      • Maintenance (维护) — 默认值为让 Amazon DocumentDB 选择维护时段。

      • 删除保护 — 防止您的集群被意外删除。使用控制台创建的集群的默认设置为已启用

      如果您现在接受默认设置,则可以稍后通过修改集群来更改其中的大部分。

  2. 为集群的安全组启用入站连接。

    如果未更改集群的默认设置,则会使用给定区域中的默认 VPC 的默认安全组创建一个集群。要连接到 Amazon DocumentDB,您必须在端口 27017(或所选的端口)上为集群的安全组启用入站连接。

    将入站连接添加到集群的安全组

    1. 登录 AWS 管理控制台并通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. 在主窗口的资源部分中,选择安全组

      创建集群 - 图2

    3. 从安全组列表中,找到您在创建集群时使用的安全组(很可能是 default 安全组),然后选中安全组名称左侧的框。

      创建集群 - 图3

    4. 操作菜单中,选择编辑入站规则,然后选择或输入规则限制。

      1. 类型 — 从列表中,选择要为网络流量打开的协议。

      2. 协议 — 从列表中,选择协议类型。

      3. 端口范围 — 对于自定义规则,请输入端口号或端口范围。确保端口号或范围包括您在创建集群时指定的端口(默认值:27017)。

      4. — 指定可以到达您的实例的流量。从列表中,选择流量源。如果选择自定义,请指定单个 IP 地址或以 CIDR 格式表示的 IP 地址范围(例如,203.0.113.5/32)。

      5. 描述 — 输入该规则的描述。

      6. 在创建完规则时,选择保存

创建集群:其他配置

如果要接受集群的默认设置,您可以跳过以下步骤并选择 Create cluster (创建集群).

  1. 完成 Network settings (网络设置) 窗格。

    ![

    1. 屏幕截图:显示用于配置网络设置的“Network settings (网络设置)”窗格和步骤。
    2. ](/projects/DocumentDB-20201111-zh/432f5f04c3bb7346370887ff0d26b72d.png)
    1. Virtual Private Cloud (VPC) — 在列表中,选择要在其中启动此集群的 Amazon VPC

    2. Subnet group (子网组) — 在列表中,选择要用于此集群的子网组。

    3. VPC security groups (VPC 安全组) — 在列表中为此集群选择 VPC 安全组。

  2. 完成 Cluster options (集群选项) 窗格。

    ![

    1. 显示包含集群设置配置步骤的“Cluster options (集群选项)”窗格屏幕截图。
    2. ](/projects/DocumentDB-20201111-zh/c3a32857a1b08d373221802fa26d71f0.png)
    1. Data base port (数据库端口)—使用向上和向下箭头来设置应用程序将用于连接到您的实例的 TCP/IP 端口。

    2. Cluster parameter group (集群参数组) — 在参数组列表中,为此集群选择集群参数组。

  3. 完成 Encryption (加密) 窗格。

    ![

    1. 显示为集群配置加密的步骤的“Encryption (加密)”窗格屏幕截图。
    2. ](/projects/DocumentDB-20201111-zh/7e1ca0a41cb6df221344daea4479e477.png)
    1. Encryption-at-rest (静态加密)—选择以下选项之一:

      • Enable encryption (启用加密) — 默认值。所有静态数据都会加密。如果您选择加密您的数据,则无法撤消此操作。

      • Disable encryption (禁用加密) — 您的数据不会加密。

    2. Master key (主密钥)—仅当您要加密数据时才可用。在列表中,选择要用于加密此集群中的数据的密钥。默认值为 (default) aws/rds

      如果您选择 Enter a key ARN (输入密钥 ARN),则必须为密钥输入 Amazon 资源名称 (ARN)。

    Backup retention period (自动备份保留期)—在列表中,选择您希望自动备份保留的天数。

  4. 完成 Backup (备份) 窗格。

    ![

    1. 显示用于配置集群备份时段的步骤的“Backup (备份)”窗格屏幕截图。
    2. ](/projects/DocumentDB-20201111-zh/297e0dd7c31ba77b2aa0b50398981be9.png)
    1. Backup retention period (备份保留期) — 在列表中,选择在删除此集群的自动备份前保留它们的天数。

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

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

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

  5. 通过选择要导出到 的日志类型,完成 Log exports (日志导出)CloudWatch Logs 窗格。

    ![

    1. Log exports (日志导出) 窗格屏幕截图,显示了配置集群的 DML 日志记录的步骤。
    2. ](/projects/DocumentDB-20201111-zh/eba304bea3afae32f433587a75b1fcc8.png)
    • Audit logs (审计日志) — 选择此选项可启用将审计日志导出到 Amazon CloudWatch Logs. 的功能。如果您选择 Audit logs (审核日志),则必须在集群的自定义参数组中启用 audit_logs。有关更多信息,请参阅 审核 Amazon DocumentDB 事件.

    • Profiler logs (分析器日志) — 选择此选项可启用将操作分析器日志导出到 Amazon CloudWatch Logs. 的功能。如果选择 Profiler logs (分析器日志),则还必须在集群的自定义参数组中修改以下参数:

      • profiler—设置为 enabled

      • profiler_threshold_ms— 设置 [0-INT_MAX] 的值,以设置分析操作的阈值。

      • profiler_sampling_rate— 设置 [0.0-1.0] 的值,以设置要分析的缓慢操作的百分比。

      有关更多信息,请参阅 Profiling Amazon DocumentDB Operations.

  6. 完成 Maintenance (维护) 窗格。

    ![

    1. 显示用于配置集群维护时段的步骤的“Maintenance (维护)”窗格屏幕截图。
    2. ](/projects/DocumentDB-20201111-zh/9ea7ea830870d158e865ba2b3473c6e1.png)
    1. 选择以下选项之一

      • Select window (选择时段) — 您可以指定 Amazon DocumentDB 对您的集群执行维护的周日期、UTC 开始时间和持续时间。

        1. Start day (开始日) — 在列表中,选择开始集群维护的一周中的天。

        2. Start time (开始时间) — 在列表中,选择开始维护时和分 (UTC)。

        3. Duration (持续时间) — 在列表中,选择要为集群维护分配的时长。如果无法在指定时间内完成维护,维护过程将在指定时间过后继续进行,直到完成。

      • No preference (无首选项) — Amazon DocumentDB 为执行维护选择一周中的天、开始时间和持续时间。

  7. 如果要向此集群添加一个或多个标签,请完成 Tags (标签) 窗格。

    ![

    1. “启用删除保护” 复选框(处于选中状态)的屏幕截图。
    2. ](/projects/DocumentDB-20201111-zh/680578ed70abd99f99cffb0d7a025f14.png)

    对于每个要添加到集群的标签,请重复以下步骤。一个集群最多可以有10

    1. 选择添加标签.

    2. 键入标签的.

    3. (可选)键入标签的.

    要删除标签,请选择删除标签.

  8. 在使用控制台创建集群时,将默认启用删除保护 要禁用删除保护,请清除启用删除保护. 启用后,删除保护可以防止删除集群。要删除某个受到删除保护的集群,您必须先修改集群以禁用删除保护。

    ![

    1. “启用删除保护” 复选框(处于选中状态)的屏幕截图。
    2. ](/projects/DocumentDB-20201111-zh/72ab113749489e3ecd10e00a61859f19.png)

    有关删除保护的更多信息,请参阅 删除 Amazon DocumentDB集群.

  9. 要创建集群,请选择创建集群. 否则,选择取消.

使用 Amazon DocumentDB 启动 AWS CLI集群

以下过程介绍如何使用 AWS CLI启动 Amazon DocumentDB集群并创建 Amazon DocumentDB副本。

Parameters

  • --db-cluster-identifier—必需。标识此集群的一个小写字符串。

    集群命名约束:
    • 长度为 [1–63] 个字母、数字或连字符。

    • 第一个字符必须是字母。

    • 不能以连字符结束或包含两个连续连字符。

    • 对于每个区域的每个 AWS 账户的所有集群(在 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB中)必须是唯一的。

  • --engine—必需。必须是 docdb.

  • --deletion-protection | --no-deletion-protection—可选。启用删除保护后,可以防止删除集群。当您使用 AWS CLI 时,默认设置为已禁用删除保护。

    有关删除保护的更多信息,请参阅 删除 Amazon DocumentDB集群.

  • --master-username—必需。用于对用户进行身份验证的用户名。

    主用户命名约束:
    • 长度为 [1-63] 个字母数字字符。

    • 第一个字符必须是字母。

    • 不能是数据库引擎的保留字。

  • --master-user-password—必需。用于对用户进行身份验证的用户密码。

    主密码约束:
    • 长度为 [8-100] 个可打印 ASCII 字符。

    • 可以使用任何可打印 ASCII 字符,以下字符除外:

      • /(正斜杠)

      • (双引号)

      • @(@ 符号)

有关更多参数,请参阅CreateDBCluster.

使用 Amazon DocumentDB 启动 AWS CLI集群

要创建 Amazon DocumentDB 集群,请调用 create-db-cluster AWS CLI。以下 AWS CLI 命令创建一个名为 Amazon DocumentDB 的 sample-cluster 集群并启用了删除保护。有关删除保护的更多信息,请参阅

此外,--engine-version 是一个可选参数,默认为最新的主引擎版本。当前主引擎版本为 4.0.0。当新的主引擎版本发布时,--engine-version 的默认引擎版本将更新以反映最新的主引擎版本。因此,对于生产工作负载,特别是依赖于脚本、自动化或 AWS CloudFormation 模板的工作负载,我们建议您针对预期主要版本明确指定 --engine-version

注意

如果未指定 db-subnet-group-namevpc-security-group-id,Amazon DocumentDB 将对给定区域使用默认子网组和 Amazon VPC 安全组。

对于 Linux、macOS 或 Unix:

  1. aws docdb create-db-cluster \
  2. --db-cluster-identifier sample-cluster \
  3. --engine docdb \
  4. --engine-version 4.0.0 \
  5. --deletion-protection \
  6. --master-username master-user \
  7. --master-user-password password

对于 Windows:

  1. aws docdb create-db-cluster ^
  2. --db-cluster-identifier sample-cluster ^
  3. --engine docdb ^
  4. --engine-version 4.0.0 ^
  5. --deletion-protection ^
  6. --master-username master-user ^
  7. --master-user-password password

此操作的输出将类似于下文(JSON 格式)。

  1. {
  2. "DBCluster": {
  3. "StorageEncrypted": false,
  4. "DBClusterMembers": [],
  5. "Engine": "docdb",
  6. "DeletionProtection" : "enabled",
  7. "ClusterCreateTime": "2018-11-26T17:15:19.885Z",
  8. "DBSubnetGroup": "default",
  9. "EngineVersion": "4.0.0",
  10. "MasterUsername": "master-user",
  11. "BackupRetentionPeriod": 1,
  12. "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster",
  13. "DBClusterIdentifier": "sample-cluster",
  14. "MultiAZ": false,
  15. "DBClusterParameterGroup": "default.docdb4.0",
  16. "PreferredBackupWindow": "09:12-09:42",
  17. "DbClusterResourceId": "cluster-KQSGI4MHU4NTDDRVNLNTU7XVAY",
  18. "PreferredMaintenanceWindow": "tue:04:17-tue:04:47",
  19. "Port": 27017,
  20. "Status": "creating",
  21. "ReaderEndpoint": "sample-cluster.cluster-ro-sfcrlcjcoroz.us-east-1.docdb.amazonaws.com",
  22. "AssociatedRoles": [],
  23. "HostedZoneId": "ZNKXTT8WH85VW",
  24. "VpcSecurityGroups": [
  25. {
  26. "VpcSecurityGroupId": "sg-77186e0d",
  27. "Status": "active"
  28. }
  29. ],
  30. "AvailabilityZones": [
  31. "us-east-1a",
  32. "us-east-1c",
  33. "us-east-1e"
  34. ],
  35. "Endpoint": "sample-cluster.cluster-sfcrlcjcoroz.us-east-1.docdb.amazonaws.com"
  36. }
  37. }

创建集群需要几分钟时间。您可以使用 AWS 管理控制台或 AWS CLI 监控集群的状态。有关更多信息,请参阅 监控 Amazon DocumentDB 集群状态.

重要

当您使用 AWS CLI 创建 Amazon DocumentDB集群时,将不会创建实例。因此,您必须显式创建主实例和所需的任何副本实例。您可以使用控制台或 AWS CLI 来创建实例。有关更多信息,请参阅 将 Amazon DocumentDB 实例添加到集群.

有关更多信息,请参阅 CreateDBCluster API 参考 中的 Amazon DocumentDB