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

创建多可用区数据库集群

多可用区数据库集群在三个独立可用区中有一个写入器数据库实例和两个读取器数据库实例。与多可用区部署相比,多可用区数据库集群可提供高可用性、增加读取工作负载容量以及更低的延迟。有关多可用区数据库集群的更多信息,请参阅 多可用区数据库集群部署

注意

仅 MySQL 和 PostgreSQL 数据库引擎支持多可用区数据库集群。

在以下主题中,您可以了解如何创建多可用区数据库集群。要了解其用法,请先参阅数据库集群先决条件

有关连接到多可用区数据库集群的说明,请参阅 连接到 Amazon RDS 数据库实例

数据库集群先决条件

请务必先完成 设置 Amazon RDS 中的任务,然后才能创建多可用区数据库集群。以下是创建多可用区数据库集群的其他先决条件。

VPC 先决条件

在具有至少三个可用区的 Amazon 区域中,您只能在基于 Amazon VPC 服务的 Virtual Private Cloud (VPC) 中创建一个多可用区数据库集群。为数据库集群选择的数据库子网组必须包含至少三个可用区。在极少数情况下,在发生可用区故障时,该配置确保数据库集群始终具有至少两个可用于故障转移的数据库实例。

如果使用 Amazon Web Services Management Console 创建多可用区数据库集群,您可以让 Amazon RDS 自动为您创建 VPC。或者,您也可以使用现有 VPC 或为您的多可用区数据库集群创建新的 VPC。要在多可用区数据库集群中使用您的 VPC,该 VPC 必须最少在三个可用区中均拥有一个子网。有关 VPC 的信息,请参阅 Amazon Virtual Private Cloud VPC 和 Amazon RDS

如果您没有原定设置 VPC 或尚未创建 VPC,并且您不打算使用控制台,请执行以下操作:

  • 在要部署数据库集群的 Amazon 区域中,创建最少在三个可用区中均至少有一个子网的 VPC。有关更多信息,请参阅 在 VPC 中使用数据库实例

  • 指定授权与您的 数据库集群的连接的 VPC 安全组。有关更多信息,请参阅 在 VPC 中使用数据库实例

  • 指定 RDS 数据库子网组,该子网组在 VPC 中定义至少三个可由多可用区数据库集群使用的子网。有关更多信息,请参阅 使用数据库子网组

其他先决条件

如果使用 Amazon Identity and Access Management(IAM)凭证连接到Amazon,您的Amazon账户必须拥有 IAM 策略来授予执行 Amazon RDS 操作所需的权限。有关更多信息,请参阅 Amazon RDS 中的 Identity and Access Management

如果要使用 IAM 访问 Amazon RDS 控制台,请先使用您的 IAM 用户凭证登录 Amazon Web Services Management Console。然后通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

要定制您的数据库集群的配置参数,请通过必需的参数设置来指定数据库集群的参数组。有关创建或修改数据库集群参数组的信息,请参阅 使用多可用区数据库集群的参数组

请确定要为数据库集群指定的 TCP/IP 端口号。有些公司的防火墙将会阻止通往这些原定设置端口的连接。如果您的公司防火墙阻止默认端口,请为数据库集群选择其他端口。数据库集群中的所有数据库实例均使用相同的端口。

创建数据库集群

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 创建多可用区数据库集群。

您可以通过选择 Availability and durability(可用性与持久性)部分中的 Multi-AZ DB cluster(多可用区数据库集群)来创建多可用区数据库集群。

