Let's get on each others' calendars.

The Basics of AWS RDS Pricing

(How to Slash Costs Without Impacting Performance)

AWS RDS is an amazing tool but, like much of Amazon’s offerings, it becomes infinitely more painful to use when you’re trying to get on top of your costs by looking at AWS RDS pricing.

How much are your RDS instances costing you? Are all of them necessary? Is your API skyrocketing your costs, or are you covered by the free plan?

Most importantly, could you be saving money by being savvy with the AWS RDS pricing plan?

Today we’ll cover all of this and more, letting you know exactly where you stand, how much everything costs, and where all of your money is going. Whether you want to fully understand and effectively manage your AWS costs or you’re looking for some helpful tips and tricks to help reduce spending, we here at Aimably are here to solve all of your problems.

That’s why this post will cover:

  • What is AWS RDS?
  • AWS RDS pricing
  • AWS RDS Performance Insights pricing
  • AWS RDS Proxy pricing
  • How to easily track and manage your AWS bills

Let’s get started.

What is AWS RDS?

Source, image in the public domain

Amazon Web Services (AWS) Relational Database Service (RDS) provides seven database engines for you to choose from, each coming with multiple instance types and sizes for working with relational databases.

Put simply, it’s a service that offers managed relational databases for you to use. This cuts out the need to manually update your servers, install new necessary patches, create backups, scale your operations, maintain security measures, and more.

AWS RDS is thus a fantastic way to get rid of much of the busy work involved in managing a relational database while still having full access to and use of one (or more) to power your operations.

Getting rid of the need to oversee your database setup also makes it ideal for cases where you’re looking to migrate from on-premises to the cloud, as all you have to do is transfer your data instead of having to manage everything yourself.

Either way, AWS RDS eliminates the time and effort that would otherwise come with managing a relational database.

AWS RDS Instance types

AWS RDS offers several general purpose and memory optimized instances for you to choose from. While we’ve covered all of the available EC2 instance types in the past, let’s highlight the ones that Amazon RDS specifically offers.

General purpose:

  • T4g - from db.t4g.micro to db.t4g.2xlarge
  • T3 - from db.t3.micro to db.t3.2xlarge
  • T2 - from db.t2.micro to db.t2.2xlarge
  • M6g - from db.m6g.large to db.m6g.16xlarge
  • M5 - from db.m5.large to ​​db.m5.24xlarge
  • M5d - from db.m5d.large to db.m5d.24xlarge
  • M4 - from db.m4.large to db.m4.16xlarge

T4g and T3 instances are mostly suited to workloads with moderate CPU usage that can suddenly spike, as they have the ability to burst CPU usage whenever it is needed. T2 instances can also burst CPU usage when needed, but are more suited to lower-intensity loads such as micro services and test and staging databases.

Remember, the T instances all build up credits while they are at 20% CPU usage or less. These credits are then used up when usage spikes, so you need to have periods of both in order to take full advantage of these instances.

M6g, M5, and M5d are all truly general purpose, while M4 focuses a little more on being ideal for small-to-midsize database workloads.

Memory optimized:

  • R6g - from db.r6g.large to db.r6g.16xlarge
  • R5 - from db.r5.large to db.r5.24xlarge, and from db.r5.large.tpc1.mem2x to db.r5.12xlarge.tpc2.mem2x
  • R5b - from db.r5b.large to db.r5b.24xlarge
  • R5d - from db.r5d.large to db.r5d.24xlarge
  • R4 - from db.r4.large to db.r4.16xlarge
  • X2g - from db.x2g.medium to db.x2g.16xlarge
  • X1e - from db.x1e.xlarge to db.x1e.32xlarge
  • X1 - db.x1.16xlarge and db.x1.32xlarge
  • Z1d - from db.z1d.large to db.z1d.12xlarge

These instances (as the name implies) are suited to workloads with higher memory requirements, including memory-intensive applications and those which require fast performance while also processing large datasets in memory.

