Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

AWS gives database users multiple RDS options

Amazon RDS gives developers several choices for database engines. While each enterprise has its own needs, they must consider licensing, pricing and open source capabilities.

With scores of different services, AWS can be daunting for new users. The cloud provider exemplifies the paradox...

of choice -- having more options creates complexity and can make it more difficult to make a decision.

Nowhere is this more apparent than in the choice of databases. AWS has six database products, including two different relational database services, not to mention its Hadoop EMR, Kinesis Streams and Amazon Simple Storage Service. As if that isn't enough, Amazon Relational Database Service (RDS), the provider's primary relational database product, supports six database engines, and all of these RDS options have key features for different usage scenarios.

Amazon RDS is a managed system that can be set up and run within minutes using the AWS Management Console, Command Line Interface or REST APIs. AWS provides default configurations using settings and parameters it deems best for each database engine. Developers can tune these settings during setup; databases with common configurations can share settings using DB parameter groups.

Similar to Elastic Compute Cloud (EC2) compute instances, developers can control the database capacity using the number of virtual CPUs -- up to 32 -- memory -- up to 244 GB of RAM -- and type of persistent storage. By default, Amazon RDS instances use general-purpose solid-state drives (SSDs), but workloads that require high-transaction throughput can use provisioned IOPS storage to deliver up to 30,000 IOPS per instance.

AWS users can choose from six RDS options:

  • Amazon Aurora: A custom implementation of a MySQL RDBMS that AWS claims is designed for the cloud by including the storage, network, compute, system and database software in a single service. Aurora automatically scales in 10-GB increments -- up to 64 TB -- as use grows without taking applications offline. Database performance scalability is linear according to capacity and can burst to higher IOPS as needed. To ensure high availability, Aurora automatically replicates across three availability zones (AZs) with two copies of data in each. This redundancy enables Aurora to process data as soon as at least four of six writes are complete, instead of waiting for all writes to finish. Aurora DBs can create up to 15 replicas with fast, 10- to 20-millisecond failover between them.
  • MySQL: This service provides a stock installation of the MySQL Community Edition, using InnoDB as the default storage engine. Users can configure MySQL versions from 5.5, 5.6 and 5.7 -- and minor versions for each -- during setup; Amazon has committed to support versions for at least three years after initial release on RDS. Unlike Aurora, standard MySQL instances do not auto scale capacity nor do they automatically replicate to multiple AZs. Furthermore, the IT team pays for allocated storage, whereas Aurora users only pay for resources the database uses. MySQL has a wider scaling range and can be provisioned with tiny t2.micro instances, whereas r3.large is the smallest available for Aurora.
  • MariaDB: This popular branch of MySQL database provides instances with capabilities similar to the RDS MySQL service, including automatic patching and database snapshots. Instances can use either magnetic, general-purpose SSD or provisioned -- high IOPS -- SSD Elastic Block Store storage that supports from 1,000 to 30,000 IOPS per instance. Developers can automatically replicate instances across AZs with automatic failover from the primary database.
  • Oracle: Enterprises can provision this database as either on-demand or reserved DB instances. As with EC2 instances, reserved databases offset an upfront charge with a 20% to 60% discount on hourly use, depending on the terms of the reservation. Instances come with an Oracle license, but customers also can bring their own, subject to Oracle restrictions on cloud usage, for nearly a 50% hourly discount.
  • Microsoft SQL Server: Similar to Oracle, this option is a standard instance of the Windows database. Amazon RDS supports SQL Server 2008 R2, 2012 and 2014 for Express, Web and Standard editions and Enterprise 2008 R2 and 2012 for Enterprise. Customers can reserve instances; enterprises with Microsoft Software Assurance can bring their own licenses for substantial discounts to the baseline on-demand usage rate.
  • PostgreSQL: This service provides the same core management and patching features described for the other open source databases -- at roughly the same price. Because of the availability of its add-on modules, PostgreSQL is popular for developers building geospatial, statistical and machine-learning back ends, allowing them to move existing application code to RDS with little modification.

Price comparison

All of the RDS options have different licensing terms for proprietary and open source databases. The following table summarizes a representative sample of on-demand, memory-optimized instance prices for US regions.

Database

db.r3.large

db.r3.4xlarge

Aurora

$0.29/hr

$2.32/hr

MySQL

$0.24

$1.89

MariaDB

$0.24

$1.89

Oracle (license included)

$0.455

$3.64

Oracle (BYO license)

$0.24

$1.89

SQL Server (license included)

$1.02

$6.04

SQL Server (BYO license)

$0.365

$2.435

PostgreSQL

$0.25

$1.99

 

There is a distinct budgetary advantage to building new applications on an open source database; SQL Server is three to four times as expensive -- unless the developer supplies a license. Even then, it's more expensive, as the underlying OS requires a Windows server license. Totaling it up, a MySQL database running at an average 50% utilization throughout the month on an r3.large instance with 10 GB of standard SSD storage costs $178.34 in a U.S. region.

Matching AWS products to match an enterprise's management needs

Spin up an instance, process data in real time and manage the security of the cloud with these Amazon services. But which service performs which function? Take this quiz and test your knowledge.

Choose between your RDS options

The choice of which RDS engine to use hinges on application requirements. Enterprises porting legacy systems running on Oracle or SQL Server will want to use the same platform on AWS. In contrast, developers building new, cloud-first applications should opt for an open source database, unless they have specific needs that open source options can't meet.

Aurora may be the strongest choice, as it has more features, high availability, multi-AZ redundancy and Auto Scaling features, which eliminates costly over-provisioning. Very small databases are the exception, as they may not need the capacity of an r3.large instance -- Aurora's smallest option. Developers with specific needs for older versions of MySQL may also look in that direction.

Instance size determines cost, so applications that don't need a large instance will find Aurora to be overkill. Applicatios that run on Aurora avoid lock-in, as the service is MySQL at its core and can be moved to other MySQL engines. Google Cloud Platform also offers similar auto scaling and database sizes to Aurora, if a customer eventually opts for a wholesale cloud provider change.

Open source databases have closed the feature gap with the traditional enterprise databases. Gartner predicts that by 2018, 70% of all new applications will run on an open source database and that half of all existing commercial relational database users will convert to open source. Within the same timeframe, the database market is expected to consolidate, as leading RDBMS vendors acquire and converge alternative technologies -- like NoSQL, in-memory, caching and distributed big data technologies -- into a single platform.

On this front, AWS and other cloud vendors are in the lead, offering multiple centrally deployable and manageable database services, connected via APIs and used together in an application. The broad selection of features and performance characteristics allows developers and systems analysts to choose the right platform for a particular task. In the realm of relational databases, Amazon RDS provides further customization with a mix of legacy enterprise and open source engines.

Next Steps

Sprout Social makes the jump to RDS

AWS databases may not meet developer needs

An Azure and AWS cloud database comparison

This was last published in September 2016

Dig Deeper on AWS database management

Join the conversation

1 comment

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

What IT needs affect your database choice?
Cancel

-ADS BY GOOGLE

SearchCloudApplications

TheServerSide.com

SearchSoftwareQuality

SearchCloudComputing

Close