Amazon Relational Database Service, or RDS for short, is actually comprised of several individual services intended to ease the process of configuring and operating databases in the AWS cloud. Thus, allowing you to deploy many different relational database types.
From a performance standpoint, RDS claims to offer a consistent baseline of 3 IOPS per provisioned gigabyte, along with the ability to burst upwards of 3,000 IOPS above its baseline when utilizing its general-purpose storage. It also includes optimized reads and writes boasting up to two times the query processing and throughput of traditional MySQL.
We’ve taken the time to research the ins and outs of RDS within the AWS landscape in an effort to provide you with a clearer picture of whether or not the above promises can be kept. That, and to check if this collection of services is right for your individual database needs. Let’s dive in!
6 Must-Know Facts About Amazon RDS
- The collection of services that make up RDS is each managed, meaning that AWS takes care of the infrastructure and security behind your database through a shared responsibility model.
- No matter which relational database solution you currently use, Amazon RDS will most likely be able to handle a seamless transition — in some cases, very close to a lift-and-shift move.
- Amazon RDS supports deployments across multiple Availability Zones, ensuring high availability even in the event of a natural disaster or other event causing data center outages.
- Amazon Aurora can provide similar availability and performance of well-known commercial databases at about 10% of their cost month-to-month.
- Amazon offers the AWS Database Migration Service for easier migration from your current database solution over to RDS.
- If you don’t want to handle everything on your own, dozens of third-party vendors certified as Amazon RDS Partners can assist with monitoring, security, and more.
What Is Amazon RDS: Explained
First offered to customers in the fall of 2009, Amazon RDS is a group of relational database services that help with the configuration, operation, monitoring, and scaling of many popular database types within the AWS cloud.
Like many AWS products, RDS handles tasks like backups and patching, as well as the underpinnings of the database software itself so that the user does not have to; instead, it encourages them to focus on the important things like the schemas and data itself.
RDS lets you choose between deploying in the cloud or even in your own on-premises environments, supporting seven relational DB engines as of the time of this writing. They are as follows: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Amazon Aurora (MySQL compatibility), and Amazon Aurora (PostgreSQL compatibility).
Types of RDS Instances
When it comes to relational DBs and their use cases, not all are equal. This not only applies to the database software itself, but also to the underlying hardware, which is dictated by the DB instance class types of RDS.
These are broken out into three high-level classes that each have their own distinctive hardware qualities when it comes to memory requirements and processing power. There is a general purpose, which is the most commonly used, along with memory-optimized and the burstable performance instance class.
It’s crucial that you review the many instance classes tied to each of these main categories before making a selection, as your needs may vary greatly from the average customer.
Not unlike many other AWS services, RDS instances are typically Region-specific and you should understand this concept along with that of Availability Zones, and Local Zones before deploying your new cloud-based database solution. This same word of caution goes for the various RDS storage types that are available which, at a high level, are categorized as General Purpose SSD, Provisioned IOPS SSD, and even conventional magnetic.
Amazon RDS and MySQL
The gold standard when it comes to relational databases, RDS for MySQL comes out of the box, with support for common industry and security standards like HIPAA and FedRAMP already baked in. It also allows you to use most traditional MySQL applications and utilities, many of which are open-source.
This is to view and manipulate your data, meaning that there is minimal to no learning curve for yourself or anyone within your organization that needs to continue their work uninterrupted upon the move to AWS.Amazon RDS also has a user-friendly set of management tools for resizing your MySQL instances, creating and utilizing backups, working with read replicas, and keeping an eye on performance.
One notable limitation that DB administrators will want to know upfront is the lack of shell access to said instances, the reason being that you’re now dealing with a managed service and not your run-of-the-mill database configuration. While this could be somewhat of a culture shock for those admins and power users that work almost solely within SSH or Telnet, it will save everyone time long-term.
Amazon RDS and PostgreSQL
For those users who work with relatively complex data types but are not looking to take the NoSQL route, the object-relational PostgreSQL is often the database of choice. Amazon RDS supports several versions of PostgreSQL, although it is recommended that you work with the latest (14.7 or 15.x at the time of this writing) if possible.
Just like with MySQL, RDS lets you create PostgreSQL backups, snapshots, and read replicas. It also provides the ability to place an instance within a VPC (virtual private cloud) if needed.
Most SQL client applications like pgAdmin can be used for the administration of your DBs, as can the long-running psql command line utility. Industry standards are also natively supported, making those concerned with compliance more likely to make the leap to RDS.
Monitoring With Amazon RDS
Perhaps no infrastructure component, cloud-based or on-premises, benefits more from in-depth monitoring than databases. Often the heart of your application or site, the data that flows in and out of your DBs is critical, and so is ensuring that there are no problems with that transfer or with the databases themselves.
Amazon RDS features a plethora of tools to do just that and more, letting you keep a close eye on activity streams, dozens of event types, and pertinent log files. EventBridge provides access to a stream of real-time data from a bevy of sources, including your applications.
CloudWatch Logs, meanwhile, give you full control and visibility into all log files generated from your RDS instances. Then there’s AWS CloudTrail, which captures any and all API calls in your account — including those that interact with your databases.
These are just the tip of the monitoring iceberg with RDS, and, over time, users who want to become true masters of their instances and the data within can do so with the impressive toolset provided.
Securing Your Amazon RDS Instances
If you’re familiar with other AWS services, or perhaps a competing provider, you know how stringent cloud security measures typically are, and with good reason. Amazon RDS is no exception to this rule, with the aforementioned shared responsibility model set up in a way that your data remains safe and secure. That’s if you follow the rules and fully understand which aspects you’re responsible for and which belong solely to AWS.
To have ultimate control over access to your RDS instances, running them within a VPC is recommended. To extend that control to individual users and groups, AWS IAM (Identity and Access Management) policies are both powerful and highly configurable.
Perhaps you’re concerned about encrypting the data itself. Like any cloud data service, encryption is a must, and RDS utilizes the AES-256 algorithm. It also offers additional options across most of its general-purpose, memory-optimized, and burstable instances.
The Amazon RDS API
While you can certainly control all aspects of RDS through the AWS command line or the Management Console, its API provides a level of flexibility when it comes to automation that can make your life much easier on an everyday basis. With over 100 actions supported and well-kept documentation set on each, the RDS API can be utilized by even a novice coder.
How to Use Amazon RDS
As we mentioned earlier, RDS’ being a managed database service means that Amazon is responsible for the lion’s share of management-related tasks. While this sometimes feels like an overused tagline when trying to promote or sell RDS, the truth is that the customer is really not responsible for much at all in the way of management.
Other than application optimization landing on their to-do list, RDS handles almost all of the following: backups, operating system patching, database patching, software and OS installation, hardware lifecycle, server maintenance, power and network activities, high availability assurance, as well as the all-important scaling.
So with all of this handled by RDS, what’s left for you as the customer to take care of? Quite a bit, it turns out, but nothing so overly complex that a beginner database administrator couldn’t handle it.
Once you’ve signed up for a free AWS account and created an administrative user (you shouldn’t be using your root account for most tasks), getting started with RDS first involves understanding what your actual requirements are.
Do you need a DB that supports memory-intensive loads? What Region is closest to the majority of your customer base? Are you planning to place your RDC instances inside a VPC? These are all questions you need to ask yourself before proceeding with the setup process.
The way you use RDS will vary depending on which database you’re deploying (MySQL, MariaDB, etc.), along with a number of other factors. Some commonalities among them do exist, however, including the process of creating an instance itself.
Many users opt to use pre-existing infrastructure templates or create one of their own that can be deployed across multiple instances via the AWS CloudFormation service, which lets you reuse an individual template countless times.
No matter the road you end up traveling when it comes to Amazon RDS and its usage, the documentation available via the official AWS repository is thorough and constantly updated.
How to Learn Amazon RDS
By now, your head may be spinning, but believe it or not, RDS as a whole is not that difficult to grasp once you’ve had a limited amount of experience with its interfaces and tools.
Before doing so, you may want to peruse Amazon’s RDS Overview, as it contains some very well-written primers on the service and its companion products.
If you’d prefer to learn by watching rather than reading, there are plenty of RDS tutorials found on YouTube as well as via a number of trusted online training providers.
If you’d like to get your hands dirty and learn by doing instead, RDS is available as part of the AWS Free Tier package — meaning you can play around with all the bells and whistles without opening your wallet.
Amazon RDS: When Is It Not the Best Choice?
At a fundamental level, the main reason you might choose an alternative like DynamoDB over RDS is if the solution you require from your databases is one that cannot be handled properly by a relational DB. Unlike RDS, Amazon DynamoDB supports NoSQL databases.
If you find yourself working with unstructured or semi-structured data and need flexibility in terms of table schema, etc., then DynamoDB might be the better choice for your use case. This is often the case when dealing with analytics or big data-related applications.
Amazon RDS: Release History
First released in October 2009, Amazon RDS has grown by leaps and bounds in terms of its scope and feature set in the decade-plus since it was first introduced as part of AWS. In 2022 alone, over 400 contributions from open-source communities were integrated with the service.
Some recent notable additions include trusted language extensions for PostgreSQL and improvements to the product’s optimized reads and writes.
Although NoSQL databases continue to grow in popularity, there will always be a strong need for those DBs of the relational type, and, in turn, we should expect Amazon RDS to continue to grow exponentially as a result.
The image featured at the top of this post is ©Ascannio/Shutterstock.com.