What is AWS Aurora?
AWS Aurora is part of the AWS database cloud service offerings. AWS Aurora is a relational database that is compatible with MySQL and PostgreSQL database engines. AWS Aurora has a number of unique features that are designed to address the scalability and availability limitations of existing relational database management systems – particularly when operating at cloud scale.
Amazon RDS manages AWS Aurora and fully automates time-consuming tasks like database setup hardware provisioning, backups, and patching.
Why is AWS Aurora Different?
AWS set out to address the common issues when scaling conventional RDBMS platforms to :
- Scale and grow quickly and easily to support massive workloads.
- Minimise business impact from system component failure.
- Reduce the complexity and challenges for database administrators to keep up with demanding business requirements.
AWS Aurora uses significantly different approaches to the way that redo logging, high availability, database storage is performed compared to conventional RDBMS platforms.
Conventional RDBMS write redo, or transaction recovery, logs as a sequential stream to multiple log files. This allows the RDBMS to maintain performance and recovery objectives. AWS Aurora writes redo records to the shared storage layer which is then used to construct the database page on demand from the shared storage redo records. This approach avoids the expense of sequentially reading and writing redo logs as used in conventional RDBMS platforms.
AWS Aurora uses an approach known as a quorum for database IO management. The approach is to write as many IO’s as required to shared storage to reach a quorum. For each logical IO performed by Aurora there are 6 replica IO’s performed at the storage layer across multiple availability zones. This allows AWS Aurora to provide a high level of resilience to system failures and provide HA across multiple availability zones.
AWS Aurora uses a combination of sharding and scale out at the storage layer. Database storage is logically grouped into “chunks” of 10GiB each known as protection groups. Protection groups are replicated six times across the storage platform as “segments”. In the event of failure of a single segment the surviving segments are used to repair the failed segment automatically. Wider system failure requiring recovery of multiple segments is performed quickly by using the whole bandwidth of the underlying storage platform. Recovery of the affected segments is performed using the redo records located on the shared storage which are typically much smaller in size than whole disk pages or blocks in a conventional RDBMS.
How does AWS Aurora compare to MySQL and PostgreSQL?
AWS Aurora is up to 5x faster than MySQL on AWS RDS. Compared to AWS RDS PostgreSQL databases it is up to 3x faster. AWS Aurora is designed for 99.99% availability as part of the service offering. There is no requirement to setup complex multi-site replication solutions.
AWS Aurora supports the following enhancements that would require considerable engineering effort in a standard MySQL or PostgreSQL environment:
- Up to 15 read replicas across multiple availability zones.
- Continuous backup and point in time restore.
- Fast clones using snapshots.
- Backtrack – the ability to roll-back the database to a point in time without requiring whole database restore.
Why we like AWS Aurora:
- High Performance and Scalability
- Fast performance and can easily scale database deployment up and down from small to large instances. Massive amounts of compute and IO can be consumed to drive down query response times.
- High Availability and Durability
- Designed to offer greater than 99.99% availability with multi availability zone redundancy. Avoids the complexities of manually provisioning high availability RDBMS platforms.
- Highly Secure
- AWS provides multiple levels of security:
- create and control encryption at rest using keys through AWS KMS (Key Management System). Encryption at rest includes backups, replicas and snapshots of the database.
- AWS provides multiple levels of security:
- MySQL and PostgreSQL Compatible
- You can easily migrate MySQL or PostgreSQL databases to Aurora using standard snapshots or import/export tools.
- Complex migration cases can use AWS DMS to migrate from open source or commercial RDBMS platforms to AWS Aurora.
- Fully Managed
- Amazon Relational Database Service gives you worry-free database management tasks such as hardware provisioning, software patching, setup, configuration, or backups.