

# 创建 Aurora MySQL 的跨区域只读副本数据库集群
<a name="AuroraMySQL.Replication.CrossRegion.Creating"></a>

 您可以使用AWS 管理控制台、AWS Command Line Interface（AWS CLI）或 Amazon RDS API 创建作为跨区域只读副本的 Aurora 数据库集群。您可以从加密和未加密的数据库集群中创建跨区域只读副本。

 在使用 AWS 管理控制台 为 Aurora MySQL 创建跨区域只读副本时，Amazon RDS 先在目标 AWS 区域中创建一个数据库集群，然后自动为该数据库集群创建一个数据库实例以作为主实例。

 使用 AWS CLI 或 RDS API 创建跨区域只读副本时，您需要首先在目标 AWS 区域创建数据库集群，然后等待它变为活动状态。一旦处于活动状态，您就可以为该数据库集群创建一个数据库实例作为主实例。

 当只读副本数据库集群的主实例可用时，复制开始。

 执行以下过程从 Aurora MySQL 数据库集群创建跨区域只读副本。这些步骤适用于从加密和未加密的数据库集群中创建只读副本。

## 控制台
<a name="AuroraMySQL.Replication.CrossRegion.Creating.Console"></a>

**使用AWS 管理控制台创建作为跨区域只读副本的 Aurora MySQL 数据库集群**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1.  在 AWS 管理控制台的右上角，选择托管源数据库集群的 AWS 区域。

1.  在导航窗格中，选择 **Databases**（数据库）。

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

1. 对于 **Actions**（操作），请选择 **Create cross-Region read replica**（创建跨区域只读副本）。

1.  在 **Create cross region read replica (创建跨区域只读副本)** 页面上，选择跨区域只读副本数据库集群的选项设置，如下表中所述。    
<a name="cross-region-read-replica-settings"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.CrossRegion.Creating.html)

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

## AWS CLI
<a name="AuroraMySQL.Replication.CrossRegion.Creating.CLI"></a>

**使用 CLI 创建作为跨区域只读副本的 Aurora MySQL 数据库集群**

1.  在要创建只读副本数据库集群的 AWS 区域中调用 AWS CLI [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 命令。包括 `--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 管理密码](rds-secrets-manager.md)。或者，您可以使用 `--master-password` 选项自行指定和管理密码。

   对于 Linux、macOS 或 Unix：

   ```
   aws rds create-db-cluster \
     --db-cluster-identifier sample-replica-cluster \
     --engine aurora-mysql \
     --engine-version 8.0.mysql_aurora.3.08.0 \
     --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-mysql ^
     --engine-version 8.0.mysql_aurora.3.08.0 ^
     --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-mysql \
     --engine-version 8.0.mysql_aurora.3.08.0 \
     --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-mysql ^
     --engine-version 8.0.mysql_aurora.3.08.0 ^
     --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](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)。

1.  使用 AWS CLI [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 命令检查数据库集群是否已变为可用状态，如以下示例中所示。

   ```
   aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster
   ```

    当 **`describe-db-clusters`** 结果显示状态 `available` 时，创建数据库集群的主实例以便复制能够开始。为此，请使用 AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令，如以下示例中所示。

   对于 Linux、macOS 或 Unix：

   ```
   aws rds create-db-instance \
     --db-cluster-identifier sample-replica-cluster \
     --db-instance-class db.r5.large \
     --db-instance-identifier sample-replica-instance \
     --engine aurora-mysql
   ```

   对于 Windows：

   ```
   aws rds create-db-instance ^
     --db-cluster-identifier sample-replica-cluster ^
     --db-instance-class db.r5.large ^
     --db-instance-identifier sample-replica-instance ^
     --engine aurora-mysql
   ```

    在数据库实例已创建并可用后，复制将开始。您可以调用 AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令以确定数据库实例是否可用。

## RDS API
<a name="AuroraMySQL.Replication.CrossRegion.Creating.API"></a>

**使用 API 创建作为跨区域只读副本的 Aurora MySQL 数据库集群**

1.  在要创建只读副本数据库集群的 AWS 区域中调用 RDS API [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 操作。包括 `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-mysql
     &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-mysql
     &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](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 命令。

1.  如下例所示，通过使用 RDS API [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) 操作检查数据库集群是否可用。

   ```
   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://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作，如以下示例所示。

   ```
   https://rds.us-east-1.amazonaws.com/
     ?Action=CreateDBInstance
     &DBClusterIdentifier=sample-replica-cluster
     &DBInstanceClass=db.r5.large
     &DBInstanceIdentifier=sample-replica-instance
     &Engine=aurora-mysql
     &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](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 命令以确定数据库实例是否可用。

## 查看 Amazon Aurora MySQL 跨区域副本
<a name="AuroraMySQL.Replication.CrossRegion.Viewing"></a>

 您可以调用 [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) AWS CLI 命令或 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) RDS API 操作以查看 Amazon Aurora MySQL 数据库集群的跨区域复制关系。在响应中，请参阅 `ReadReplicaIdentifiers` 字段，获取任何跨区域只读副本数据库集群的数据库集群标识符。请参阅 `ReplicationSourceIdentifier` 元素，获取作为复制源的源数据库集群的 ARN。