Amazon Aurora is a relational database engine that combines the speed and reliability of high-end commercial databases with the simplicity and cost-effectiveness of open source databases. It delivers up to five times the throughput of standard MySQL running on the same hardware. Amazon Aurora is designed to be compatible with MySQL 5.6, so that existing MySQL applications and tools can run without requiring modification. Amazon Aurora joins MySQL, Oracle, Microsoft SQL Server, and PostgreSQL as the fifth database engine available to customers through Amazon RDS. Amazon RDS handles time-consuming tasks such as provisioning, patching, backup, recovery, failure detection, and repair. You pay a simple monthly charge for each Amazon Aurora database instance you use. There are no upfront costs or long-term commitments.
Amazon Aurora increases MySQL performance and availability by tightly integrating the database engine with an SSD-backed virtualized storage layer purpose-built for database workloads. Amazon Aurora's storage is fault-tolerant and self-healing. Disk failures are repaired in the background without loss of database availability. Amazon Aurora is designed to automatically detect database crashes and restart without the need for crash recovery or to rebuild the database cache. If the entire instance fails, Amazon Aurora will automatically failover to one of up to 15 read replicas.
Amazon RDS makes it easy to manage your Amazon Aurora database by automating most of the common administrative tasks associated with running a database. With a few clicks in the AWS Management Console, you can quickly launch an Amazon Aurora database instance. Amazon Aurora scales storage automatically, growing storage and rebalancing I/Os to provide consistent performance without the need for over-provisioning. For example, you can start with a database of 10GB and have it automatically grow up to 64TB without requiring availability disruptions to resize or restripe data.
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. Testing on standard benchmarks such as SysBench have shown up to a 5x increase in throughput performance over stock MySQL 5.6 on similar hardware.
Using the Amazon RDS APIs or with a few clicks in the AWS Management Console, you can scale the compute and memory resources powering your deployment up or down, up to a maximum of 32 vCPUs and 244 GiB of RAM. Compute scaling operations typically complete in a few minutes.
Amazon Aurora will 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 64 TB. You don't need to provision excess storage for your database to handle future growth.
You can create Amazon Aurora Replicas and serve high-volume application read traffic from multiple instances, thereby increasing aggregate read throughput. 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. You can create up to 15 Amazon Aurora Replicas per Amazon Aurora database.
Amazon RDS continuously monitors the health of your Amazon Aurora database and underlying EC2 instance. On 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. Please see our FAQ for more information.
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.
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.
Amazon Aurora is integrated with AWS Identity and Access Management (IAM) and provides you the ability to control the actions that your AWS IAM users and groups can take on specific Amazon Aurora resources (e.g., DB Instances, DB Snapshots, DB Parameter Groups, DB Event Subscriptions, DB Options Groups). In addition, you can tag your Amazon 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 example, you can configure your IAM rules to ensure developers are able to modify "Development" DB Instances, but only Database Administrators can modify and delete "Production" DB Instances. For more information about Resource-level Permissions, refer to Using AWS IAM with Amazon RDS Resources and Tagging Amazon RDS Resources.
Amazon Aurora allows 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.
Getting started with Amazon Aurora is easy. Just launch a new Amazon Aurora DB Instance using the AWS Management Console or a single API call. 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.
Standard MySQL import and export tools work with Amazon Aurora. You can also easily create a new Amazon 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.
Amazon 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.
Amazon Aurora will keep your database up-to-date with the latest patches. You can exert optional control over if and when your instance is patched via DB Engine Version Management.
Amazon Aurora can notify you via email or SMS of important database events like 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.
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.