Menu
Amazon Relational Database Service
User Guide (API Version 2014-10-31)

Replicating Amazon Aurora DB Clusters Across AWS Regions

You can create an Amazon Aurora DB cluster as a Read Replica in a different AWS Region than the source DB cluster. Taking this approach can improve your disaster recovery capabilities, let you scale read operations into a region that is closer to your users, and make it easier to migrate from one region to another.

When you create an Aurora DB cluster Read Replica in another region, you should be aware of the following:

  • In a cross-region scenario, there is more lag time between the source DB cluster and the Read Replica due to the longer network channels between regions.

  • Data transferred for cross-region replication incurs Amazon RDS data transfer charges. The following cross-region replication actions generate charges for the data transferred out of the source region:

    • When you create the Read Replica, Amazon RDS takes a snapshot of the source instance and transfers the snapshot to the Read Replica region.

    • For each data modification made in the source databases, Amazon RDS transfers data from the source region to the Read Replica region.

    For more information about Amazon RDS data transfer pricing, see Amazon Aurora Pricing.

For each source DB cluster, you can only have one cross-region Read Replica DB cluster. Both your source DB cluster and your cross-region Read Replica DB cluster can have up to 15 Aurora Replicas along with the primary instance for the DB cluster. This functionality lets you scale read operations for both your source region and your replication target region.

Because KMS encryption keys are specific to the region that they are created in, you cannot replicate encrypted DB clusters across regions.

Before You Begin

To create an Amazon Aurora cross-region Read Replica, you must be running the most recent version of the Aurora database engine. To upgrade your Aurora database to the most recent version, apply any pending maintenance actions for all of the instances in your DB cluster. You can apply pending maintenance actions by using the AWS Management Console, the AWS Command Line Interface, or the Amazon RDS API.

To apply pending maintenance actions by using the Amazon RDS Management Console

  1. Open the Amazon RDS console at https://console.aws.amazon.com/rds/.

  2. Select an instance from your DB cluster that shows an Available maintenance upgrade, and then choose Instance Actions.

  3. Select Upgrade Now to immediately update the database version for your instance, or Upgrade at Next Window to update the database version for your instance during the next maintenance window.

  4. Repeat this process for all instances in your DB cluster.

To apply pending maintenance actions by using the AWS Command Line Interface

  1. For each instance in your DB cluster, call the apply-pending-maintenance-action AWS CLI command and specify system-update for the --apply-action option.

  2. Set the --opt-in-type option to immediate to immediately update the database version for your instance, or to next-maintenance to update the database version for your instance during the next maintenance window.

To apply pending maintenance actions by using the Amazon RDS API

  1. For each instance in your DB cluster, call the ApplyPendingMaintenanceAction API action and specify system-update for the ApplyAction parameter.

  2. Set the OptInType parameter to immediate to immediately update the database version for your instance, or to next-maintenance to update the database version for your instance during the next maintenance window.

In addition, before you can create an Aurora DB cluster that is a cross-region Read Replica, you must enable binary logging on your source Aurora DB cluster. Amazon Aurora cross-region replication uses MySQL binary replication to replay changes on the cross-region Read Replica DB cluster.

To enable binary logging on an Aurora DB cluster, update the binlog_format parameter for your source DB cluster. The binlog_format parameter is a cluster-level parameter that is in the default.aurora5.6 cluster parameter group by default. If your DB cluster uses the default DB cluster parameter group, you will need to create a new DB cluster parameter group to modify binlog_format settings. We recommend that you set the binlog_format to MIXED. However, you can also set binlog_format to ROW or STATEMENT if you need a specific binlog format. Reboot your Aurora DB cluster for the change to take effect.

For more information, see DB Cluster and DB Instance Parameters and Working with DB Parameter Groups.

Creating an Amazon Aurora DB Cluster That Is a Cross-Region Read Replica

You can create an Aurora DB cluster that is a cross-region Read Replica by using the AWS Management Console, the AWS Command Line Interface, or the Amazon RDS API.

When you create a cross-region Read Replica for Aurora by using the AWS console, Amazon RDS creates a DB cluster in the target AWS Region, and then creates a DB instance that is the primary instance for the DB cluster that is the Read Replica.

When you create this type of Read Replica using the AWS CLI or RDS API, you create the Read Replica DB cluster in the target AWS Region, and then create a DB instance that is the primary instance for that DB cluster.