要使用控制台创建多可用区数据库集群

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在 Amazon Web Services Management Console 的右上角,选择要在其中创建数据库集群的 Amazon 区域。

    只有美国东部(弗吉尼亚北部)、美国西部(俄勒冈)和欧洲(爱尔兰)Amazon 区域支持多可用区数据库集群。

  3. 在导航窗格中,选择 Databases (数据库)

  4. 选择创建数据库

    要创建多可用区数据库集群,请确保已选择 Standard Create(标准创建)并未选择 Easy Create(轻松创建)。

  5. Engine type(引擎类型)中,请选择 MySQLPostgreSQL

  6. 对于 Version(版本),请选择数据库引擎版本。

    若想创建多可用区数据库集群,您只能使用 MySQL 版本 8.0.28 和更高的 8.0 版本,以及 PostgreSQL 版本 13.4 和更高的 13 版本。

  7. Templates(模板)中,请为您的部署选择适当的模板。

  8. Availability and durability(可用性与持久性)中,选择 Multi-AZ DB cluster(多可用区数据库集群)。

    
                        多可用区数据库集群选择
  9. DB cluster identifier(数据库集群标识符)中,请输入数据库集群的标识符。

  10. Master username(主用户名)中,请输入您的主用户名,或者保持原定设置设置。

  11. 请输入您的主密码:

    1. 设置部分中,打开凭证设置

    2. 如果要指定密码,请取消勾选已选择的 Auto generate a password(自动生成密码)复选框。

    3. (可选)更改 Master username(主用户名)的值。

    4. 请在 Master password(主密码)和 Confirm password(确认密码)中输入相同的密码。

  12. DB instance class(数据库实例类)中,请选择数据库实例类。

  13. 对于其余部分,请指定数据库集群设置。有关每项设置的信息,请参阅 创建多可用区数据库集群的设置

  14. 选择创建数据库

    如果选择使用自动生成的密码,则数据库页面上将显示查看凭证详细信息按钮。

    要查看数据库集群的主用户名和密码,请选择查看凭证详细信息

    
                        自动生成密码后的主用户凭证。

    要以主用户身份连接到数据库集群,请使用显示的用户名和密码。

    重要

    您无法再次查看主用户密码。

  15. 对于 Databases(数据库),请选择新数据库集群的名称。

在 RDS 控制台上,将显示新数据库集群的详细信息。在此数据库集群完成创建、可供使用之前,此数据库集群的状态将为 Creating(正在创建)。当状态变为 Available(可用)时,您便可以连接到该数据库集群。根据所分配的数据库集群类和存储的不同,新数据库集群可能需要数分钟时间才可用。

在使用 Amazon CLI 创建多可用区数据库集群之前,您必须满足所需的先决条件,例如,创建 VPC 和 RDS 数据库子网组。有关更多信息,请参阅 数据库集群先决条件

要使用 Amazon CLI 创建多可用区数据库集群,请调用 create-db-cluster 命令。请指定 --db-cluster-identifier。对于 --engine 选项,请指定 mysqlpostgres

有关各选项的信息,请参阅 创建多可用区数据库集群的设置

create-db-cluster 命令将为您的数据库集群创建写入器数据库实例,以及两个读取器数据库实例。每个数据库实例都位于不同的可用区。

例如,以下命令将创建一个名为 mysql-multi-az-db-cluster 的 MySQL 8.0 多可用区数据库集群。

对于 Linux、macOS 或 Unix:

aws rds create-db-cluster \ --db-cluster-identifier mysql-multi-az-db-cluster \ --engine mysql \ --engine-version 8.0.26 \ --master-user-password password \ --master-username admin \ --port 3306 \ --backup-retention-period 1 \ --db-subnet-group-name default \ --allocated-storage 4000 \ --storage-type io1 \ --iops 10000 \ --db-cluster-instance-class db.r6gd.xlarge

对于 Windows:

aws rds create-db-cluster ^ --db-cluster-identifier mysql-multi-az-db-cluster ^ --engine mysql ^ --engine-version 8.0.26 ^ --master-user-password password ^ --master-username admin ^ --port 3306 ^ --backup-retention-period 1 ^ --db-subnet-group-name default ^ --allocated-storage 4000 ^ --storage-type io1 ^ --iops 10000 ^ --db-cluster-instance-class db.r6gd.xlarge

以下命令将创建一个名为 postgresql-multi-az-db-cluster 的 PostgreSQL 13.4 多可用区数据库集群。

对于 Linux、macOS 或 Unix:

aws rds create-db-cluster \ --db-cluster-identifier postgresql-multi-az-db-cluster \ --engine postgres \ --engine-version 13.4 \ --master-user-password password \ --master-username postgres \ --port 5432 \ --backup-retention-period 1 \ --db-subnet-group-name default \ --allocated-storage 4000 \ --storage-type io1 \ --iops 10000 \ --db-cluster-instance-class db.r6gd.xlarge

