AWS Database Blog
Introducing Amazon Aurora DSQL
Relational databases are a powerful and flexible building block for a wide range of applications and services – from microservices and websites, to mobile backends and SaaS applications. Ten years ago, we launched Amazon Aurora, offering unparalleled high-performance and availability with full MySQL and PostgreSQL compatibility, at 1/10th the cost of commercial databases. We’ve heard customers ask for a relational database that’s easier to manage, scales up and down with their workloads, and makes it easier to build highly available multi-Region and multi-AZ architectures.
Today, we introduce Amazon Aurora DSQL, the fastest serverless distributed SQL database for always available applications. It offers virtually unlimited scale, highest availability, and zero infrastructure management. It can scale to meet any workload demand without database sharding or instance upgrades. With its innovative active-active distributed architecture, Aurora DSQL is designed for 99.99% availability in single-Region configuration and 99.999% in multi-Region configuration, with an innovative active-active, distributed architecture, making it ideal for building highly-available applications. Its serverless design eliminates the operational burden of patching, upgrades, maintenance downtime, and more. Aurora DSQL also provides a simple experience, starting with quick database creation in a few steps. Aurora DSQL is PostgreSQL-compatible, enabling developers to rapidly build and deploy applications using well-known relational database concepts, and the drivers, tools, and frameworks they already know.
In this post, we discuss the benefits of Aurora DSQL and how to get started.
Aurora DSQL architecture and benefits
Aurora DSQL is designed to be run in two configurations: a single-Region configuration that handles component failures or Availability Zone (AZ) disruptions without downtime, and a multi-Region configuration that handles multiple AZ failures while keeping you in complete control of where your data is processed and stored. Its unique disaggregated active-active architecture eliminates downtime due to failover or switchover, making it easy to design for high availability and business continuity.
Aurora DSQL offers single-Region clusters that are active-active across three AZs, minimizing replication lag and traditional database failover operations. In the event of hardware or infrastructure failures, it automatically routes requests to healthy infrastructure without manual intervention. Transactions in Aurora DSQL offer all the ACID properties (Atomicity, Consistency, Isolation, and Durability), even across multiple Regions, with minimal latency impact. It implements strong snapshot isolation, and provides strong data consistency for reads and writes to cluster endpoints.
The following diagram illustrates Aurora DSQL’s high available cluster topology in a single-Region deployment.
In a single-Region configuration, Aurora DSQL commits all write transactions to a distributed transaction log and synchronously replicates all committed log data to user storage replicas in three AZs. Cluster storage replicas are distributed across a storage fleet for optimal database performance. Aurora DSQL is designed for automated failover recovery. When a component or AZ becomes impaired, it automatically redirects access to healthy components and asynchronously repairs the replicas. Once the impaired replicas are restored, Aurora DSQL automatically adds them back to the storage quorum and makes them available to your cluster.
Aurora DSQL offers 99.999% multi-Region availability for when your applications need the highest resiliency.
Multi-Region clusters provide the same resilience and connectivity as single-Region clusters while improving availability through two Regional endpoints, one for each linked cluster Region. Both endpoints of a linked cluster present a single logical database and support concurrent read and write operations with strong data consistency. This allows you to balance applications and connections for geographic locations, performance, or resiliency purposes, making sure readers consistently see the same data.
The following diagram illustrates the architecture of an application using an Aurora DSQL multi-Region cluster.
When you create a multi-Region cluster, Aurora DSQL creates another cluster in a different Region and links them together. Adding linked Regions makes sure that all changes from committed transactions are replicated to the other linked Regions. Each linked cluster has a Regional endpoint, and Aurora DSQL synchronously replicates writes across Regions, enabling strongly consistent reads and writes from any linked cluster.
A third Region acts as the witness Region. The witness Region receives the data written to linked clusters, but doesn’t have a cluster or an associated endpoint. It stores a limited window of encrypted transaction logs, which Aurora DSQL uses to provide multi-Region durability and availability.
Other Aurora DSQL features
Aurora DSQL provides virtually unlimited scale to help meet any workload demand. Its query processing layer, commit layer, and storage layer scale independently, adapting to workloads of any shape, including different read/write ratios, data sizes, and query complexities. This means developers can focus on the next-big-thing rather than worrying about maintaining database performance, even as a growing business demands more capacity.
Developers can quickly create new clusters with a single API call, and begin using a PostgreSQL-compatible database within minutes. It supports many common PostgreSQL drivers and tools, as well as core relational features like ACID transactions, SQL queries, secondary indexes, joins, inserts, and updates.
Aurora DSQL also enhances your security posture with simple declarative privacy and security controls and full integration with AWS Identity and Access Management (IAM) and AWS CloudTrail. It blocks standard user password-based authentication without sacrificing PostgreSQL wire protocol compatibility. It supports token-based authentication using IAM, with helper functions in the AWS Command Line Interface (AWS CLI) and AWS SDK for token generation.
Unlike traditional databases, Aurora DSQL uses optimistic concurrency control (OCC) instead of a traditional locking approach. As you scale, OCC makes sure that your longer transactions don’t slow down other in-flight transactions. To learn more about OCC in Aurora DSQL, refer to Concurrency control in Amazon Aurora DSQL.
Conclusion
Aurora DSQL makes it easy to build resilient applications with strong consistency to meet the growing regulatory challenges and without worrying about application downtime or data loss. With its innovative features, you can transform your approach to data management and application scalability.
Now available in preview, you can experience first-hand how easy it is to get started. Go to the Aurora DSQL console or use the AWS CLI or the AWS SDK for programmatic access.
To learn more, visit the Aurora DSQL overview page or refer to our comprehensive user guide for in-depth information.
About the authors
Raluca Constantin is a Senior Database Engineer in the AWS Distributed SQL database team.
Arun Sankaranarayanan is a Database Specialist Solution Architect based in London, UK.