What advantage does Aurora have over RDS?

Amazon Aurora FAQs

High availability and replication

Q: How does Amazon Aurora improve my database's fault tolerance for disk failures?

Amazon Aurora automatically separates your database volume into 10 GB segments, which are housed on many different disks. Every 10 GB block of your database is replicated six times and in three Availability Zones. Amazon Aurora is designed to transparently handle the loss of up to two copies of the data without affecting write availability, and up to three copies without affecting read availability. Also, Amazon Aurora's storage automatically fixes issues. Data blocks and data carriers are continuously checked for errors and automatically repaired.

Q: How does Aurora improve recovery time after a database crash?

After a database crash - unlike other databases - Amazon Aurora does not have to replay the redo log from the last database checkpoint (which usually takes 5 minutes) and report that all changes have been applied before it makes the database available for operations. In most cases, this reduces the restart time to less than 60 seconds. Amazon Aurora removes the database's buffer cache from the database process and makes it available immediately at the time of restart. This prevents a throttling of the access until the cache is refilled to avoid brownouts.

Q: What types of replicas does Aurora support?

Amazon Aurora MySQL and Amazon Aurora PostgreSQL support Amazon Aurora Replicas that share the same underlying volume as the primary instance in the same AWS Region. Updates made by the primary instance are visible in all Amazon Aurora Replicas. Amazon Aurora MySQL also allows you to create cross-region MySQL read replicas using the Binlog-based MySQL replication engine. With MySQL Read Replicas, data from your primary instance is played back as transactions on your replica. For most use cases, including reading scaling and high availability, we recommend using Amazon Aurora Replicas.

You can combine these two types of replica flexibly with one another depending on the application requirements:

functionAmazon Aurora Replicas
MySQL replicas
Number of replicasUp to 15Up to 5
Replication typeAsynchronous (milliseconds)Asynchronous (seconds)
Impact on Primary Instance PerformanceLowHigh
Replica locationIn the region
Across regions
Acts as a failover targetYes (no data loss)Yes (possibly a few minutes of data loss)
Automated failoverYesNo
Custom replication delay supportNoYes
Support for data or schema different from the primary instanceNoYes

You have two other replication options in addition to those listed above. You can use Aurora Global Database for faster physical replication between Aurora clusters in different regions. And for replication between Aurora and non-Aurora MySQL databases (even outside of AWS), you can set up your own, self-managed binlog replication.

Q: Can I have replicas in multiple regions with Amazon Aurora?

Yes, you can set up Aurora cross-region replicas with either logical or physical replication.

Physical replication, called Aurora Global Database, uses a dedicated infrastructure that makes your databases fully available to serve your application and that can be replicated in up to five secondary regions with typical latency of less than a second. It is available for Aurora MySQL and Aurora PostgreSQL. For global reads with low latency and disaster recovery, we recommend using Aurora Global Database.

Aurora supports native logical replication in every database engine (Binlog for MySQL and PostgreSQL replication slots for PostgreSQL) so you can replicate to Aurora and non-Aurora databases, even across regions.

Aurora MySQL also provides an easy-to-use, logical, cross-region replication that supports up to five AWS secondary regions. It is based on single-threaded MySQL binlog replication; the delay in replication is affected by the rate of change / application and delays in network communication between the specific regions selected.

Q: Can I create Aurora Replicas in the cross-region replica cluster?

Yes, you can add up to 15 Aurora Replicas to each cross-region cluster and they will share the same underlying storage space as the cross-region replica. The cross-region replica acts as the primary replica in the cluster; the Aurora Replicas in the cluster are typically tenths of a millisecond lag behind the primary replica.

Can I fail over to the cross-region replica for my application from my current primary replica?

Yes, you can make your cross-region replica the new primary replica from the RDS console. For logical (binlog) replication, the promotion process usually takes a few minutes, depending on your workload. Cross-region replication will stop as soon as you start this process.

With the Aurora Global Database, you can promote a secondary region to accommodate full read / write workloads in less than a minute.

Q: Can I prioritize certain Replicas over others as failover targets?

Yes. You can assign a promotion priority tier to each instance on the cluster. Should the primary instance fail, Amazon RDS promotes the replica with the highest priority to the new primary instance. If two or more Aurora replicas have the same priority, Amazon RDS promotes the largest replica. If two or more Aurora replicas have the same priority and size, Amazon RDS will promote any replica in the same promotion tier. For more information on failover logic, see the Amazon Aurora User Guide.


Q: Can I change the priority quotas of instances after they are created?

Yes, you can edit the priority quota for an instance at any time. Editing a priority quota does not trigger a failover.

Q: Can I choose to have certain replicas never be promoted to the primary instance?

You can assign lower priority quotas to the replicas that you do not want to be promoted to the primary instance. However, if the replicas on the higher priority cluster are damaged or unavailable for any reason, Amazon RDS promotes the lower priority replica.

Q: How can I improve the availability of a single Amazon Aurora database?