As long as storage persistence isn’t essential, the R series of instances are all great for running services like ElasticCache or Redis, especially if you’re wary of the AWS serverless alternatives. Meanwhile, X instances all have a much higher memory ratio, making them more suited to running a fully in-memory application.

Z1d instances are slightly unusual in that they have a sustained frequency of 4.0GHz, which makes them suitable for apps with a high per-core licensing cost.

Remember that any instances with a lowercase “g” in their name run on the AWS-proprietary graviton chip. These offer more competitive pricing than other similarly sized and featured instances, so they’re worth looking at if you really want to maximize the bang for your buck.

AWS RDS vs Amazon Aurora

Source, image used under Pexels license

While there are many similarities between the two, AWS RDS and Amazon Aurora have a wealth of differences that are worth noting, especially as RDS can be used to host Aurora databases which can drastically increase your costs.

To summarize, AWS RDS lets you set up a database on an EC2 instance and hand off the provisioning and maintenance to Amazon. Aurora is instead a dedicated database abstracted from EC2 instances, where all data has 6 copies over three Availability Zones.

Aurora databases perform better and more consistently than the same setup via RDS, with higher availability and durability, and only Aurora supports automatic scaling. Due to this, Aurora is more expensive than a similar setup on RDS, and there are extra features which can quickly incur further major costs.

Aurora Serverless automatically starts and stops nodes based on your needs to automatically scale. Aurora Global Database replicates your data from one instance over multiple AWS regions. Backtrack allows you to roll your database back to a specific point in time. Snapshot Export and Cluster Export let you export the data from your database or clusters to Amazon S3.

All of these are great features if you’re using Aurora, but all of the above cost extra and, if left unchecked or turned on by accident, can quickly run up your monthly bill by thousands of dollars.

With that being said, let’s move onto the main pricing points for AWS RDS.

AWS RDS pricing

Source, image in the public domain

When it comes to AWS RDS pricing, Amazon follows a trend that many of its other products fall under. It’s a little confusing, and hard to track and manage.

However, the basics are straightforward enough to grapple with in this post, so let’s start out with the free plan.

AWS RDS’s free tier is mostly focused on the usage of certain sizes of T instances running specific types of databases and servers. So, if you’re looking to use a memory-optimized instance or an M-class instance, you’re going to need to pay for it.

The free plan allows you to utilize 750 hours of Single-AZ db.t2.micro, db.t3.micro, and db.t4g.micro instances per month as long as they are running MySQL, MariaDB, or PostgreSQL databases. This isn’t a limit per-instance mind you, as multiple instances of this type will be pooled together when tracking your usage hours.

You can also use a Single-AZ db.t2.micro instance running an Oracle BYOL or SQL Server, or an Oracle BYOL db.t3.micro Single-AZ for 750 hours for free per month. These are, once again, grouped together for usage purposes, so utilizing both will mean that your usage hours are added together for the purposes of your free limit.

Finally, you’ll also receive 20 GB of General Purpose SSD DB storage, and a further 20 GB of storage for your automated database backups and any user-initiated DB Snapshots.

If you exceed the free tier or you want to run an instance that isn’t covered under those terms, you’ll be subject to pricing based on the database engine used. You can choose to pay On Demand (per GB of usage per month) pricing for your instances or to commit to a 1- or 3-year period of sole usage by purchasing a Reserved Instance. For more information on that and some tips on optimizing your usage of them, check out our post on Reserved Instances. Keep in mind that AWS doesn’t allow no-upfront payment commitments for some RDS instance types, so you’ll want to get approval from your finance team before purchasing.

Note that on top of usage costs, you’ll also have to pay per million requests your instances deal with.

The databases you can choose from are Amazon Aurora (with either MySQL or PostgreSQL compatibility), MariaDB, Microsoft SQL Server, MySQL, Oracle, and PostgreSQL.

PostgreSQL pricing is up to 10% higher for instances depending on their size, and Oracle and Microsoft SQL Server DB cost roughly twice as much as their open-source equivalents. You can reduce the costs for Oracle down to open-source levels by providing your own license, but this will, naturally, incur the cost of obtaining the license too.