对于 Windows:

aws rds create-db-cluster ^ --db-cluster-identifier postgresql-multi-az-db-cluster ^ --engine postgres ^ --engine-version 13.4 ^ --master-user-password password ^ --master-username postgres ^ --port 5432 ^ --backup-retention-period 1 ^ --db-subnet-group-name default ^ --allocated-storage 4000 ^ --storage-type io1 ^ --iops 10000 ^ --db-cluster-instance-class db.r6gd.xlarge

在使用 RDS API 创建多可用区数据库集群之前,您必须满足所需的先决条件,例如创建 VPC 和 RDS 数据库子网组。有关更多信息,请参阅 数据库集群先决条件

要使用 RDS API 创建多可用区数据库集群,请调用 CreateDBCluster 操作。请指定 DBClusterIdentifier。对于 Engine 参数,请指定 mysqlpostgresql

有关各选项的信息,请参阅 创建多可用区数据库集群的设置

CreateDBCluster 操作将为您的数据库集群创建写入器数据库实例,以及两个读取器数据库实例。每个数据库实例都位于不同的可用区。

创建多可用区数据库集群的设置

有关创建多可用区数据库集群时所选设置的详细信息,请参阅下表。有关 Amazon CLI 选项的更多信息,请参阅 create-db-cluster。有关 RDS API 参数的更多信息,请参阅 CreateDBCluster

控制台设置 设置说明 CLI 选项和 RDS API 参数

分配的存储空间

为数据库集群中的每个数据库实例分配的存储量(以 GiB 为单位)。

有关更多信息,请参阅 Amazon RDS 数据库实例存储

CLI 选项:

--allocated-storage

API 参数:

AllocatedStorage

自动次要版本升级

请选择 Enable auto minor version upgrade(启用自动次要版本升级),以使数据库集群能够在首选次要数据库引擎版本升级可用时自动接收这些升级。Amazon RDS 在维护时段内执行自动次要版本升级。

CLI 选项:

--auto-minor-version-upgrade

--no-auto-minor-version-upgrade

API 参数:

AutoMinorVersionUpgrade

备份保留期

您希望数据库集群自动备份的保留天数。对于多可用区数据库集群,此值必须设置为 1 或更大。

有关更多信息,请参阅 使用备份

CLI 选项:

--backup-retention-period

API 参数:

BackupRetentionPeriod

备份时段

Amazon RDS 自动备份数据库集群的时间段。除非您知道需要何时进行数据库备份,否则,请使用 No preference(无首选项)的原定设置设置。

有关更多信息,请参阅“使用备份”。

CLI 选项:

--preferred-backup-window

API 参数:

PreferredBackupWindow

将标签复制到快照

在创建快照时,该选项将任何数据库集群标签复制到数据库快照中。

有关更多信息,请参阅 为 Amazon RDS 资源添加标签

CLI 选项:

-copy-tags-to-snapshot

-no-copy-tags-to-snapshot

RDS API 参数:

CopyTagsToSnapshot

数据库身份验证

对于多可用区数据库集群,仅支持 Password authentication(密码身份验证)。

无,因为密码身份验证是原定设置。

数据库端口

要用于访问数据库集群的端口。显示的是默认端口。如果将数据库安全组用于数据库集群,该端口值必须与创建数据库安全组时提供的端口值相同。

创建数据库集群后将无法更改端口。

有些公司的防火墙将会阻止通往这些原定设置端口的连接。如果您的公司防火墙阻止原定设置端口,请为数据库集群输入其他端口。

CLI 选项:

--port

RDS API 参数:

Port

数据库集群标识符

数据库集群的名称。请使用与命名本地部署服务器相同的方式命名数据库集群。数据库集群标识符最多可以包含 63 个字母数字字符,且必须在所选 Amazon 区域中对于您的账户是唯一的。

CLI 选项:

--db-cluster-identifier

RDS API 参数:

DBClusterIdentifier

