Amazon Aurora Documentation

Amazon Aurora is a relational database service that combines the benefits of high-end commercial databases and open-source databases. Aurora is compatible with MySQL and PostgreSQL.

Amazon Aurora Features: MySQL-Compatible Edition

Performance and Scalability

High Throughput

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

Serverless Configuration

Amazon Aurora Serverless is a configuration for Aurora that is designed to automatically start-up, shut down, and scale capacity up or down based on your application's needs. Aurora Serverless helps you to run your database in the cloud without managing any database instances. You can also use Aurora Serverless v2 instances along with provisioned instances in your existing or new database clusters.

Push-Button Compute Scaling

You can use the Amazon Relational Database Service (Amazon RDS) APIs or the AWS Management Console to scale provisioned instances up or down. Compute scaling operations typically complete quickly.

Storage Auto-Scaling

Aurora is designed to automatically scale I/O to match the needs of your applications. It also increases 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 TiB. When using the Aurora I/O-Optimized configuration for your database clusters, Aurora is designed to provide cost savings.

Low-Latency Read Replicas

You can increase read throughput to support high-volume application requests by creating up to 15 database Amazon Aurora Replicas. Aurora Replicas share the same underlying storage as the source instance, which can help lower costs and help 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. It also supports auto-scaling, as it is designed to automatically add and remove replicas in response to changes in performance metrics that you specify.

Aurora supports cross-Region read replicas. Cross-Region replicas are designed to provide fast local reads to your users, and each region can have an additional 15 Aurora Replicas to further scale local reads.  

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 workload to these appropriately-configured instances, while keeping other instances isolated from it.

Parallel Query

Amazon Aurora Parallel Query is designed to provide faster analytical queries compared to 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. You can use Parallel Query to run transactional and analytical workloads alongside each other in the same Aurora database.

Amazon DevOps Guru for RDS

Amazon DevOps Guru is a cloud operations service powered by machine learning (ML) designed to help improve application availability. With Amazon DevOps Guru for RDS, you can use ML-powered insights to help detect and diagnose performance-related relational database issues and is designed to resolve them in minutes rather than days. Developers and DevOps engineers can use DevOps Guru for RDS to automatically identify the root cause of performance issues and get intelligent recommendations to help address the issue.

Availability and Durability

Instance Monitoring and Repair

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

Multi-AZ deployments with Aurora Replicas

On instance failure, Aurora uses Amazon RDS Multi-AZ technology, which is designed to automate failover to one of up to 15 Aurora Replicas you have created in any three Availability Zones. If no Aurora Replicas have been provisioned, in the case of a failure, Amazon RDS is designed to attempt to create a new Aurora DB instance for you automatically. You can also help minimize failover time by replacing community MySQL and PostgreSQL drivers with open source and drop-in compatible AWS JDBC Driver for MySQL and AWS JDBC Driver for PostgreSQL. You may also use RDS Proxy to reduce failover times and improve availability. If failovers occur, Amazon RDS Proxy is designed to route requests directly to the new database instance.

Global Database

For globally distributed applications you can use Aurora Global Database, where a single Aurora database can span multiple AWS Regions to enable fast local reads and disaster recovery. An Aurora Global Database uses storage-based replication to replicate a database across multiple Regions, typically with low latency. 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 quickly. 

Fault-Tolerant and Self-Healing Storage

Aurora's database volume is segmented in 10 GiB chunks and replicated across three Availability Zones, with each Availability Zone persisting 2 copies of each write. Aurora storage 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 storage is also designed so that data blocks and disks are continuously scanned for errors and replaced automatically.

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

The backup capability of Aurora 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 5 minutes. Your automatic backup retention period can be configured up to 35 days. Automated backups are stored in Amazon Simple Storage Service (Amazon S3), which is designed for 99.999999999% durability. 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 will be kept until you explicitly delete them. They are designed to leverage the automated incremental snapshots to reduce the time and storage required. You can create a new instance from a DB snapshot at any time.

Backtrack