Remember that using Aurora will (usually) cause your bill to be higher than that of a standard EC2 instance setup through RDS, and that the extra Aurora features we mentioned above can ratchet your bills up even further.

There are also a few features of AWS RDS which can cost you extra. There are Performance Insights and Proxy.

AWS RDS Performance Insights pricing

Source by Marco Verch, image used under license CC BY 2.0

AWS RDS Performance Insights is a feature which provides you with a dashboard through which you can quickly assess the load on your database(s). This lets you monitor and tune your database’s performance to get the most out of it.

Performance Insights once again offers a reasonable free plan for anyone running a small-scale operation or for those who simply want to try out the feature. This includes seven days of performance data history and one million API requests per month.

Prices beyond that are based on how many months you want your data to be retained for, and how many API requests you make.

For most provisioned instances, you’ll have to pay $1.50 per vCPU per month, with an extra $0.0631 per month extra beyond the first that you wish to retain data for per vCPU. In other words, retaining one instance’s data (with 50 vCPUs) for three months and a second’s for two months (with 100 vCPUs), your price would be:

(50 x ($1.50 + (3 x $0.0631))) + (100 x ($1.50 + (2 x $0.0631)) = $247.08500

The longest you can retain performance data for is two years (24 months).

The only exception to this price is if you’re using Aurora Serverless v2 instances, which are billed per ACU per month. These are billed at $0.375 per ACU per month, with an extra $0.0158 per month per ACU that you wish to retain data for.

You’ll also be billed for your API requests beyond one million per month, but these don’t have any exceptions to the base rule. They’re priced at $0.01 per 1,000 requests per month.

AWS RDS Proxy pricing

The final element of AWS RDS pricing is that of the AWS RDS Proxy feature, which is thankfully as simple as excess API requests for Performance Insights. Proxy is a service offering database proxies for RDS accounts for both serverless accounts and EC2 or ECS. These proxies act as a kind of middleman for requests, making them go through your proxy server before being submitted to your database.

It’s a great way to enhance your security, flexibility, and scalability.

If you’re utilizing Proxy, you’ll be billed $0.015 for every vCPU-hour or ACU-hour used. Just be aware that there’s a minimum charge of 2 vCPUs or 8 ACUs.

Partial hours are billed in one-second increments with a 10-minute minimum charge following a billable status change such as creating, starting, or modifying.

How to easily track and manage your AWS bills

Source, image in the public domain

Let’s be honest here. You don’t have the time nor manpower to individually track your AWS RDS instances along with every other AWS service you utilize. It’s all too easy for bills to get out of hand, or at least for spending to become unnecessary and wasted on things that you don’t get any value out of. Plus, if you’re already using RDS, there’s going to be a lot of different RDS line items on your bill that don’t make sense.

That’s why we at Aimably are here to help.

In the same way that RDS takes the pain out of database management, Aimably’s AWS Invoice Management Software and AWS Cost Reduction Assessment eliminate the difficulties of tracking, managing, and optimizing your AWS costs.

With our AWS Invoice Management Software you can effortlessly handle invoice processing for your entire AWS account, which helps you connect the dots between workloads and infrastructure, adding business context to all of your spend.. Unlike Amazon’s own tools, our software allows you to track your spend trends in context with the rest of your business performance, meaning that you don’t have to cross-reference everything just to understand the factors that might be driving up your bill. It’s the best way to reduce friction between your finance and engineering teams!

If you’re concerned about AWS RDS pricing or are seeing large RDS charges on your bill, our AWS Cost Reduction Assessment has you covered.

We eliminate the need to have every last Savings Plan, Reserved Instance, and other AWS savings method memorized! By diving deep into your company’s business operations and placing those in context with your cost and usage data, our assessment will provide you with a prioritized list of things that you can do to instantly reduce your costs and get your spending under control. We even provide the context of how all of your options will affect your performance and available resources, taking into account what’s most important for you to keep running at maximum capacity and where you’re getting the most value out of your AWS account.

Get rid of the AWS headache by signing up for Aimably today!

AWS Total Cost of Ownership