创建 Aurora MySQL 的跨区域只读副本数据库集群
您可以使用AWS Management Console、AWS Command Line Interface(AWS CLI)或 Amazon RDS API 创建作为跨区域只读副本的 Aurora 数据库集群。您可以从加密和未加密的数据库集群中创建跨区域只读副本。
在使用 AWS Management Console 为 Aurora MySQL 创建跨区域只读副本时,Amazon RDS 先在目标 AWS 区域中创建一个数据库集群,然后自动为该数据库集群创建一个数据库实例以作为主实例。
使用 AWS CLI 或 RDS API 创建跨区域只读副本时,您需要首先在目标 AWS 区域创建数据库集群,然后等待它变为活动状态。一旦处于活动状态,您就可以为该数据库集群创建一个数据库实例作为主实例。
当只读副本数据库集群的主实例可用时,复制开始。
执行以下过程从 Aurora MySQL 数据库集群创建跨区域只读副本。这些步骤适用于从加密和未加密的数据库集群中创建只读副本。
使用AWS Management Console创建作为跨区域只读副本的 Aurora MySQL 数据库集群
登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在 AWS Management Console的右上角,选择托管源数据库集群的 AWS 区域。
-
在导航窗格中,选择 Databases(数据库)。
-
选择要为其创建跨区域只读副本的数据库集群。
-
对于 Actions(操作),请选择 Create cross-Region read replica(创建跨区域只读副本)。
-
在 Create cross region read replica (创建跨区域只读副本) 页面上,选择跨区域只读副本数据库集群的选项设置,如下表中所述。
选项 描述 目标区域
选择要托管新的跨区域只读副本数据库集群的 AWS 区域。
目标数据库子网组
选择要用于跨区域只读副本数据库集群的数据库子网组。
公开访问
选择 Yes (是) 可为跨区域只读副本数据库集群提供一个公有 IP 地址;否则请选择 No (否)。
加密
请选择 Enable Encryption(启用加密)以对该数据库集群开启静态加密。有关更多信息,请参阅 加密 Amazon Aurora 资源。
AWS KMS key
仅当加密设置为启用加密时可用。选择用于加密该数据库集群的 AWS KMS key。有关更多信息,请参阅 加密 Amazon Aurora 资源。
数据库实例类
选择定义数据库集群中主实例的处理和内存要求的数据库实例类。有关数据库实例类选项的更多信息,请参阅Amazon Aurora 数据库实例类。
多可用区部署
选择 Yes(是),可在目标 AWS 区域的另一个可用区中创建新数据库集群的只读副本以支持故障转移。有关多可用区的详细信息,请参阅区域及可用区。
只读副本源
选择要为其创建跨区域只读副本的源数据库集群。
数据库实例标识符
键入跨区域只读副本数据库集群中主实例的名称。此标识符在新数据库集群主实例的终端节点地址中使用。
数据库实例标识符具有以下限制:
-
它必须包含 1 到 63 个字母数字字符或连字符。
-
它的第一个字符必须是字母。
-
它不能以连字符结束或包含两个连续连字符。
-
它对于每个 AWS 区域每个 AWS 账户的所有数据库实例必须是唯一的。
由于跨区域只读副本数据库集群是从源数据库集群的快照创建的,因此,只读副本的主用户名和主密码与源数据库集群的主用户名和主密码相同。
数据库集群标识符
键入跨区域只读副本数据库集群的名称,它对于副本的目标 AWS 区域中的账户是唯一的。此标识符在数据库集群的集群端点地址中使用。有关集群端点的信息,请参阅 Amazon Aurora 端点连接。
数据库集群标识符具有以下限制:
-
它必须包含 1 到 63 个字母数字字符或连字符。
-
它的第一个字符必须是字母。
-
它不能以连字符结束或包含两个连续连字符。
-
它对于每个 AWS 账户每个 AWS 区域的所有数据库集群必须是唯一的。
优先级
选择新数据库集群的主实例的故障转移优先级。此优先级决定从主实例故障恢复时提升 Aurora 副本的顺序。如果您未选择值,则默认值为 tier-1。有关更多信息,请参阅“Aurora 数据库集群的容错能力”。
数据库端口
指定应用程序和实用程序用来访问数据库的端口。Aurora 数据库集群默认为使用默认 MySQL 端口 3306。有些公司的防火墙不允许连接到此端口。如果您的公司防火墙阻止使用默认端口,请为新数据库集群选择其他端口。
增强监控
选择 Enable enhanced monitoring(启用增强监控)可开启您的数据库集群在其上运行的操作系统的实时指标收集。有关更多信息,请参阅 使用增强监控来监控操作系统指标。
监控角色
仅当增强监控设置为启用增强监控时可用。选择您创建的 IAM 角色以允许 Amazon RDS 与 Amazon CloudWatch Logs 通信,或选择默认以让 RDS 为您创建一个名为
rds-monitoring-role
的角色。有关更多信息,请参阅“使用增强监控来监控操作系统指标”。粒度
仅当增强监控设置为启用增强监控时可用。设置为数据库集群收集指标的时间间隔(以秒为单位)。
自动次要版本升级
该设置不适用于 Aurora MySQL 数据库集群。
有关 Aurora MySQL 引擎更新的更多信息,请参阅Amazon Aurora MySQL 的数据库引擎更新。
-
-
选择 Create (创建) 以创建 Aurora 的跨区域只读副本。
使用 CLI 创建作为跨区域只读副本的 Aurora MySQL 数据库集群
-
在要创建只读副本数据库集群的 AWS 区域中调用 AWS CLI create-db-cluster 命令。包括
--replication-source-identifier
选项并指定要创建只读副本的源数据库集群的 Amazon Resource Name (ARN)。对于由
--replication-source-identifier
标识的数据库集群已加密的跨区域复制,请指定--kms-key-id
选项和--storage-encrypted
选项。注意
通过指定
--storage-encrypted
并提供--kms-key-id
的值,您可以设置从未加密数据库集群到加密只读副本的跨区域复制。您无法指定
--master-username
和--master-user-password
参数。这些值取自源数据库集群。以下代码示例从 us-west-2 区域的一个未加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用命令。此示例指定了生成主用户密码并在 Secrets Manager 中对其进行管理的
--manage-master-user-password
选项。有关更多信息,请参阅 使用 Amazon Aurora 和 AWS Secrets Manager 管理密码。或者,您可以使用--master-password
选项自行指定和管理密码。对于 Linux、macOS 或 Unix:
aws rds create-db-cluster \ --db-cluster-identifier sample-replica-cluster \ --engine aurora \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster
对于 Windows:
aws rds create-db-cluster ^ --db-cluster-identifier sample-replica-cluster ^ --engine aurora ^ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster
以下代码示例从 us-west-2 区域的一个加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用命令。
对于 Linux、macOS 或 Unix:
aws rds create-db-cluster \ --db-cluster-identifier sample-replica-cluster \ --engine aurora \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster \ --kms-key-id
my-us-east-1-key
\ --storage-encrypted对于 Windows:
aws rds create-db-cluster ^ --db-cluster-identifier sample-replica-cluster ^ --engine aurora ^ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster ^ --kms-key-id
my-us-east-1-key
^ --storage-encrypted--source-region
选项对于 AWS GovCloud(美国东部)和 AWS GovCloud(美国西部)区域之间的跨区域复制是必需的,其中由--replication-source-identifier
标识的数据库集群已加密。对于--source-region
,指定源数据库集群的 AWS 区域。如果未指定
--source-region
,请指定--pre-signed-url
值。预签名 URL 包含签名版本 4 签名的请求,该请求用于在源create-db-cluster
中调用的 AWS 区域 命令。要了解有关pre-signed-url
选项的更多信息,请参阅《AWS CLI 命令参考》中的 create-db-cluster。 -
使用 AWS CLI describe-db-clusters 命令检查数据库集群是否已变为可用状态,如以下示例中所示。
aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster
当
describe-db-clusters
结果显示状态available
时,创建数据库集群的主实例以便复制能够开始。为此,请使用 AWS CLI create-db-instance 命令,如以下示例中所示。对于 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-cluster-identifier sample-replica-cluster \ --db-instance-class db.r3.large \ --db-instance-identifier sample-replica-instance \ --engine aurora
对于 Windows:
aws rds create-db-instance ^ --db-cluster-identifier sample-replica-cluster ^ --db-instance-class db.r3.large ^ --db-instance-identifier sample-replica-instance ^ --engine aurora
在数据库实例已创建并可用后,复制将开始。您可以调用 AWS CLI describe-db-instances 命令以确定数据库实例是否可用。
使用 API 创建作为跨区域只读副本的 Aurora MySQL 数据库集群
-
在要创建只读副本数据库集群的 AWS 区域中调用 RDS API CreateDBCluster 操作。包括
ReplicationSourceIdentifier
参数并指定要创建只读副本的源数据库集群的 Amazon Resource Name (ARN)。对于由
ReplicationSourceIdentifier
标识的数据库集群已加密的跨区域复制,应指定KmsKeyId
参数并将StorageEncrypted
参数设置为true
。注意
您可以将
StorageEncrypted
指定为true
并提供KmsKeyId
值,以设置从未加密数据库集群到加密只读副本的跨区域复制。在这种情况下,不需要指定PreSignedUrl
。您无需包含
MasterUsername
和MasterUserPassword
参数,因为这些值是从源数据库集群中获取的。以下代码示例从 us-west-2 区域的一个未加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用操作。
https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBCluster &ReplicationSourceIdentifier=arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster &DBClusterIdentifier=sample-replica-cluster &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T001547Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=a04c831a0b54b5e4cd236a90dcb9f5fab7185eb3b72b5ebe9a70a4e95790c8b7
以下代码示例从 us-west-2 区域的一个加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用操作。
https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBCluster &KmsKeyId=my-us-east-1-key &StorageEncrypted=true &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F %253FAction%253DCreateDBCluster %2526DestinationRegion%253Dus-east-1 %2526KmsKeyId%253Dmy-us-east-1-key %2526ReplicationSourceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Acluster%25253Asample-master-cluster %2526SignatureMethod%253DHmacSHA256 %2526SignatureVersion%253D4 %2526Version%253D2014-10-31 %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256 %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request %2526X-Amz-Date%253D20161117T215409Z %2526X-Amz-Expires%253D3600 %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613 &ReplicationSourceIdentifier=arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster &DBClusterIdentifier=sample-replica-cluster &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T001547Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=a04c831a0b54b5e4cd236a90dcb9f5fab7185eb3b72b5ebe9a70a4e95790c8b7
对于 AWS GovCloud(美国东部)和 AWS GovCloud(美国西部)区域之间的跨区域复制(其中由
ReplicationSourceIdentifier
标识的数据库集群已加密),还应指定PreSignedUrl
参数。预签名 URL 必须是对CreateDBCluster
API 操作的有效请求,该操作能够在包含要复制的加密数据库集群的源 AWS 区域中执行。KMS 密钥标识符用于加密只读副本,并且必须是对目标 AWS 区域有效的 KMS 密钥。要自动而非手动生成预签名的 URL,请改用具有--source-region
选项的 AWS CLI create-db-cluster 命令。 -
如下例所示,通过使用 RDS API DescribeDBClusters 操作检查数据库集群是否可用。
https://rds.us-east-1.amazonaws.com/ ?Action=DescribeDBClusters &DBClusterIdentifier=sample-replica-cluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T002223Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=84c2e4f8fba7c577ac5d820711e34c6e45ffcd35be8a6b7c50f329a74f35f426
当
DescribeDBClusters
结果显示状态available
时,创建数据库集群的主实例以便复制能够开始。为此,请使用 RDS API CreateDBInstance 操作,如以下示例所示。https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBInstance &DBClusterIdentifier=sample-replica-cluster &DBInstanceClass=db.r3.large &DBInstanceIdentifier=sample-replica-instance &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T003808Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=125fe575959f5bbcebd53f2365f907179757a08b5d7a16a378dfa59387f58cdb
在数据库实例已创建并可用后,复制将开始。您可以调用 AWS CLI DescribeDBInstances 命令以确定数据库实例是否可用。
查看 Amazon Aurora MySQL 跨区域副本
您可以调用 describe-db-clusters AWS CLI 命令或 DescribeDBClusters RDS API 操作以查看 Amazon Aurora MySQL 数据库集群的跨区域复制关系。在响应中,请参阅 ReadReplicaIdentifiers
字段,获取任何跨区域只读副本数据库集群的数据库集群标识符。请参阅 ReplicationSourceIdentifier
元素,获取作为复制源的源数据库集群的 ARN。