创建 Amazon DocumentDB 集群
Amazon DocumentDB 集群由一些实例和一个表示该集群的数据的集群卷组成。集群卷作为单个虚拟卷在三个可用区之间的 6 个方向进行复制。集群包含一个主实例,以及可选的最多 15 个副本实例。
下面几节说明了如何使用 Amazon Web Services Management Console 或 Amazon CLI 创建 Amazon DocumentDB 集群。然后,您可为该集群添加更多副本实例。使用控制台创建 Amazon DocumentDB 集群时,会同时自动为您创建一个主实例。如果使用 Amazon CLI 创建 Amazon DocumentDB 集群,则在集群状态变为可用后,您随后必须为该集群创建主实例。
先决条件
以下是创建 Amazon DocumentDB 集群的先决条件。
如果您还没有 Amazon Web Services 账户,请完成以下步骤来创建一个。
注册 Amazon Web Services 账户
按照屏幕上的说明进行操作。
在注册时,将接到一通电话,要求使用电话键盘输入一个验证码。
当您注册 Amazon Web Services 账户时,系统将会创建一个 Amazon Web Services 账户根用户。根用户有权访问该账户中的所有 Amazon Web Services 服务 和资源。作为安全最佳实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
VPC 先决条件
只能在 Amazon Virtual Private Cloud (Amazon VPC) 中创建 Amazon DocumentDB 集群。要在 Amazon DocumentDB 集群中使用您的 Amazon VPC,该 Amazon 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 Identity and Access Management (IAM) 凭证连接到 Amazon,您的 IAM 账户必须拥有 IAM policy 来授予执行 Amazon DocumentDB 操作所需的权限。
如果要使用 IAM 账户访问 Amazon DocumentDB 控制台,必须先使用您的 IAM 账户登录 Amazon Web Services Management Console。然后通过以下网址打开 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 创建包含使用默认设置的实例的集群
登录到 Amazon Web Services Management Console 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb
。 -
如果要在美国东部(弗吉尼亚州北部)区域以外的 Amazon Web Services 区域 内创建集群,请在控制台右上部分的列表中选择相应区域。
-
在导航窗格中,选择 Clusters (集群),然后选择 Create (创建)。
提示
如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 ()。
-
在创建 Amazon DocumentDB 集群页中,完成配置窗格。
-
集群标识符 — 接受 Amazon DocumentDB 提供的名称,或者为您的集群输入名称,例如
sample-cluster
。集群命名约束:
-
长度为 [1-63] 个字母、数字或连字符。
-
第一个字符必须是字母。
-
不能以连字符结束或包含两个连续连字符。
-
对于每个区域的每个 Amazon Web Services 账户的所有集群(跨 Amazon RDS、Neptune 和 Amazon DocumentDB)必须是唯一的。
-
-
引擎版本 — 接受默认引擎版本 4.0.0,或者可以选择 3.6.0。
-
实例类 — 接受默认值
db.r5.large
,或者从列表中选择您需要的实例类。 -
实例数 — 在列表中,选择要使用此集群创建的实例的数量。第一个实例为主实例,所有其他实例为只读副本实例。您可以在稍后添加和删除实例(如果需要)。默认情况下,Amazon DocumentDB 集群将以三个实例(一个主实例和两个副本)启动。
-
-
完成集群存储配置部分。
选择 Amazon DocumentDB 标准(默认)或 Amazon DocumentDB I/O 优化。有关更多信息,请参阅 Amazon DocumentDB 集群存储配置。
-
完成 Authentication (身份验证) 窗格。
-
用户名 — 输入主用户的名称。要登录您的集群,您必须使用主用户名称。
主用户命名约束:
-
长度为 [1—63] 个字母数字字符。
-
第一个字符必须是字母。
-
不能是数据库引擎的保留字。
-
-
密码 — 输入主用户的密码,然后确认该密码。要登录您的集群,您必须使用主用户密码。
密码约束:
-
长度为 [8-100] 个可打印 ASCII 字符。
-
可以使用任何可打印 ASCII 字符,以下字符除外:
-
/
(正斜杠) -
"
(双引号) -
@
(@ 符号)
-
-
-
-
在屏幕的底部,选择以下选项之一:
-
要立即创建集群,请选择 Create cluster (创建集群)。
-
要不创建集群,请选择 Cancel (取消)。
-
要在创建集群前进一步配置集群,请选择 Show additional configurations (显示其他配置),然后在创建集群:其他配置上继续。
Additional Configurations (其他配置) 部分中包含的配置如下:
-
网络设置 — 默认值为使用
default
VPC 安全组。 -
集群选项 — 默认值为使用端口 27017 和默认参数组。
-
加密 — 默认值为使用
(default) aws/rds
密钥启用加密。重要
集群加密后,就不能取消加密。
-
备份 — 默认值为保留备份 1 天并让 Amazon DocumentDB 选择备份时段。
-
日志导出 — 默认设置是不将审核日志导出到 CloudWatch Logs。
-
维护 — 默认设置是让 Amazon DocumentDB 选择维护时段。
-
删除保护 — 防止您的集群被意外删除。使用控制台创建的集群的默认设置为已启用。
如果您现在接受默认设置,则可以稍后通过修改集群来更改其中的大部分。
-
-
-
为集群的安全组启用入站连接。
如果未更改集群的默认设置,则会使用给定区域中的默认 VPC 的默认安全组创建一个集群。要连接到 Amazon DocumentDB,您必须在端口 27017(或所选的端口)上为集群的安全组启用入站连接。
将入站连接添加到集群的安全组
-
登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/
)。 -
在主窗口的资源部分中,选择安全组。
-
从安全组列表中,找到您在创建集群时使用的安全组(很可能是 default 安全组),然后选中安全组名称左侧的框。
-
从操作菜单中,选择编辑入站规则,然后选择或输入规则限制。
-
类型 — 从列表中,选择要为网络流量打开的协议。
-
协议 — 从列表中,选择协议类型。
-
端口范围 — 对于自定义规则,请输入端口号或端口范围。确保端口号或范围包括您在创建集群时指定的端口(默认值:27017)。
-
源 — 指定可以到达您的实例的流量。从列表中,选择流量源。如果选择自定义,请指定单个 IP 地址或以 CIDR 格式表示的 IP 地址范围(例如,203.0.113.5/32)。
-
描述 — 输入该规则的描述。
-
在创建完规则时,选择保存。
-
-
创建集群:其他配置
如果要接受集群的默认设置,您可以跳过以下步骤并选择 Create cluster (创建集群)。
-
完成 Network settings (网络设置) 窗格。
-
虚拟私有云(VPC)— 在列表中,选择要在其中启动此集群的 Amazon VPC。
-
子网组 — 在列表中,选择要用于此集群的子网组。
-
VPC 安全组 — 在列表中为此集群选择 VPC 安全组。
-
-
完成 Cluster options (集群选项) 窗格。
-
数据库端口 — 使用向上和向下箭头来设置应用程序将用于连接到您的实例的 TCP/IP 端口。
-
集群参数组 — 在参数组列表中,为此集群选择集群参数组。
-
-
完成 Encryption (加密) 窗格。
-
静态加密 — 选择以下选项之一:
-
启用加密 — 默认值。所有静态数据都会加密。如果您选择加密您的数据,则无法撤消此操作。
-
禁用加密 — 您的数据不会被加密。
-
-
AmazonKMS 密钥 — 仅当您要加密数据时才可用。在列表中,选择要用于加密此集群中的数据的密钥。默认为
(default) aws/rds
。如果您选择 Enter a key ARN (输入一个密钥 ARN),则必须为密钥输入一个 Amazon 资源名称 (ARN)。
-
-
完成 Backup (备份) 窗格。
-
备份留存期 — 在列表中,选择在删除此集群的自动备份前保留它们的天数。
-
备份时段 — 设置 Amazon DocumentDB 要备份此集群的每日时间和持续时间。
-
开始时间 — 在第一个列表中,选择开始自动备份的开始时间小时 (UTC)。在第二个列表中,选择您希望自动备份开始的时间(分钟)。
-
持续时间 — 在该列表中,选择要向创建自动备份分配的小时数。
-
-
-
通过选择要导出到 CloudWatch Logs 的日志类型,完成日志导出窗格。
-
审计日志 — 选择此选项可启用将审计日志导出到 Amazon CloudWatch Logs 的功能。如果您选择 Audit logs (审计日志),则必须在集群的自定义参数组中启用
audit_logs
。有关更多信息,请参阅 审核 Amazon DocumentDB 事件。 -
分析器日志 — 选择此选项可启用将操作分析器日志导出到 Amazon CloudWatch Logs 的功能。如果您选择 Profiler logs (分析器日志),则还必须在集群的自定义参数组中修改以下参数:
profiler
— 设置为enabled
。profiler_threshold_ms
— 设置为[0-INT_MAX]
之间的值,以设置分析操作的阈值。profiler_sampling_rate
— 设置为[0.0-1.0]
之间的值,以设置要分析的缓慢操作的百分比。
有关更多信息,请参阅 分析 Amazon DocumentDB 操作。
-
-
完成 Maintenance (维护) 窗格。
-
选择以下选项之一
-
选择时段 — 您可以指定 Amazon DocumentDB 对您的集群执行维护的周日期、UTC 开始时间和持续时间。
-
开始日 — 在列表中,选择开始集群维护的一周中的天。
-
开始时间 — 在列表中,选择开始维护的小时和分钟 (UTC)。
-
持续时间 — 在列表中,选择要为集群维护分配的时长。如果无法在指定时间内完成维护,维护过程将在指定时间过后继续进行,直到完成。
-
-
无首选项 — Amazon DocumentDB 为执行维护选择一周中的天、开始时间和持续时间。
-
-
-
如果您要将一个或多个标签添加到此集群,请填写标签窗格。
对于每个要添加到集群的标签,请重复以下步骤。一个集群最多可以有 10 个标签。
选择添加标签。
键入标签的键。
(可选)键入标签的值。
要删除标签,请选择 Remove tag(删除标签)。
-
在使用控制台创建集群时,将默认启用删除保护。要禁用删除保护,请清除启用删除保护。启用后,删除保护可以防止删除集群。要删除某个受到删除保护的集群,您必须先修改集群以禁用删除保护。
有关删除保护的更多信息,请参阅 删除 Amazon DocumentDB 集群。
-
要创建集群,请选择创建集群。否则,选择取消。
使用 Amazon CLI 创建集群
以下过程介绍了如何使用 Amazon CLI 启动 Amazon DocumentDB 集群并创建 Amazon DocumentDB 副本。
参数
-
--db-cluster-identifier
– 必填项。标识此集群的一个小写字符串。集群命名约束: -
长度为 [1—63] 个字母、数字或连字符。
-
第一个字符必须是字母。
-
不能以连字符结束或包含两个连续连字符。
-
对于每个区域每个 Amazon 账户(跨 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB)的所有集群必须是唯一的。
-
-
--engine
– 必填项。必须是docdb
。 -
--deletion-protection | --no-deletion-protection
— 可选。启用删除保护后,可以防止删除集群。当您使用 Amazon CLI 时,默认设置为已禁用删除保护。有关删除保护的更多信息,请参阅 删除 Amazon DocumentDB 集群。
-
--storage-type standard | iopt1
—可选。默认值:standard
。集群存储配置。有效值为standard
(标准)或iopt1
(I/O 优化)。 -
--master-username
– 必填项。用于对用户进行身份验证的用户名。主用户命名约束: -
长度为 [1-63] 个字母数字字符。
-
第一个字符必须是字母。
-
不能是数据库引擎的保留字。
-
-
--master-user-password
– 必填项。用于对用户进行身份验证的用户密码。主密码约束: -
长度为 [8-100] 个可打印 ASCII 字符。
-
可以使用任何可打印 ASCII 字符,以下字符除外:
-
/
(正斜杠) -
"
(双引号) -
@
(@ 符号)
-
-
有关更多参数,请参阅CreateDBCluster。
要使用 Amazon CLI 启动 Amazon DocumentDB 集群
要创建 Amazon DocumentDB 集群,请调用 create-db-cluster
Amazon CLI。以下 Amazon CLI 命令会创建一个名为 sample-cluster
的 Amazon DocumentDB 集群,同时启用删除保护。有关删除保护的更多信息,请参阅删除 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-usernamemasteruser
\ --master-user-passwordpassword
对于 Windows:
aws docdb create-db-cluster ^ --db-cluster-identifier
sample-cluster
^ --engine docdb ^ --engine-version 4.0.0 ^ --deletion-protection ^ --master-usernamemasteruser
^ --master-user-passwordpassword
此操作的输出将类似于下文(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 实例。
有关更多信息,请参阅 Amazon DocumentDB API 参考中的 CreateDBCluster
。