Aurora – It’s Showtime for Amazon’s New RDS Engine

AWS Aurora database engine is fully released, it’s time to see how it runs in the real world.

For some time, AWS has offered managed relational databases (RDS) for MySQL, SQLServer, Oracle, and Postgres deployments. Now, after some months in preview, Amazon has officially launched the full version of their own AWS Aurora database.

In general, Amazon’s RDS handles administration, backups, and snapshots, leaving you to worry about your data. You can easily scale your compute and storage resources to fit your evolving needs. As with all AWS managed services, RDS is highly available and you can use their MultiAZ feature to synchronously replicate data to a standby instance in a different availability zone.

You can access these databases through the AWS Management Console, the command line tool, and API calls.

AWS Aurora was built to deliver significantly improved parallel processing and concurrent I/O operations. In traditional database engine architectures (like Mysql, MSSQL, and Oracle), all layers of data functionality – like SQL, transactions, caching, and logging – reside in the single box.

But when you provision Amazon Aurora, logging and caching are moved into a “multi-tenant, scale-out database-optimized storage service” that’s deeply integrated with other AWS compute and storage services. Besides allowing you to dramatically scale without nearly the overhead, you can restart the database engine without losing the cache.

AWS Aurora legacy database architecture
Legacy database architecture
AWS Aurora multi-tenant architecture
AWS Aurora multi-tenant architecture

Why you might want to use AWS Aurora

  • Amazon Aurora is compatible with MySQL 5.6. That means the applications, tools, and drivers you’re already using with MySQL can be used.
  • You can launch a new Aurora database from an RDS MySQL DB snapshot.
  • 5x increase in performance when compared to MySQL.
  • You can scale your database up to 32 virtual CPU’s (vCPU) and 244 GB memory. You can optionally add up to fifteen read replicas to increase read capacity.
  • Aurora is designed to detect database crashes and restart without the need for manual crash recovery.
  • Highly available: the DB is replicated six ways across three Availability Zones.
  • Automatic storage scaling up to 64 TB.
  • AWS Aurora uses SSL (AES-256) encryption to secure data in transit.
  • The Aurora database engine is able to provide 100,000 writes and 500,000 reads per second.

Comparison: Mysql vs AWS Aurora

Here’s Amazon’s own feature-by-feature comparison of RDS MySQL and Aurora:
Feature-by-feature comparison of RDS MySQL and Aurora

Amazon Aurora Pricing

  • Database instances: AWS RDS instances are available  in 5 sizes starting from 2vCPU to 32vCPU, using between 15.25 to 244 GB of memory:
AWS Aurora database instances
  • Storage: $0.100 per GB-month.
  • I/O Rate: $0.200 per 1 million requests.

Conclusion

As of now, Amazon Aurora is only available for instances starting with dbr3.large (2vCPU/15GB). This means that the option is effectively not available for smaller instances. Aurora only supports InnoDB, and when you migrate from MySQL, MYISAM tables are automatically converted to InnoDB.

Keeping in all this in mind, while Aurora is now publicly available, you’re certainly free to start playing around with it as part of a test or POC environment. As you gain experience, you’ll see some of the platform’s advantages and limitations for yourself. You might also want to browse through the testimonials of other AWS customers who are already deeply involved in their own explorations.

Learn more about Aurora, and how to deploy, load, query, monitor, and failover a multiple Availability Zone (AZ) Aurora database in Cloud Academy’s Getting started with Amazon Aurora database engine hands-on lab.

Cloud Academy