创建 Amazon DocumentDB 集群 - Amazon DocumentDB

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

创建 Amazon DocumentDB 集群

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

以下各节介绍如何使用 AWS Management Console 或创建 Amazon DocumentDB 集群。 AWS CLI然后,您可为该集群添加更多副本实例。使用控制台创建 Amazon DocumentDB 集群时,会同时自动为您创建一个主实例。如果您使用创建您的 AWS CLI Amazon DocumentDB 集群,则在集群的状态变为可用之后,您必须为该集群创建主实例。

先决条件

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

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

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

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

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

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

VPC 先决条件

您只能在亚马逊虚拟私有云(亚马逊)中创建亚马逊 DocumentDB 集群。VPC您的亚马逊在至少两个可用区中VPC必须至少有一个子网,这样您才能将其与 Amazon DocumentDB 集群一起使用。通过跨可用区分配您的集群实例,您可以确保集群中有可用的实例,避免出现可用区故障。

子网先决条件

创建 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 使用 AWS Identity and Access Management (IAM) 凭证进行连接,则您的IAM账户必须具有授予执行 Amazon DocumentDB 操作所需的权限的IAM策略。

    如果您使用IAM账户访问亚马逊 DocumentDB 控制台,则必须先 AWS Management Console 使用您的IAM账户登录。然后前往位于 /docdb 的亚马逊 DocumentDB 控制台。https://console.aws.amazon.com

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

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

使用创建集群和主实例 AWS Management Console

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

创建集群:使用默认设置

要使用默认设置创建包含实例的集群,请使用 AWS Management Console
  1. 登录 AWS Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com

  2. 如果您想在美国东部(弗吉尼亚北部)以外 AWS 区域 的其他地区创建集群,请从控制台右上角的列表中选择该区域。

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

    提示

    如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (Hamburger menu icon with three horizontal lines.)。

  4. 创建 Amazon DocumentDB 集群页中,完成配置窗格。

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

      集群命名约束:

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

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

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

      • 每个区域的亚马逊RDS、Neptune 和 Amazon DocumentDB 的所有集群都必须是唯一 AWS 账户的。

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

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

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

  5. 完成集群存储配置部分。

    选择 Amazon DocumentDB 标准(默认)或 Amazon DocumentDB I/O 优化。有关更多信息,请参阅 Amazon DocumentDB 集群存储配置

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

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

      主用户命名约束:

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

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

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

    2. 选择以下密码选项之一:

      • 托管于 AWS Secrets Manager-如果您想自动管理您的主用户密码 AWS Secrets Manager ,请选择此选项。

        如果您选择此选项,请通过创建自己的KMS密钥或使用 Secrets Manager 创建的密钥来配置密钥。

      • 自我管理-如果您想自行管理主用户密码,请选择此选项。如果选择此选项,请输入主用户的密码,然后进行确认。要登录您的集群,您必须使用主用户密码。

        密码约束:

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

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

          • /(正斜杠)

          • "(双引号)

          • @(@ 符号)

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

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

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

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

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

      • 网络设置-默认为使用defaultVPC安全组。

      • 集群选项 — 默认值为使用端口 27017 和默认参数组。

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

        重要

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

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

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

      • 维护 — 默认设置是让 Amazon DocumentDB 选择维护时段。

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

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

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

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

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

    1. 登录 AWS Management Console 并打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

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

      图片:资源列表中突出显示“安全组”链接选项。
    3. 从安全组列表中,找到您在创建集群时使用的安全组(很可能是 default 安全组),然后选中安全组名称左侧的框。

      图片:安全组列表中突出显示一个选中复选框的安全组。
    4. 操作菜单中,选择编辑入站规则,然后选择或输入规则限制。

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

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

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

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

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

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

创建集群:其他配置

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

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

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

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

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

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

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

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

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

    显示为集群配置加密的步骤的“Encryption (加密)”窗格屏幕截图。
    1. E ncryption-at-rest —选择以下选项之一:

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

      • 禁用加密 — 您的数据不会被加密。

    2. AWS KMSkey —只有在加密数据时才可用。在列表中,选择要用于加密此集群中的数据的密钥。默认为 (default) aws/rds

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

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

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

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

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

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

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

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

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

      • profiler — 设置为 enabled

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

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

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

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

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

      • 选择窗口-您可以指定一周中的某一天、UTC开始时间和持续时间,让 Amazon DocumentDB 对您的集群执行维护。

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

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

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

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

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

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

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

    1. 选择添加标签

    2. 键入标签的

    3. (可选)键入标签的

    要删除标签,请选择 Remove tag(删除标签)。

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

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

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

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

使用创建集群 AWS CLI

以下过程介绍如何使用启动亚马逊 DocumentDB 集群和创建亚马逊文档数据库副本。 AWS CLI

参数
  • --db-cluster-identifier – 必填项。标识此集群的一个小写字符串。

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

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

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

    • 每个区域的 AWS 每个账户的所有集群(跨亚马逊RDS、Amazon Neptune 和亚马逊 DocumentDB)必须是唯一的。

  • --engine – 必填项。必须是 docdb

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

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

  • --storage-type standard | iopt1—可选。默认值:standard。集群存储配置。有效值为 standard(标准)或 iopt1(I/O 优化)。

  • --master-username – 必填项。用于对用户进行身份验证的用户名。

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

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

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

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

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

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

      • /(正斜杠)

      • "(双引号)

      • @(@ 符号)

  • --manage-master-user-password — 可选。Amazon DocumentDB 生成主用户密码,并在其整个生命周期中在 Secrets Manager 中对其进行管理。

有关更多参数,请参阅CreateDBCluster

要启动亚马逊文档数据库集群,请使用 AWS CLI

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

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

注意

如果未指定db-subnet-group-namevpc-security-group-id,Amazon DocumentDB 将使用给定区域的默认子网组和亚马逊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" } }

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

重要

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

有关更多信息,请参阅亚马逊 DocumentDB API 参考CreateDBCluster中的。