Amazon Aurora Documentation

Amazon Aurora is a MySQL and PostgreSQL-compatible relational database built for the cloud, that is designed to combine the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.

Amazon Aurora is managed by Amazon Relational Database Service (RDS), which is designed to automate time-consuming administration tasks like hardware provisioning, database setup, patching, and backups.

Amazon Aurora features a distributed, fault-tolerant, self-healing storage system that is designed to auto-scale up to 128TB per database instance. It is designed to provide high performance and availability with up to 15 low-latency read replicas, point-in-time recovery, continuous backup to Amazon S3, and replication across three Availability Zones (AZs).

Amazon Aurora Features: MySQL-Compatible Edition

Performance and Scalability

High Throughput

Amazon Aurora uses a variety of software and hardware techniques to confirm the database engine is able to fully leverage available compute, memory and networking. I/O operations use distributed systems techniques such as quorums to improve performance consistency.

Push-Button Compute Scaling

Using the Amazon RDS APIs or the AWS Management Console, you can scale the compute and memory resources powering your deployment up or down. 

Storage Auto-Scaling

Amazon Aurora is designed to automatically grow the size of your database volume as your database storage needs grow. Your volume will grow in increments of 10 GB up to a maximum of 128 TB. 

Low-Latency Read Replicas

Increase read throughput to support high-volume application requests by creating up to 15 database Aurora replicas. Amazon Aurora Replicas share the same underlying storage as the source instance, which can help lower costs and avoid the need to perform writes at the replica nodes. This helps free up more processing power to serve read requests and reduces the replica lag time. Aurora provides a reader endpoint so the application can connect without having to keep track of replicas as they are added and removed. Aurora also supports auto-scaling as it is designed to automatically adds and removes replicas in response to changes in performance metrics that you specify.

Aurora supports cross-region read replicas. Cross-region replicas provide fast local reads to your users, and each region can have an additional 15 Aurora replicas to further scale local reads. You can choose between Global Database, which provides may provide the best replication performance, and traditional binlog-based replication. You can also set up your own binlog replication with external MySQL databases.

Serverless Configuration

Amazon Aurora Serverless is an on-demand, auto-scaling configuration for Aurora that is designed to automatically start-up, shut down, and scale up or down database capacity based on your application's needs. Aurora Serverless helps you to run your database in the cloud without managing any database instances.

Custom Database Endpoints

Custom endpoints help you to distribute and load balance workloads across different sets of database instances. For example, you may provision a set of Aurora Replicas to use an instance type with higher memory capacity in order to run an analytics workload. A custom endpoint can then help you route the analytics workload to these appropriately-configured instances, while keeping other instances isolated from this workload.

Parallel Query

Amazon Aurora Parallel Query is designed to provide faster analytical queries over your current data. It can speed up queries, while maintaining high throughput for your core transaction workload. By pushing query processing down to the Aurora storage layer, it gains computing power while reducing network traffic. Use Parallel Query to run transactional and analytical workloads alongside each other in the same Aurora database.

Availability and Durability

Instance Monitoring and Repair

Amazon RDS is designed to continuously monitor the health of your Amazon Aurora database and underlying EC2 instance. In the event of database failure, Amazon RDS will automatically restart the database and associated processes. Amazon Aurora is designed to not require crash recovery replay of database redo logs, greatly reducing restart times. It also isolates the database buffer cache from database processes, allowing the cache to survive a database restart.

Multi-AZ Deployments with Aurora Replicas

On instance failure, Amazon Aurora uses RDS Multi-AZ technology which is designed to automate failover to one of up to 15 Amazon Aurora Replicas you have created in any of three Availability Zones. If no Amazon Aurora Replicas have been provisioned, in the case of a failure, Amazon RDS is designed to attempt to create a new Amazon Aurora DB instance for you automatically. You can also help minimize failover time with the AWS JDBC Driver for MySQL, an open source driver that can be used as a drop-in replacement for the MySQL Connector/J driver.

Global Database

For globally distributed applications you can use Global Database, where a single Aurora database can span multiple AWS regions to enable fast local reads and disaster recovery. Global Database uses storage-based replication to replicate a database across multiple AWS Regions. You can use a secondary region as a backup option in case you need to recover quickly from a regional degradation or outage. A database in a secondary region can be promoted to full read/write capabilities.

Fault-Tolerant and Self-Healing Storage

Each 10GB chunk of your database volume is replicated six ways, across three Availability Zones. Amazon Aurora storage is fault-tolerant, transparently handling the loss of up to two copies of data without affecting database write availability and up to three copies without affecting read availability. Amazon Aurora storage is also designed to be self-healing; data blocks and disks are continuously scanned for errors and replaced automatically.

Automatic, Continuous, Incremental Backups and Point-in-Time Restore

Amazon Aurora's backup capability is designed to enable point-in-time recovery for your instance. This allows you to restore your database to any second during your retention period, up to the last five minutes. Your backup retention period can be configured up to thirty-five days. Backups are stored in Amazon S3. Amazon Aurora backups are designed to be automatic, incremental, and continuous and have no impact on database performance.

Database Snapshots

DB Snapshots are user-initiated backups of your instance stored in Amazon S3 that are kept until you explicitly delete them. They leverage the automated incremental snapshots to reduce the time and storage required. You can create a new instance from a DB Snapshot whenever you desire.

Backtrack

