Aurora

Amazon Aurora is AWS’s proprietary relational database. Aurora is compatible with PostgreSQL and MySQL databases. It’s optimized for cloud usage and provides performance that’s five times better than MySQL and three times better than PostgreSQL on RDS.

Data storage

Aurora stores six copies of data in a minimum of three AZs at a time. Each storage is striped across hundreds of volumes. This makes Aurora highly durable and available. It needs four out of six copies of data to perform write operations and three out of six copies to perform read operations.

Read replicas

Aurora can have up to 15 read replicas. Other database engines in RDS can only have five. As with other database engines in RDS, Aurora Read Replicas can be in different AZs or AWS Regions.

We can use Auto Scaling with read replicas in Aurora. Auto Scaling will constantly measure the requirements of the database and add or remove read replicas as needed.

In RDS, each read replica usually has its own endpoint, and to connect to a read replica, the application or user must use that endpoint. This setup works well without Auto Scaling, but when read replicas are created and deleted automatically to scale the application, it becomes impossible to keep track of each endpoint. This is where the reader endpoint comes into play. A reader endpoint provides a single entry point to all the read replicas in a cluster.

In the example below, we have a primary database and two read replicas that are configured to scale automatically. The reader endpoint automatically registers and deregisters read replicas as they’re added and removed. All connections are automatically load-balanced among the read replicas in the database. The primary database has a writer endpoint, which is used to write data to the database.

Get hands-on with 1200+ tech skills courses.