DB cluster instance class(数据库集群实例类

多可用区数据库集群中各数据库实例(例如 db.r6gd.xlarge)的计算和内存容量。

如有可能,请选择足够大的数据库实例类以便典型查询工作集能够保留在内存中。如果在内存中保留工作集,系统可以避免写入到磁盘,从而提高性能。

目前,多可用区数据库集群仅支持 db.m6gd 和 db.r6gd 数据库实例类。有关数据库实例类的更多信息,请参阅 数据库实例类

CLI 选项:

--db-cluster-instance-class

RDS API 参数:

DBClusterInstanceClass

数据库集群参数组

要与数据库集群关联的数据库集群参数组。

有关更多信息,请参阅 使用多可用区数据库集群的参数组

CLI 选项:

--db-cluster-parameter-group-name

RDS API 参数:

DBClusterParameterGroupName

数据库引擎版本

要使用的数据库引擎的版本。

CLI 选项:

--engine-version

RDS API 参数:

EngineVersion

数据库参数组

要与数据库集群中的数据库实例关联的数据库实例参数组。

有关更多信息,请参阅 使用多可用区数据库集群的参数组

不适用。Amazon RDS 将每个数据库实例与适当的原定设置参数组向关联。

删除保护

启用删除保护以禁止删除数据库集群。如果使用控制台创建生产数据库集群,预设情况下将开启删除保护。

有关更多信息,请参阅 删除数据库实例

CLI 选项:

--deletion-protection

--no-deletion-protection

RDS API 参数:

DeletionProtection

加密

请选择 Enable Encryption(启用加密)以对该数据库集群开启静态加密。

预设情况下,将对多可用区数据库集群开启加密。

有关更多信息,请参阅 加密 Amazon RDS 资源

CLI 选项:

--kms-key-id

--storage-encrypted

--no-storage-encrypted

RDS API 参数:

KmsKeyId

StorageEncrypted

增强监控

选择 Enable enhanced monitoring(启用增强监控)可为您的数据库集群运行所在的操作系统开启实时指标收集。

有关更多信息,请参阅 使用增强监控来监控操作系统指标

CLI 选项:

--monitoring-interval

--monitoring-role-arn

RDS API 参数:

MonitoringInterval

MonitoringRoleArn

Initial database name (初始数据库名称

数据库集群的数据库名称。如果您未提供名称,则 Amazon RDS 不会在数据库集群上为 MySQL 创建数据库,但会在数据库集群上为 PostgreSQL 创建数据库。该名称不能是数据库引擎保留的单词,并且具有其他限制,具体取决于数据库引擎。

MySQL:

  • 必须包含 1–64 个字母数字字符。

PostgreSQL:

  • 必须包含 1–63 个字母数字字符。

  • 必须以字母或下划线开头。后续字符可以是字母、下划线或数字 (0-9)。

  • 初始数据库名称为 postgres

CLI 选项:

--database-name

RDS API 参数:

DatabaseName

日志导出

要发布到 Amazon CloudWatch Logs 的数据库日志文件的类型。

有关更多信息,请参阅“将数据库日志发布到 Amazon CloudWatch Logs”。

CLI 选项:

-enable-cloudwatch-logs-exports

RDS API 参数:

EnableCloudwatchLogsExports

维护时段

30 分钟时段,在这段时间内,将会应用对数据库集群的待处理修改。如果该时段无关紧要,请选择 No preference(无首选项)。

有关更多信息,请参阅“Amazon RDS 维护时段”。

CLI 选项:

--preferred-maintenance-window

RDS API 参数:

PreferredMaintenanceWindow

主密码

您的主用户账户密码。

CLI 选项:

--master-user-password

RDS API 参数:

MasterUserPassword

主用户名

用作登录数据库集群的主用户名,拥有所有数据库权限。

  • 它可以包含 1–16 个字母数字字符和下划线。

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

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

有关授予主用户权限的更多信息,请参阅 主用户账户权限

CLI 选项:

--master-username

RDS API 参数:

MasterUsername

Performance Insights

请选择 Enable Performance Insights(启用性能详情)以监控数据库集群负载,以便您可以分析数据库性能和解决数据库性能问题。

选择保留期以确定要保留的滚动数据历史记录数量。免费套餐中的默认值为 7 天。长期保留(两年)是按每月每个 vCPU 定价的。

选择一个主密钥以用来保护用于加密该数据库卷的密钥。请从您的账户的主密钥中进行选择,或输入来自其他账户的密钥。

有关更多信息,请参阅“在 Amazon RDS 上使用性能详情监控数据库负载”。

CLI 选项:

--enable-performance-insights

--no-enable-performance-insights

--performance-insights-retention-period

--performance-insights-kms-key-id

RDS API 参数:

EnablePerformanceInsights

PerformanceInsightsRetentionPeriod

PerformanceInsightsKMSKeyId

预置 IOPS

最初为数据库集群分配的预置 IOPS(每秒输入/输出操作数)量。仅当将预置 IOPS (io1) 选为了存储类型时,该设置才可用。

有关更多信息,请参阅 预置 IOPS SSD 存储

CLI 选项:

--iops

RDS API 参数:

Iops

公有访问权限

请选择 Publicly accessible(可公开访问)以为数据库集群提供公有 IP 地址,这表示可以在 VPC 外部访问该实例。要可供公开访问,数据库集群还必须在 VPC 的公有子网中。

请选择 Not publicly accessible(不可公开访问)以设置只能从 VPC 内部访问数据库集群。

有关更多信息,请参阅 从 Internet 隐藏 VPC 中的数据库实例

要从其 VPC 外部连接到数据库集群,该数据库集群必须可公开访问。此外,必须使用数据库集群安全组的入站规则授予访问权限,并且必须满足其他要求。有关更多信息,请参阅 无法连接到 Amazon RDS 数据库实例

如果您的数据库集群不可公开访问,则您可以使用 Amazon Site-to-Site VPN 连接或 Amazon Direct Connect 连接从专用网络访问该实例。有关更多信息,请参阅 互联网络流量隐私

CLI 选项:

--publicly-accessible

--no-publicly-accessible

RDS API 参数:

PubliclyAccessible

存储类型

数据库集群的存储类型。

仅支持预置 IOPS (io1) 存储。

有关更多信息,请参阅 Amazon RDS 存储类型

CLI 选项:

--storage-type

RDS API 参数:

StorageType

子网组

与此数据库集群关联的数据库子网组。

有关更多信息,请参阅 使用数据库子网组

CLI 选项:

--db-subnet-group-name

RDS API 参数:

DBSubnetGroupName

Virtual Private Cloud (VPC)

要与此数据库集群关联的 Amazon VPC。

有关更多信息,请参阅 Amazon Virtual Private Cloud VPC 和 Amazon RDS

对于 CLI 和 API,您可以指定 VPC 安全组 ID。

VPC 安全组

要与数据库集群关联的安全组。

有关更多信息,请参阅 VPC 安全组

CLI 选项:

--vpc-security-group-ids

RDS API 参数:

VpcSecurityGroupIds

创建多可用区数据库集群时不适用的设置

以下 Amazon CLI 命令 create-db-cluster 和 RDS API 操作 CreateDBCluster 中的设置不适用于多可用区数据库集群。

您也无法在控制台中为多可用区数据库集群指定这些设置。

Amazon CLI 设置 RDS API 设置

--availability-zones

AvailabilityZones

--backtrack-window

BacktrackWindow

--character-set-name

CharacterSetName

--domain

Domain

--domain-iam-role-name

DomainIAMRoleName

--enable-global-write-forwarding | --no-enable-global-write-forwarding

EnableGlobalWriteForwarding

--enable-http-endpoint | --no-enable-http-endpoint

EnableHttpEndpoint

--enable-iam-database-authentication | --no-enable-iam-database-authentication

EnableIAMDatabaseAuthentication

--global-cluster-identifier

GlobalClusterIdentifier

--option-group-name

OptionGroupName

--pre-signed-url

PreSignedUrl

--replication-source-identifier

ReplicationSourceIdentifier

--scaling-configuration

ScalingConfiguration