Replication begins when the primary instance of the Read Replica DB cluster becomes available.

To create a cross-region Aurora DB cluster that is a Read Replica using the AWS console

  1. Open the Amazon Aurora console at https://console.aws.amazon.com/rds.

  2. In the top-right corner of the AWS Management Console, select the AWS Region that hosts your source DB cluster.

  3. In the navigation pane, choose Instances.

  4. Select the check box for the DB cluster that you want to create a cross-region Read Replica for. Choose Instance Actions, and then choose Create Cross Region Read Replica.

    Instance Actions: Create Cross Region Read Replica
  5. In the Cross Region Read Replica panel, select the option settings for your cross-region Read Replica DB cluster, as described in the following table.

    OptionDescription

    DB Instance Class

    Choose a DB instance class that defines the processing and memory requirements for the primary instance in the DB cluster. For more information about DB instance class options, see DB Instance Class.

    Multi-AZ Deployment

    Choose Create Replica in Different Zone to create a standby replica of the new DB cluster in another Availability Zone in the target region for failover support. For more information about multiple Availability Zones, see Regions and Availability Zones.

    Read Replica Source

    Choose the source DB cluster to create a cross-region Read Replica for.

    DB Instance Identifier

    Type a name for the primary instance in your cross-region Read Replica DB cluster. This identifier is used in the endpoint address for the primary instance of the new DB cluster.

    The DB instance identifier has the following constraints:

    • It must contain from 1 to 63 alphanumeric characters or hyphens.

    • Its first character must be a letter.

    • It cannot end with a hyphen or contain two consecutive hyphens.

    • It must be unique for all DB instances for each AWS account, for each region.

    Because the cross-region Read Replica DB cluster is created from a snapshot of the source DB cluster, the master user name and master password for the Read Replica are the same as the master user name and master password for the source DB cluster.

    DB Cluster Identifier

    Type a name for your cross-region Read Replica DB cluster that is unique for your account in the target AWS Region for your replica. This identifier will be used in the cluster endpoint address for your DB cluster. For information on the cluster endpoint, see Aurora Endpoints.

    The DB cluster identifier has the following constraints:

    • It must contain from 1 to 63 alphanumeric characters or hyphens.

    • Its first character must be a letter.

    • It cannot end with a hyphen or contain two consecutive hyphens.

    • It must be unique for all DB clusters for each AWS account, for each region.

    Destination Region

    Choose the AWS Region that will host the new cross-region Read Replica DB cluster.

    Destination DB Subnet Group

    Choose the DB subnet group to use for the cross-region Read Replica DB cluster.

    Publicly Accessible

    Choose Yes to give the cross-region Read Replica DB cluster a public IP address; otherwise, select No.

    Availability Zone

    Determine if you want to specify a particular Availability Zone, and then either choose that Availability Zone, or choose No preference to have Amazon RDS choose the Availability Zone for your new DB cluster.

    Priority

    Choose a failover priority for the primary instance of the new DB cluster. This priority determines the order in which Aurora Replicas are promoted when recovering from a primary instance failure. If you don't select a value, the default is tier-1. For more information, see Fault Tolerance for an Aurora DB Cluster.

    Database Port

    Specify the port that applications and utilities will use to access the database. Aurora DB clusters default to the default MySQL port, 3306. Firewalls at some companies block connections to this port. If your company firewall blocks the default port, choose another port for the new DB cluster.

    Enable Enhanced Monitoring

    Choose Yes to enable gathering metrics in real time for the operating system that your DB cluster runs on. For more information, see Enhanced Monitoring.

    Monitoring Role

    This option is only available if Enable Enhanced Monitoring is set to Yes. Set the Monitoring Role property to the IAM role that you created to permit Amazon RDS to communicate with Amazon CloudWatch Logs for you, or choose Default to have RDS create a role for you named rds-monitoring-role.

    Granularity

    This option is only available if Enable Enhanced Monitoring is set to Yes. Set the interval, in seconds, at which metrics are collected for your new DB cluster.

    Auto Minor Version Upgrade

    Choose Yes if you want to enable your cross-region Read Replica DB cluster to receive minor MySQL DB Engine version upgrades automatically when they become available.

    The Auto Minor Version Upgrade option only applies to upgrades to MySQL minor engine versions for your DB cluster. It doesn't apply to regular patches applied to maintain system stability.

  6. Choose Create to create your cross-region Read Replica for Aurora.

