Amazon Aurora is a fully managed relational database engine that combines the speed and reliability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases.
Introduced by Amazon Web Services (AWS) in 2014, Aurora has quickly become one of the popular choices for companies looking to deploy databases in the cloud. At its core, Aurora is designed to be compatible with MySQL and PostgreSQL, which allows developers to use the same code, drivers, and tools that they are already familiar with. However, under the hood, Amazon has heavily optimized Aurora for the cloud, providing performance improvements while ensuring strong durability and reliability.
Aurora also offers Aurora DSQL, a serverless, distributed SQL database with PostgreSQL compatibility and active-active multi-Region availability.
One of the critical innovations of Amazon Aurora is its distributed, fault-tolerant, self-healing storage system, which automatically replicates data across multiple Availability Zones (AZs). Each Aurora database volume is backed by a fleet of storage instances that AWS manages across three AZs to ensure high availability and durability. The system is designed to handle the loss of up to two copies of data without affecting database write availability and up to three copies without affecting read availability.
Aurora PostgreSQL and Aurora MySQL offer Aurora Standard and Aurora I/O-Optimized cluster configurations. I/O-Optimized is intended for I/O-intensive applications that need improved price performance and predictable pricing.
Aurora offers six times the throughput of PostgreSQL and MySQL. This boost is achieved through a combination of optimizations like advanced read-ahead and write-behind mechanisms, as well as the tight integration within the AWS ecosystem. Moreover, Amazon Aurora is highly scalable. The underlying storage automatically scales up to 256 TiB per database instance.
Aurora PostgreSQL and Aurora MySQL can run with provisioned instances, whose resources depend on the selected instance type, or with Aurora serverless, which automatically starts, shuts down, and adjusts capacity to application demand.
The engine supports up to 15 low-latency read replicas, which helps in scaling read operations and enhancing the performance of read-heavy applications. Amazon Aurora also simplifies database management tasks. Since it's a managed service, many of the time-consuming tasks such as provisioning, patching, backup, recovery, failure detection, and repair are automated.
Aurora PostgreSQL Limitless Database provides automated horizontal scaling beyond a single instance's write-throughput and storage limits by distributing workloads over multiple writer instances while retaining a single database.
Aurora continuously backs up your data to Amazon S3, and these backups are incremental and continuous, meaning that you can quickly recover your database to any point within the saved history.
A comprehensive set of security features also comes built into Amazon Aurora. It integrates with AWS Identity and Access Management (IAM) and offers encryption at rest using AWS Key Management Service (KMS), as well as encryption in transit with SSL. Network isolation using Amazon VPC, along with the ability to create private endpoints, ensures that your data is protected within your own virtual network.
Given these sophisticated features, Amazon Aurora is well-suited to a wide range of applications. Its high-performance characteristics make it ideal for enterprise applications, SaaS products, and any scenario that requires a robust, fault-tolerant, and scalable database. With Aurora, businesses and developers have the ability to support heavy workloads while benefiting from the ease of use and cost savings that come with a cloud-native database service.
Icon source: AWS