Backtrack is designed to lets you quickly move a database to a prior point in time without needing to restore data from a backup. This lets you recover from user errors, such as dropping the wrong table or deleting the wrong row. When you enable Backtrack, Aurora will retain data records for the specified Backtrack duration. For example, you could set up Backtrack to allow you to move your database up to 72 hours back. Backtrack is designed to complete in seconds, even for large databases, because no data records need to be copied. You can go backwards and forwards to find the point just before the error occurred.

Backtrack may also be useful for development & test, particularly in situations where your test deletes or otherwise invalidates the data. Simply backtrack to the original database state, and you're ready for another test run. You can create a script that calls Backtrack via an API and then runs the test, for simple integration into your test framework.

Security

Network Isolation

Amazon Aurora runs in Amazon VPC, which allows you to isolate your database in your own virtual network, and connect to your on-premises IT infrastructure using encrypted IPsec VPNs. In addition, using Amazon RDS, you can configure firewall settings and control network access to your DB Instances.

Resource-Level Permissions

Aurora is integrated with AWS Identity and Access Management (IAM) and is designed to provide you the ability to control the actions that your AWS IAM users and groups can take on specific Aurora resources (e.g., DB Instances, DB Snapshots, DB Parameter Groups, DB Event Subscriptions, DB Options Groups). In addition, you can tag your Aurora resources, and control the actions that your IAM users and groups can take on groups of resources that have the same tag (and tag value). 

Encryption

Amazon Aurora is designed to allow you to encrypt your databases using keys you create and control through AWS Key Management Service (KMS). On a database instance running with Amazon Aurora encryption, data stored at rest in the underlying storage is encrypted, as are the automated backups, snapshots, and replicas in the same cluster. Amazon Aurora uses SSL (AES-256) to secure data in transit.

Advanced Auditing

Amazon Aurora is designed to allow you to log database events with minimal impact on database performance. Logs can later be analyzed for database management, security, governance, regulatory compliance and other purposes. You can also monitor activity by sending audit logs to Amazon CloudWatch.

Managed

Use

Just launch a new Amazon Aurora DB Instance using the Amazon RDS Management Console or a single API call or CLI. Amazon Aurora DB Instances are pre-configured with parameters and settings appropriate for the DB Instance class you have selected. You can launch a DB Instance and connect your application within minutes without additional configuration. DB Parameter Groups provide granular control and fine-tuning of your database.

Monitoring and Metrics

Amazon Aurora provides Amazon CloudWatch metrics for your DB Instances. You can use the AWS Management Console to view over 20 key operational metrics for your database instances, including compute, memory, storage, query throughput, cache hit ratio, and active connections. In addition, you can use Enhanced Monitoring to gather metrics from the operating system instance that your database runs on. Finally, you can use Amazon RDS Performance Insights, a database monitoring tool enables you to detect database performance problems and take corrective action, with a dashboard that visualizes database load.

Automatic Software Patching

Amazon Aurora is designed to keep your database up-to-date with the latest available patches. You can control if and when your instance is patched via DB Engine Version Management. Aurora uses zero-downtime patching when possible: if a suitable time window appears, the instance is updated in place, application sessions are preserved and the database engine restarts while the patch is in progress, leading to only a transient drop in throughput.

DB Event Notifications

Amazon Aurora can notify you via email or SMS of important database events such as an automated failover. You can use the AWS Management Console or the Amazon RDS APIs to subscribe to over 40 different DB events associated with your Amazon Aurora databases.

Fast Database Cloning

Amazon Aurora is designed to support cloning operations, where entire multi-terabyte database clusters can be cloned. Cloning is useful for a number of purposes including application development, testing, database updates, and running analytical queries. Immediate availability of data can accelerate your software development and upgrade projects, and make analytics more accurate.

Database Start/Stop

You can manually stop and start an Amazon Aurora database. This makes it easier and more affordable to use Aurora for development and test purposes, where the database is not required to be running all of the time. 

Migration Support

Amazon Aurora is designed to combine enterprise-grade security, performance, high availability and durability with the ease of use of MySQL. This makes Amazon Aurora a preferred migration target when moving workloads from expensive commercial databases to AWS. The capabilities of MySQL make it an optimal database for a wide range of database workloads, from simple transactional applications to complex OLTP and OLAP workloads with complicated SQL and stored procedures.

Standard MySQL import and export tools work with Amazon Aurora. You can also create a new Amazon Aurora database from an Amazon RDS for MySQL DB Snapshot. Migration operations based on DB Snapshots can complete in under an hour, but will vary based on the amount and format of data being migrated.

You can also set up binlog-based replication between an Aurora MySQL database and an external MySQL database running inside or outside of AWS.

Developer Productivity

Machine Learning

Aurora offers machine learning capabilities directly from the database, enabling you to add ML-based predictions to your applications via the familiar SQL programming language. With integration between Aurora and AWS machine learning services, you have access to a selection of ML algorithms without having to build custom integrations or move data around. 

RDS Proxy Support

Aurora can work in conjunction with Amazon RDS Proxy, a managed, highly available database proxy that is designed to make applications more scalable, more resilient to database failures, and more secure. RDS Proxy allows applications to pool and share connections established with the database, improving database efficiency and application scalability. It can reduce failover times by connecting to a new database instance while preserving application connections. It can also enhance security through integrations with AWS IAM and AWS Secrets Manager.

Additional Information

For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.