To create a cross-region Aurora DB cluster that is a Read Replica by using the AWS CLI

  1. Call the AWS CLI create-db-cluster command in the region where you want to create the Read Replica DB cluster. Include the --replication-source-identifier parameter and specify the Amazon Resource Name (ARN) of the source DB cluster to create a Read Replica for as shown in the following example. You don't need to include the --master-username and --master-user-password parameters, because those values are taken from the source DB cluster.

    For Linux, OS X, or Unix:

    
    aws rds create-db-cluster \
      --db-cluster-identifier sample-replica-cluster \
      --engine aurora \
      --replication-source-identifier arn:aws:rds:us-west-2:12345678912:cluster:sample-master-cluster
        

    For Windows:

    
    aws rds create-db-cluster ^
      --db-cluster-identifier sample-replica-cluster ^
      --engine aurora ^
      --replication-source-identifier arn:aws:rds:us-west-2:12345678912:cluster:sample-master-cluster
        
  2. Check that the DB cluster has become available to use by using the AWS CLI describe-db-clusters command, for example:

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

    When the describe-db-clusters results show a status of available, create the primary instance for the DB cluster so that replication can begin. To do so, use the AWS CLI create-db-instance command as shown in the following example.

    For Linux, OS X, or 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                              
                            

    For 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                              
                            

    When the DB instance is created and available, replication begins. You can determine if the DB instance is available by calling the AWS CLI describe-db-instances command.

To create a cross-region Aurora DB cluster that is a Read Replica by using the RDS API

  1. Call the RDS API CreateDBCluster action in the region where you want to create the Read Replica DB cluster. Include the ReplicationSourceIdentifier parameter and specify the Amazon Resource Name (ARN) of the source DB cluster to create a Read Replica for as shown in the following example. You don't need to include the MasterUsername and MasterUserPassword parameters, because those values are taken from the source DB cluster.

    
    https://rds.us-west-2.amazonaws.com/
      ?Action=CreateDBCluster
      &DBClusterIdentifier=sample-replica-cluster
      &Engine=aurora
      &SignatureMethod=HmacSHA256
      &SignatureVersion=4
      &Version=2014-10-31
      &X-Amz-Algorithm=AWS4-HMAC-SHA256
      &X-Amz-Credential=AKIADQKE4SARGYLE/20160201/us-west-2/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
        
  2. Check that the DB cluster has become available to use by using the RDS API DescribeDBClusters action, for example:

    
    https://rds.us-west-2.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/20160201/us-west-2/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                                
                                

    When the DescribeDBClusters results show a status of available, create the primary instance for the DB cluster so that replication can begin. To do so, use the RDS API CreateDBInstance action as shown in the following example.

    
    https://rds.us-west-2.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/20160201/us-west-2/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                             
                            

    When the DB instance is created and available, replication begins. You can determine if the DB instance is available by calling the AWS CLI DescribeDBInstances command.

Viewing Amazon Aurora Cross-Region Replicas

You can view the cross-region replication relationships for your Amazon Aurora DB clusters by calling the describe-db-clusters AWS CLI command or the DescribeDBClusters RDS API action. In the response, refer to the ReadReplicaIdentifiers field for the DB cluster identifiers of any cross-region Read Replica DB clusters, and refer to the ReplicationSourceIdentifier element for the ARN of the source DB cluster that is the replication master.

Troubleshooting Amazon Aurora Cross Region Replicas

Following you can find a list of common error messages that you might encounter when creating an Amazon Aurora cross-region Read Replica, and the resolutions for the specified errors.

Source cluster [DB cluster ARN] doesn't have binlogs enabled.

To resolve this issue, enable binary logging on the source DB cluster. For more information, see Before You Begin.

Source cluster [DB cluster ARN] doesn't have cluster parameter group in sync on writer.

You receive this error if you have updated the binlog_format DB cluster parameter, but have not rebooted the primary instance for the DB cluster. Reboot the primary instance (that is, the writer) for the DB cluster and try again.

Source cluster [DB cluster ARN] already has a read replica in this region

You can only have one cross-region Read Replica DB cluster for each source DB cluster. You must delete the existing cross-region DB cluster that is a Read Replica in order to create a new one.

DB Cluster [DB cluster ARN] requires a database engine upgrade for cross-region replication support

To resolve this issue, upgrade the database engine version for all of the instances in the source DB cluster to the most recent database engine version, and then try creating a cross-region Read Replica DB again.