Amazon Aurora is a relational database service that combines the speed and availability of high-end commercial databases with the simplicity and cost-effectiveness of open source databases. The PostgreSQL-compatible edition of Aurora delivers up to 3X the throughput of standard PostgreSQL running on the same hardware, enabling existing PostgreSQL applications and tools to run without requiring modification. The combination of PostgreSQL compatibility with Aurora enterprise database capabilities provides an ideal target for commercial database migrations.
High Performance and Scalability
Amazon Aurora uses a variety of software and hardware techniques to ensure 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 with a few clicks in the Amazon Web Services Management Console, you can scale the compute and memory resources powering your deployment up or down. Compute scaling operations typically complete in a few minutes.
Aurora automatically scales I/O to match the needs of your most demanding applications. It also increases the size of your database volume as your storage needs grow. Your volume expands in increments of 10 GB up to a maximum of 128 TiB. You don't need to provision excess storage for your database to handle future growth. When using the Amazon Aurora I/O-Optimized configuration for your database clusters, Aurora also provides up to 40% cost savings when I/O spend exceeds 25% of your Aurora database spend. To learn more, visit Amazon Aurora storage and reliability.
Low-Latency Read Replicas
Increase read throughput to support high-volume application requests by creating up to 15 database read replicas. Amazon Aurora Replicas share the same underlying storage as the source instance, lowering costs and avoiding the need to perform writes at the replica nodes. This frees up more processing power to serve read requests and reduces the replica lag time – often down to single digit milliseconds. Aurora also 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, where it 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.
Aurora Serverless is an on-demand, auto-scaling configuration for Aurora where the database will automatically start-up, shut down, and scale up or down capacity based on your application's needs. Aurora Serverless enables you to run your database in the cloud without managing any database instances.
Custom Database Endpoints
Custom endpoints allow 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.
High Availability and Durability
Instance Monitoring and Repair
Amazon RDS continuously monitors 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 does not require crash recovery replay of database redo logs, greatly reducing restart times. Amazon Aurora also isolates the database buffer cache from the database process, allowing the cache to survive a database restart.
Multi-AZ Deployments with Aurora Replicas
On instance failure, Amazon Aurora uses RDS Multi-AZ technology 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 will attempt to create a new Amazon Aurora DB instance for you automatically. Minimize failover time with the Amazon Web Services JDBC Driver for PostgreSQL, an open source driver that can be used as a drop-in compatible replacement for the community PostgreSQL JDBC driver.
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 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 enables 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 automatic backup retention period can be configured up to thirty-five days. Automated backups are stored in Amazon S3, which is designed for 99.999999999% durability. Amazon Aurora backups are automatic, incremental, and continuous and have no impact on database performance.
DB Snapshots are user-initiated backups of your instance stored in Amazon S3 that will be 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.
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 industry-standard encrypted IPsec VPNs. To learn more about Amazon RDS in VPC, refer to the Amazon RDS User Guide. In addition, using Amazon RDS, you can configure firewall settings and control network access to your DB Instances.
Aurora is integrated with Amazon Identity and Access Management (IAM) and provides you the ability to control the actions that your Amazon 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). For more information about IAM integration, see the IAM Database Authentication documentation.
Amazon Aurora allows you to encrypt your databases using keys you create and control through Amazon 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.
Easy to Use
Getting started with Amazon Aurora is easy. 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 at no additional charge. You can use the Amazon Web Services 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 that makes it easy to detect database performance problems and take corrective action, with an easy-to-understand dashboard that visualizes database load.
Automatic Software Patching
Amazon Aurora will keep your database up-to-date with the latest patches. You can control if and when your instance is patched via DB Engine Version Management.
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 Amazon Web Services 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 supports quick, efficient cloning operations, where entire multi-terabyte database clusters can be cloned in minutes. Cloning is useful for a number of purposes including application development, testing, database updates, and running analytical queries. Immediate availability of data can significantly accelerate your software development and upgrade projects, and make analytics more accurate.
You can clone an Amazon Aurora database with just a few clicks, and you don't incur any storage charges, except if you use additional space to store data changes.
You can manually stop and start an Amazon Aurora database with just a few clicks. This makes it easy and affordable to use Aurora for development and test purposes, where the database is not required to be running all of the time. Stopping your database doesn't delete your data. See the Start/Stop documentation for more details.
PostgreSQL Database Migrations
Standard PostgreSQL import and export tools work with Amazon Aurora, including pg_dump and pg_restore. Amazon Aurora also supports snapshot import from RDS for PostgreSQL, and replication with Amazon Database Migration Service (DMS).
Commercial Database Migrations
Amazon Aurora with PostgreSQL compatibility provides an ideal environment for moving database workloads off of commercial databases. PostgreSQL has functional capabilities which are a close match to those of commercial database engines, and Aurora delivers the enterprise-grade performance, durability, and high availability required by most enterprise database workloads. Amazon Database Migration Service (DMS) can help accelerate database migrations to Amazon Aurora, and you can use it at no charge for six months when the target database is Aurora.
Pay Only for What You Use
There is no up-front commitment with Amazon Aurora; you simply pay an hourly charge for each instance that you launch. And, when you’re finished with an Amazon Aurora DB Instance, you can easily delete it. You do not need to over-provision storage as a safety margin, and you only pay for the storage you actually consume. To see more details, visit the Amazon Aurora Pricing page.
Price predictability at any scale
Aurora offers the flexibility to optimize your database spend by choosing between 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. Neither option requires upfront I/O or storage provisioning and both can scale I/O to support your most demanding applications.
Aurora I/O-Optimized is a database cluster configuration. It delivers improved price performance for customers with I/O-intensive workloads such as payment processing systems, ecommerce systems, and financial applications. If your I/O spend exceeds 25% of your total Aurora database spend, you can save up to 40% on costs for I/O-intensive workloads with Aurora I/O-Optimized. With Aurora I/O-Optimized you pay for database instances and storage. There are no charges for read and write I/O operations, providing price predictability for all applications regardless of I/O variability.
Aurora Standard is a database cluster configuration that offers cost-effective pricing for the vast majority of applications with low to moderate I/O usage. With Aurora Standard you pay for database instances, storage, and pay-per-request I/O.
Optimize I/O Costs
For a heavily analytical application, I/O costs are typically the largest contributor to the database cost. I/O operations are performed by the Aurora database engine against its SSD-based virtualized storage layer. Every database page read operation counts as one I/O. The Aurora database engine issues reads against the storage layer to fetch database pages not present in the buffer cache. Each database page is 8 KB in Aurora with PostgreSQL compatibility and 16 KB in Aurora with MySQL compatibility.
Aurora was 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 writes durable. Write I/O operations are counted in 4 KB units. For example, a transaction log record that is 1,024 bytes counts as one I/O operation. However, concurrent write operations whose transaction log is less than 4 KB can be batched together by the Aurora database engine to optimize I/O consumption. Unlike traditional database engines Aurora never pushes modified database pages to the storage layer, resulting in further I/O consumption savings.
You can see how many I/O operations your Aurora instance is consuming by going to the Amazon Web Services Management Console. To find your I/O consumption, go to the RDS section of the console, look at your list of instances, select your Aurora instances, then look for the “Billed read operations” and “Billed write operations” metrics in the monitoring section.
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 your database clusters to Aurora I/O-Optimized. For more information on the pricing of I/O operations, visit Amazon Aurora Pricing page.
Trusted Language Extensions for PostgreSQL
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 a simple, optimized, and secure integration between Aurora and Amazon Web Services machine learning services, you have access to a wide selection of ML algorithms without having to build custom integrations or move data around.