Backtrack is designed to let 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. 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.

Security

Network Isolation

Aurora runs in Amazon Virtual Private Cloud (VPC), which helps you isolate your database in your own virtual network, and connect to your on-premises IT infrastructure using industry-standard encrypted IPsec VPNs. In addition, when 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 (for example., DB instances, DB snapshots, DB parameter Groups, DB event subscriptions, DB options groups). Also, 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

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

Advanced Auditing

Aurora is designed to help you 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.

Threat Detection

Aurora is integrated with Amazon GuardDuty to help you identify potential threats to data stored in Aurora databases. GuardDuty RDS Protection is designed to profile and monitor login activity to existing and new databases in your account and uses tailored ML models to detect suspicious logins to Aurora databases. If a potential threat is detected, GuardDuty is designed to generate a security finding that includes database details and contextual information on the suspicious activity. Aurora integration with GuardDuty is designed to give direct access to database event logs without requiring you to modify your databases and without having an impact on database performance.

Cost-effectiveness

Price predictability at scale

Aurora offers two configuration options based on your price-performance and price-predictability needs, regardless of the I/O consumption of your application. The two configuration options are Aurora I/O-Optimized and Aurora Standard. Both are designed to scale I/O to support your most demanding applications.

Aurora I/O-Optimized is a database cluster configuration designed to deliver improved price performance for customers with I/O-intensive workloads. With Aurora I/O optimized you pay for database instances and storage.

Aurora Standard is a database cluster configuration that offers pricing for applications with low to moderate I/O usage. With Aurora Standard you pay for database instances, storage, and pay-per-request I/O.

Optimized I/O costs

Aurora is designed to eliminate unnecessary I/O operations to reduce costs and ensure resources are available for serving read/write traffic. Write I/O operations are only consumed when pushing transaction log records to the storage layer for the purpose of making write durable. Write I/O operations are counted in 4 KB units. Certain concurrent write operations can be batched together by the Aurora does not push modified database pages to the storage layer, resulting in further I/O consumption savings.

You are charged for read and write I/O operations when you configure your database clusters to the Aurora Standard configuration. You are not charged for read and write I/O operations when you configure you database clusters to Aurora I/O-Optimized.

Managed

Use

You can launch a new Aurora DB instance using the Amazon RDS Management Console or a single API call or CLI. Aurora DB instances are pre-configured with parameters and settings designed to be 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 are designed to provide granular control and fine-tuning of your database.

Monitoring and Metrics

Aurora provides Amazon CloudWatch metrics for your DB instances at no additional charge. 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. You can use Amazon RDS Performance Insights, a database monitoring tool that enables you to detect database performance problems and take corrective action, with a dashboard that visualizes database load. Finally, you also can use Amazon DevOps Guru for RDS to detect performance issues, identify the root cause of performance issues, and get recommendations to help address the issue.

Amazon RDS Blue/Green Deployments

Amazon RDS Blue/Green Deployments is designed to allow you to make safer, simpler, and faster database updates with zero data loss on Aurora MySQL-Compatible Edition. Blue/Green Deployments can create a staging environment that mirrors the production environment and is designed to keep the two environments in sync using logical replication. Blue/Green Deployments is designed so you can make changes--such as major/minor version upgrades, schema modifications, and parameter setting changes--without impacting your production workload.

When promoting your staging environment, Blue/Green Deployments blocks writes to both the blue and green environments until switchover is complete. Blue/Green Deployments uses built-in switchover guardrails that are designed to time out promotion if it exceeds your maximum tolerable downtime, detect replication errors, check instance health, and more.

Automatic Software Patching

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 through DB Engine Version Management. Aurora uses zero-downtime patching when possible. Zero-downtime patching is designed so that 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

Aurora can notify you by 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 Aurora databases.

Fast Database Cloning

Aurora is designed to support cloning operations, where entire multi-terabyte database clusters can be cloned quickly. 

Database Start/Stop

You can manually stop and start an Aurora database. Aurora is designed so that stopping your database doesn't delete your data.

