One thing is clear: AWS’s service offering is very branched and this can be somewhat confusing for users. The cloud specialist is an illustration of a paradox: that of choice. Users have access to a very broad portfolio of services, but are faced with multiple options; which creates complexity and makes decision making difficult.
This is typically the case in database services. AWS has 6 services in its catalog, including 2 relational databases, not to mention Hadoop EMR, Kinesis Stream, and Amazon S3. And to complicate things a little more, the group’s first database service, Amazon RDS (Relational Database Service) supports no less than 6 database engines. And each RDS option has key functions adapted to different use cases.
Amazon RDS is a managed service that can be configured and ready to use in minutes with the AWS Management Console, REST APIs, or command line . AWS provides default configurations that it considers appropriate for each database engine. Developers adjust these settings during configuration; Databases can share their parameters via DB Parameters Groups.
As with EC2 instances , one can control the capabilities of the base by adjusting the number of virtual CPUs (up to 32), the memory (up to 244 GB RAM) and the type of storage persist. By default, Amazon RDS instances rely on SSDs, but to increase transaction throughput, developers can use IOPS provisioning.
Here are the 6 options offered by RDS:
Amazon Aurora. This is a custom implementation of the MySQL Open Source database that AWS believes was designed for the cloud by integrating storage, network, compute, system, and database into a single service. Aurora is automatically sized in increments of 10GB – and up to 64TB – to suit usage without interrupting the application. The scalability of the performances is linear, according to the need of resources. To ensure high availability, Aurora automatically replicates in 3 Availability Zones with two copies of data in each. This redundancy allows Aurora to process the data as soon as 4 of the 6 writes are finalized – instead of waiting for the end of all writes. Aurora DB can create up to 15 replications with very little latency.
MySQL. This service offers a raw installation of the MySQL Community Edition, with InnoDB as the default storage engine. Users can configure MySQL versions 5.5, 5.6 and 5.7. AWS is committed to supporting the releases for at least 3 years after posting them on RDS. Unlike Aurora, standard MySQL instances do not have auto-scaling or multi-zone auto-replication capabilities. In addition, storage costs are calculated at what is attributed to it, while Aurora users pay only for resources consumed by the database. MySQL offers larger sizing capabilities and can be provisioned with t2.micro instances, while r3.large is the smallest instance supported by Aurora.
MariaDB. This database, fork of MySQL, is available in the form of instances with the same capabilities as the MySQL service, with automatic patching and snapshots of the database. Instances can rely on magnetic disks, SSDs, or Elastic Block Stock for larger IOPS. Developers can automatically replicate instances between Availability Zones with automatic failover from the primary database.
Oracle. Companies can provision this database, either on demand or on reserved instances. As with EC2 instances, reserved databases can offset costs with discounts of 20-60% on usage per hour, depending on the terms of the reservation. Instances ship Oracle licenses, but customers can also bring theirs – as long as they respect Oracle’s cloud restrictions – and have a 50% rebate on time.
Microsoft SQL Server. As with Oracle, this option is a standard instance of the Microsoft database. Amazon RDS supports SQL Server 2008 R2, SQL Server 2012, and 2014 in their Express, Web, and Standard editions, and Enterprise 2008 R2 and 2012 . Customers can reserve instances; Companies that have subscribed to Software Assurance can bring their own licenses to receive rebates.
PostgreSQL. This service offers the same management and patching features as other open source databases. PostgreSQL is renowned among developers for creating backends for geospatial, statistical analysis and Machine-Learning. This makes it possible to migrate the code of an application to RDS after few modifications.
All RDS offers have different license models, both for proprietary and open source databases. AWS maintains a fee schedule for all services offered.
Which RDS options to choose
Choosing the right RDS engine relies heavily on the needs of the application. For example, companies that already rely on Oracle or SQL Server for their legacy systems will likely prefer to use the same platforms on AWS. On the other hand, developers who create new applications that are native to the cloud will have to opt for an Open Source database – unless they have requirements that these databases do not meet.
Aurora can be a good choice, because this service offers an extended functional field, such as high availability, multi-zone redundancy and auto-scaling functions; which eliminates the costs of over-provisioning. Smaller databases are the exception: they do not need the same capabilities as an instance r3.large – the smallest option for Aurora. Developers who need to rely on older versions of MySQL can also consider this option.
The size of the instances determines their cost. Developers working on applications that do not require large instances will find this oversized. Applications running on Aurora are not “locked in” because the service relies on MySQL and can be migrated to other MySQL engines.
Open Source databases have bridged the functional gap that existed with traditional databases. According to Gartner, in 2018, 70% of all new applications will be powered by an open source database and half of commercial relational database users will switch to open source. By then, the market bases should consolidate, thinks the firm. The players that drive the market should make buyouts and converge their tools with alternative technologies, such as NoSQL , In-Memory and Big Data, in a single platform.
In this context, AWS and other cloud players lead the way with centralized and managed database services connected via APIs. The many features and the ability to manage performance allow developers to select the right technology for a given task.