创建 Amazon DocumentDB 集群 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

创建 Amazon DocumentDB 集群

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

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

Prerequisites

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

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

注册 Amazon Web Services 账户

  1. 打开 https://portal.aws.amazon.com/billing/signup

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

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

VPC 先决条件

您只能在跨三个可用区的 Amazon Virtual Private Cloud (Amazon VPC) 中创建 Amazon DocumentDB 集群。每个可用区必须至少包含一个子网。通过跨至少三个可用区分配您的集群实例,您可以确保集群中有可用的实例,避免出现可用区故障。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 集群的一些其他先决条件:

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

    如果要使用 IAM 账户访问 Amazon DocumentDB 控制台,必须先登录到Amazon Web Services Management Console与您的 IAM 账户一起使用。然后转至 Amazon DocumentDB 控制台,网址为https://console.aws.amazon.com/docdb.

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

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

使用 Amazon Web Services Management Console创建集群和主实例

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

创建群集:使用默认设置

使用 Amazon Web Services Management Console创建包含使用默认设置的实例的集群

  1. 登录到Amazon Web Services Management Console,然后打开 Amazon DocumentDB 控制台https://console.aws.amazon.com/docdb.

  2. 如果您要在一个 Amazon Web Services 区域 除美国东部(弗吉尼亚北部)区域之外,请从控制台右上部分的列表中选择相应区域。

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

    提示

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

  4. 在存储库的创建 Amazon DocumentDB 集群页面上,完成配置窗格。

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

      集群命名约束:

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

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

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

      • 对于每个 Amazon RDS、Neptune 和 Amazon DocumentDB 和必须是唯一的。 Amazon Web Services 账户 ,每个区域。

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

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

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

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

    1. 主用户名-输入主用户的名称。要登录您的集群,您必须使用主用户名称。

      主用户命名约束:

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

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

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

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

      主密码约束:

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

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

        • /(正斜杠)

        • "(双引号)

        • @(@ 符号)

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

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

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

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

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

      • Network settings (网络设置)-默认情况下使用defaultVPC security group (VPC 安全组)。

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

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

        重要

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

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

      • 日志导出— 默认为不将审核日志导出到 CloudWatch Logs。

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

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

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

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

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

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

    1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

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

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

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

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

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

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

      5. 说明-输入对此规则的描述。

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

创建群集:其他配置

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

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

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

    2. 子网组-在列表中,选择要用于此集群的子网组。

    3. VPC 安全组— 在列表中,为此集群选择 VPC 安全组。

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

    
                           显示包含集群设置配置步骤的“Cluster options (集群选项)”窗格屏幕截图。
    1. 数据基础端口-使用向上和向下箭头来设置应用程序将用于连接到您的实例的 TCP/IP 端口。

    2. 集群参数组-在参数组列表中,为此集群选择集群参数组。

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

    
                           显示为集群配置加密的步骤的“Encryption (加密)”窗格屏幕截图。
    1. 静态加密— 选择下列项之一:

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

      • 禁用加密-您的数据未加密。

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

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

    备份保留期-在列表中,选择要保留自动备份的天数。

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

    
                           显示用于配置集群备份时段的步骤的“Backup (备份)”窗格屏幕截图。
    1. 备份保留期-在列表中,选择在删除此集群的自动备份前保留它们的天数。

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

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

      2. Duration-在列表中,选择要为创建自动备份分配的小时数。

  5. 完成日志导出窗格中选择要导出到 CloudWatch Logs 的日志类型。

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

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

      • profiler-设置为enabled.

      • profiler_threshold_ms-设置为一个值[0-INT_MAX]设置分析操作的阈值。

      • profiler_sampling_rate-设置为一个值[0.0-1.0]设置要分析的缓慢操作的百分比。

      有关更多信息,请参阅 分析 Amazon DocumentDB 操作

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

    
                           显示用于配置集群维护时段的步骤的“Maintenance (维护)”窗格屏幕截图。
    1. 选择以下选项之一

      • “选择” 窗口-您可以指定 Amazon DocumentDB 对集群执行维护的周日期、UTC 开始时间和持续时间。

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

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

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

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

  7. 如果您要将一个或多个标签添加到此集群,请填写标签窗格。

    
                           “启用删除保护” 复选框(处于选中状态)的屏幕截图。

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

    1. 选择添加标签

    2. 键入标签的

    3. (可选)键入标签的

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

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

    
                           “启用删除保护” 复选框(处于选中状态)的屏幕截图。

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

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

使用启动 Amazon DocumentDB 集群Amazon CLI

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

Parameters

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

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

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

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

    • 对于每个单位的所有集群(跨 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB)必须是唯一的。Amazon帐户,每个区域。

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

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

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

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

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

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

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

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

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

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

      • /(正斜杠)

      • "(双引号)

      • @(@ 符号)

有关更多参数,请参阅 CreateDBCluster

使用启动 Amazon DocumentDB 集群Amazon CLI

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

另外,--engine-version是默认为最新的主引擎版本的可选参数。当前主要引擎版本为 4.0.0。发布新的主要引擎版本时,--engine-version将被更新,以反映历时的主要引擎版本. 因此,对于生产工作负载,尤其是那些依赖于脚本编写、自动化或Amazon CloudFormation模板,建议您明确指定--engine-version设置为预期主要版本。

注意

如果db-subnet-group-name或者vpc-security-group-id,则 Amazon DocumentDB 将为给定区域使用默认子网组和 Amazon VPC 安全组。

对于 Linux、macOS 或 Unix:

aws docdb create-db-cluster \ --db-cluster-identifier sample-cluster \ --engine docdb \ --engine-version 4.0.0 \ --deletion-protection \ --master-username masteruser \ --master-user-password password

对于 Windows:

aws docdb create-db-cluster ^ --db-cluster-identifier sample-cluster ^ --engine docdb ^ --engine-version 4.0.0 ^ --deletion-protection ^ --master-username masteruser ^ --master-user-password password

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

{ "DBCluster": { "StorageEncrypted": false, "DBClusterMembers": [], "Engine": "docdb", "DeletionProtection" : "enabled", "ClusterCreateTime": "2018-11-26T17:15:19.885Z", "DBSubnetGroup": "default", "EngineVersion": "4.0.0", "MasterUsername": "masteruser", "BackupRetentionPeriod": 1, "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster", "DBClusterIdentifier": "sample-cluster", "MultiAZ": false, "DBClusterParameterGroup": "default.docdb4.0", "PreferredBackupWindow": "09:12-09:42", "DbClusterResourceId": "cluster-KQSGI4MHU4NTDDRVNLNTU7XVAY", "PreferredMaintenanceWindow": "tue:04:17-tue:04:47", "Port": 27017, "Status": "creating", "ReaderEndpoint": "sample-cluster.cluster-ro-sfcrlcjcoroz.us-east-1.docdb.amazonaws.com", "AssociatedRoles": [], "HostedZoneId": "ZNKXTT8WH85VW", "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-77186e0d", "Status": "active" } ], "AvailabilityZones": [ "us-east-1a", "us-east-1c", "us-east-1e" ], "Endpoint": "sample-cluster.cluster-sfcrlcjcoroz.us-east-1.docdb.amazonaws.com" } }

创建集群需要几分钟时间。您可以使用 Amazon Web Services Management Console或 Amazon CLI 监控集群的状态。有关更多信息,请参阅 监控 Amazon DocumentDB 集群的状态

重要

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

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