Migration Support

MySQL Database Migrations

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

Alternatively, AWS Database Migration Service (AWS DMS) offers built-in native tooling from within the DMS Console for migration. With no replication instances to provision or scale, you can initiate a database migration with a few simple clicks.

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

PostgreSQL Database Migrations

Standard PostgreSQL import and export tools work with Aurora, including pg_dump and pg_restore. Aurora also supports snapshot import from Amazon RDS for PostgreSQL, and replication with AWS Database Migration Service (AWS DMS).

Commercial Database Migrations

Aurora provides an environment for moving database workloads off of commercial databases. Aurora is designed to provide functional capabilities close to those of commercial database engines, and to deliver enterprise-grade performance, durability, and high availability. AWS Database Migration Service (AWS DMS) can help accelerate database migrations to Aurora, with managed features like DMS Schema Conversion and DMS Serverless. DMS Schema Conversion is designed to automatically assess and convert schemas and source objects to be compatible with the target Aurora cluster. Meanwhile, DMS Serverless is designed to automate provisioning, monitoring, and scaling of migration resources.

Babelfish for Aurora PostgreSQL

Babelfish for Aurora PostgreSQL is a capability for Aurora PostgreSQL-Compatible Edition that is designed to enable Aurora to understand commands from applications written for Microsoft SQL Server. With Babelfish, Aurora PostgreSQL is designed to understand T-SQL, Microsoft SQL Server's proprietary SQL dialect, and to support the same communications protocol. Babelfish is a built-in capability of Aurora.

Developer Productivity

Trusted Language Extensions for PostgreSQL

Trusted Language Extensions (TLE) for PostgreSQL is a development kit and open-source project designed to allow you to build extensions and run them on  Aurora without needing AWS to certify code. Developers can use popular trusted languages--like JavaScript, PL/pgSQL, Perl, and SQL--to write extensions. TLE is designed to prevent access to unsafe resources and limits extension defects to a single database connection. Aurora is designed so that DBAs have fine-grained, online control over who can install extensions and can create a permissions model for running them.

Machine Learning

Aurora offers machine learning capabilities directly from the database, enabling you to add ML-based predictions to your applications through 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 works in conjunction with Amazon RDS Proxy, a managed 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. It can automatically connect to a new database instance while preserving application connections. It is integrated with AWS IAM and AWS Secrets Manager.

Generative AI

Aurora offers capabilities designed to enable machine learning (ML) and generative artificial intelligence (AI) models to work with data stored in Aurora in real-time and without moving the data. With Amazon Aurora PostgreSQL-Compatible Edition, you can access vector database capabilities to store, search, index, and query ML embeddings.

A vector embedding is a numerical representation that represents the semantic meaning of content such as text, images, and video. Generative AI and other AI/ML systems use embeddings to capture the semantic meaning of this content input into a large language model (LLM). You can store embeddings from ML and AI models, such as those from Amazon Bedrock (limited preview), and Amazon SageMaker in your Aurora PostgreSQL database.

Amazon Aurora is available as a Knowledge Base for Amazon Bedrock to connect your organization’s private data sources to foundation models (FM) and enable automated retrieval augmented generation (RAG) workflows on them.

Aurora machine learning also is designed to expose ML models as SQL functions, allowing you to use standard SQL to call ML models, pass data to them, and return predictions, text summaries, sentiment orembeddings to your database real-time via periodic calls to a SageMaker or Bedrock model which returns the latest, up-to-date embeddings.

Data API

Data API is an HTTPS API for executing SQL queries against Aurora databases. Data API eliminates the network and application configuration tasks needed to securely connect to an Aurora database, which makes accessing Aurora as simple as making an API call. Data API eliminates the use of database drivers and client-side connection pooling software. It also automatically pools and shares database connections.  Data API integrates with AWS IAM and AWS Secrets Manager.

Developers can call Data API via applications built with an AWS SDK. Data API also provides access to Aurora databases for AWS AppSync GraphQL APIs.

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.