You can add Amazon Aurora Replicas. Aurora Replicas in the same AWS Region share the same underlying storage space as the primary instance. Any Amazon Aurora Replica can be promoted to primary without loss of data. This allows them to be used to improve fault tolerance in the event of a failure of the primary DB instance. To improve database availability, you can simply create 1 to 15 replicas in any of the 3 AZs. Amazon RDS automatically adds these to the primary instance failover selection in the event of a database failure.

You can use the Aurora Global Database if you want your database to span multiple AWS Regions. This replicates your data without impacting database performance and enables disaster recovery from regional outages.

Q: What happens during a failover and how long does it take?

Amazon Aurora automatically performs failover so that your applications can resume database operations as quickly as possible and with no administrative overhead.

  • If you have an Amazon Aurora Replica in the same or a different Availability Zone, Amazon Aurora changes the CNAME for your DB instance to point to the healthy replica, which it promotes to be the new primary instance. The entire failover is typically completed within 30 seconds.
  • If you are running Aurora Serverless and the DB Instance or AZ is no longer available, Aurora will automatically create the DB Instance in a different AZ.
  • If you do not have an Amazon Aurora Replica (that is, a single instance), Aurora Serverless first attempts to create a DB instance in the Availability Zone of the original instance. Our best efforts are made to replace the original instance, but it is not always successful; For example, if there is a problem that affects the Availability Zone in general.

If the connection is lost, your application must try to reconnect to the database.

Disaster recovery across regions is a manual process in which you promote a secondary region to accommodate read / write workloads.

Q: What if I have a primary database and an Amazon Aurora Replica actively taking read traffic and failover?

Amazon RDS automatically detects that there is a problem with your primary instance and triggers a failover. When you use the cluster endpoint, your read / write connections are automatically routed to an Amazon Aurora Replica, which is promoted to the primary instance.

Read traffic from your Amazon Aurora Replicas will also be briefly interrupted. If you use the cluster reader endpoint to route your read traffic to the Aurora Replica, the read-only connections will be forwarded to the newly promoted Aurora Replica until the old primary node is re-established as a replica.

Q: What is the time difference between the primary instance and my replicas?

Because Amazon Aurora Replicas use the same data volume as the primary instance in the same AWS Region, there is virtually no delay in replication. We usually observe delays in the tenths of a millisecond. In the case of MySQL read replicas, the delay in replication can increase indefinitely due to the change / apply rate or delays in network communication. However, under normal circumstances, the replication delay is typically less than a minute.

Cross-regional replicas with logical replication are affected by the rate of change / application and delays in network communication between the selected regions. Cross-regional replicas with the Aurora Global Database have a typical delay of less than a second.

Q: Can I set up a replication between my Aurora MySQL database and an external MySQL database?

Yes, you can set up binlog replication between an Aurora MySQL instance and an external MySQL database. The other database can run on Amazon RDS, as a self-managed database on AWS, or completely outside of AWS.

If you are using Aurora MySQL 5.7 you should consider setting up GTID-based binlog replication. This gives you complete consistency so that your replication does not miss any transactions or create conflicts, even after failover or downtime.

Q: What is Amazon Aurora Global Database?

Amazon Aurora Global Database is a feature that enables a single Amazon Aurora database to cover multiple AWS Regions. It replicates your data with no impact on database performance, enables fast local reads in any region with a typical latency of less than a second, and provides disaster recovery after regional failure. In the unlikely event of regional degradation or failure, a secondary region can be fully read / written in less than 1 minute.

This function is available for Aurora MySQL and Aurora PostgreSQL.

Q: How do I create an Aurora Global Database?

You can create an Aurora Global Database with just a few clicks in the Amazon RDS Management Console. You can also choose to use the SDK or the CLI. You must have at least one instance per region in your Aurora Global Database.

Q: How many secondary regions can an Aurora Global Database have?

You can create up to five secondary regions for an Aurora Global Database.

Q: If I am using the Aurora Global Database, can I also use logical replication (binlog) on ​​the primary database?

Yes. If your goal is to analyze database activity, consider using Aurora Advanced Auditing, common logs, and slow query logs instead so as not to affect the performance of your database.

Q: Will Aurora automatically move to a secondary region of an Aurora Global Database?

No. If your primary region is no longer available, you can manually remove a secondary region from an Aurora Global Database and advertise it to be fully read and written. You must also direct your application to the newly advertised region.

Q: What is the Amazon Aurora Multi-Master?

Amazon Aurora Multi-Master is a function of the MySQL-compatible Aurora version, which can horizontally scale up the writing performance of multiple Availability Zones. This enables applications to push read / write workloads to multiple instances in a database cluster and run with greater availability.

Q: What are the first steps to get started with Amazon Aurora Multi-Master?

Amazon Aurora Multi-Master is now generally available. For more information, see the Amazon Aurora documentation. You can create an Aurora multi-master cluster with just a few clicks in the Amazon RDS management console or download the latest AWS SDK or CLI.