创建 Aurora MySQL 的跨区域只读副本数据库集群 - Amazon Aurora

创建 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 数据库集群
  1. 登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在 AWS Management Console的右上角,选择托管源数据库集群的 AWS 区域。

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

  4. 选择要为其创建跨区域只读副本的数据库集群。

  5. 对于 Actions(操作),请选择 Create cross-Region read replica(创建跨区域只读副本)。

  6. 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 的数据库引擎更新

  7. 选择 Create (创建) 以创建 Aurora 的跨区域只读副本。

使用 CLI 创建作为跨区域只读副本的 Aurora MySQL 数据库集群
  1. 在要创建只读副本数据库集群的 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

  2. 使用 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 数据库集群
  1. 在要创建只读副本数据库集群的 AWS 区域中调用 RDS API CreateDBCluster 操作。包括 ReplicationSourceIdentifier 参数并指定要创建只读副本的源数据库集群的 Amazon Resource Name (ARN)。

    对于由 ReplicationSourceIdentifier 标识的数据库集群已加密的跨区域复制,应指定 KmsKeyId 参数并将 StorageEncrypted 参数设置为 true

    注意

    您可以将 StorageEncrypted 指定为 true 并提供 KmsKeyId 值,以设置从未加密数据库集群到加密只读副本的跨区域复制。在这种情况下,不需要指定 PreSignedUrl

    您无需包含 MasterUsernameMasterUserPassword 参数,因为这些值是从源数据库集群中获取的。

    以下代码示例从 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 命令。

  2. 如下例所示,通过使用 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。