Comparing Relational Database services (RDS) in the Public Cloud
Relational databases—and databases in general—have been around since the 1970’s. After they were invented by IBM, they became critical components of almost all business environments, whether they’re running in traditional data centers or in the cloud. Managing a relational database is tedious and time-consuming because of the regular maintenance required to keep it functional. This maintenance includes tasks such as performing patches and upgrades (which usually result in downtime and stress), conducting regular backups (which also need to be stored away safely), and keeping an eye on the server that’s running the database.
Fortunately, public cloud providers offer managed relational database services. These services have been embraced both by system administrators who are happy to offload the majority of their maintenance work and by managers who no longer have to rely on specialized personnel to oversee relational databases. This article will provide an overview of the relational database services currently offered by the three most popular public cloud service providers: AWS, Google Cloud, and Microsoft Azure.
Amazon Relational Databases
Amazon Web Services (AWS) pioneered cloud computing, and the company is still the leading public cloud provider today. Their relational database service, called Relational Database Service or RDS, was the first one to be released. Along with EC2 and S3, it is one of the most popular services and has quite a few must-know-features that support metrics transparency, enable secure access and provide multi-availability zone deployment for high availability.
AWS RDS offers multiple database engines, including MySQL, PostgreSQL, MarinaDB, Oracle, and Microsoft SQL server. It can also run on various instance types, meaning it can support almost any workload that you throw at it—from small dev databases to enterprise-scale production ones. RDS is also very easy to set up. With just a few clicks, you can have your database instance up and running, just as you can with any other instance on AWS.
On top of being easy to launch, RDS is highly scalable, durable, and available, while also being very simple to administer. It supports encryption and provides automated backups via snapshots. (RDS also supports manual snapshots, which enable you to recover an entire database from a single snapshot. There are three key reasons for why using RDS manual snapshots is essential). Overall, RDS is a workhorse service that will fulfill all of your database needs while removing most of the overhead involved with running one.
Another offering from Amazon is Aurora, a MySQL- and PostgreSQL-compatible relational database that is both simple and cost-effective. It’s about five times faster than a standard MySQL database and three times faster than a standard PostgreSQL database.
Like RDS, AWS Aurora provides high availability and performance. However, it’s also distributed and self-healing, and its fault-tolerant storage can autoscale up to 64TB per database instance. Aurora offers point-in-time recovery, and it replicates itself across three Availability Zones. It also provides up to 15 low-latency read replicas. These features can be used to build enterprise applications that operate at a large scale and need to be able to keep growing. Because Aurora is coupled with RDS, you will need to create a new RDS instance to use it. Under the database engine, you will see the option for Aurora.
Another addition to AWS’ offerings is Aurora Serverless. Aurora Serverless is basically an auto-scaling configuration for the Aurora database, used to automatically start, stop, and scale it (both up and down) based on actual need. Aurora Serverless allows you to run an Aurora database without provisioning any instances at all. It is used for unpredictable, infrequent, or intermittent workloads that would otherwise produce a lot of unnecessary costs. No matter how well you plan for proper capacity—a process that tends to take a lot of time—you can never achieve optimal use. Aurora Severless removes this planning process from your plate and automatically adjusts to your capacity needs.
With Aurora Serverless, you choose the minimum and maximum read and write capacity of your database, and you get the database endpoint without actually specifying instance type or size. This endpoint connects to a pool of warm resources that handles the required workload for you. These resources are scaled based on the workload, keeping the preset minimum and maximum in mind. You will only be charged for what you actually use.
Google Cloud Relational Databases
Google Cloud’s relational database offering is called Cloud SQL. It is a fully managed service designed to work with SQL Server, MySQL, and PostgreSQL. Cloud SQL is very similar to RDS, although it offers fewer database engines. It is highly available, scalable, durable, and very secure. Cloud SQL comes with automated backups for point-in-time recovery, and it integrates natively with other Google Cloud services.
Another service provided by Google Cloud is Cloud Spanner, a database that brings together relational and non-relational databases. It was designed to replace traditional SQL databases while also serving as an OLTP (Online Transactional Processing) solution. As a relational database product, Cloud Spanner offers a globally-distributed, enterprise-grade, scalable database that provides strong consistency across rows, regions, and continents. It also provides high-performance transactions and offers very high availability (99.999% availability SLA) with no planned downtime. Cloud Spanner solves one of the great problems of databases, which is scaling. When loads increase, you can either scale horizontally or vertically. Vertical scaling requires upgrading your server. That results in downtime, and there is always a limit when scaling this way. Horizontal scaling is always preferred in the cloud, but, unfortunately, databases don’t scale well horizontally. Sometimes they don’t scale at all—for example, MySQL adds read replicas for various read operations, but it can’t add write replicas. Cloud Spanner, however, scales horizontally without intervention.
Microsoft Azure Relational Databases
Microsoft’s Azure is, at the moment, the second most commonly used public cloud provider. Their relational databases are Azure Database for MySQL and its equivalents for other database engines, such as PostgreSQL and MariaDB.
Azure’s database services are similar to AWS’ RDS and Google Cloud’s Cloud SQL in that they are products for which maintenance is handled by the public cloud provider. As you might expect, these services are highly available, with an SLA of 99.99% uptime. Features include read replicas, encryption at rest and in transit, and multiple deployment options like scaling compute, memory, and independent storage that allow you to tailor the database to your specific business needs.
Microsoft Azure Database services also come with some AI-powered database monitoring and optimization, tight integration with other Azure services, and integration with other popular application frameworks like Alfresco, Magento, Moodle, Drupal, WordPress, and Shopify.
Public Cloud Relational Database Services: A Comparison Chart
|AWS – RDS||AWS – Aurora||Google Cloud – Cloud SQL||Google Cloud – Cloud Spanner||Microsoft Azure – Azure Database Services|
|Database engines||MySQL, PostgreSQL, SQL Server, MariaDB, Oracle Database||MySQL, PostgreSQL||MySQL, PostgreSQL, SQL Server||SQL||MySQL, PostgreSQL, SQL Server, MariaDB|
|Maximum storage size||16TB||64TB||10TB||2TB per node||Up to 30TB|
|SLA High Availability||99.95%||99.99%||99.95%||99.99% (99.999% for Multi-Regional Instances)||99.99%|
|Encryption at rest||Yes||Yes||Yes||Yes||Yes|
|Read replicas||Yes||Yes (up to 15)||Yes||Yes||Yes|
Which Public Cloud for your Relational Database services (RDS)?
The number of relational database offerings in the public cloud is constantly growing, and new and innovative services like Aurora and Cloud Spanner are regularly being introduced. In the future, we should see regular improvements and upgrades to these services along with the price drops that typically result from cloud providers’ competition for market share.
If you’re already running your business environment in a public cloud, you’ll most likely stick with one of the databases available to you through that cloud provider. But, if you’re just about to start your cloud journey, you might want to dig deeper into each of these services before committing to one. The minor variations between them could make a difference for you.
Back up and Restore for Amazon RDS Databases
N2WS Backup & Recovery delivers simple and customizable backup and near-instant restore for your AWS workloads. The many benefits of using N2WS on Amazon RDS include being able to have complex backup schedules with a few simple clicks, having a single dashboard to centralize and automate your backup policies, using Recovery Scenarios to schedule bulk disaster recovery drills and double check your parameters for DR compliance, and much more.
Since all N2WS backup is based on AWS’s snapshot technology, N2WS can offer rapid recovery of instances, volumes, and databases. In addition to backup and recovery, N2WS Backup and Recovery offers several options for cost savings including the ability to store to AWS S3 and S3 Glacier, and the ability automate the start/stop of your idle instances.
You can try the leading provider of enterprise-class backup, recovery and disaster recovery solutions for Amazon EC2, RDS, Redshift, Aurora, EFS, and DynamoDB FREE for 30 days.