Avoiding the Cost of Incorrect AWS RDS Sizing

The purpose of AWS RDS sizing is to ensure you have provisioned your Amazon Web Services (AWS) relational databases correctly for your needs. Despite the benefits, running relational databases on AWS can be relatively expensive when compared to EC2 hosting. It becomes even more expensive if you have overprovisioned your resources, but it can be a time-consuming and costly process to analyze each resource to calculate its optimum configuration. And of course, few public cloud developers know or care about the wasted spend. However, by properly sizing and planning your resources, you save money that can be allocated to other projects in your budget –– and save your team from the wrath of a CFO startled by high AWS bills.

Software solutions exist that can help determine appropriate AWS RDS sizing. However, these can be a false economy when they are bundled together with other software tools as cloud management solutions. (Why buy a whole toolkit when all you need is a screwdriver?). Additionally, by and large these solutions provide mere recommendations, without giving users the option to automate sizing actions in any way. Automation is important to ensure that correctional action is actually and, of course, saving you time. (And don’t worry – the level of automation is customizable and completely up to you.) This is why ParkMyCloud´s AWS RDS sizing tool is the ideal solution to ensure you have provisioned correctly for your needs.

Why Correct Sizing is So Important: RDS Instance Types and Cost Comparison

Before we dive into ParkMyCloud, let’s take a look at the problem. A recent report showed that more than 40% of cloud instances are oversized* – that is, they’re provisioned at a larger capacity than actually needed. That means you’re paying for capacity you’re rarely, or never, using, and paying 2-3 times what you should be.

Here’s how it breaks down for Amazon RDS specifically.

AWS RDS Instance Types

  • General Purpose
    • T3 instances – the latest burstable, general purpose instance type that provides a baseline level of CPU performance, plus the ability to burst CPU usage. Balance of compute, memory, and network.
    • T2 instances – similar to T3, T2 instances are burstable general-purpose performance instances that provide a baseline level of CPU performance with the ability to burst.
    • M5 instances – the latest general purpose instances with a balance of compute, memory, and network resources.
    • M4 instances – balance of compute, memory, and network resources.
  • Memory Optimized
    • R5 instances – latest generation of memory-optimized instances.
    • R4 instances – previous generation of memory-optimized instances.
    • X1e instancesoptimized for high-performance databases, offering one of the lowest prices per GiB of RAM.
    • X1 instancesoptimized for large-scale, enterprise-class and in-memory applications.

As you can see already, it’s important to ensure that you’re matching your workloads to the instance types that best meet their needs.

AWS RDS Instance Types Pricing

RDS Pricing varies based upon the Amazon RDS database engine you use to run it. You should use the AWS Cost Estimator to run your specific scenarios, but let’s just take a quick look at how a memory-optimized R4 large compares to an R4 Extra Large across engines as one example. This is pricing for the US East (N. Virginia) region:

R4 Large R4 Extra Large
Amazon Aurora $0.29/hour $0.58/hour
Amazon RDS for MySQL $0.24/hour $0.48/hour
Amazon RDS for PostgreSQL $0.25/hour $0.50/hour
Amazon RDS for MariaDB $0.24/hour $0.48/hour
Amazon RDS for Oracle $0.24/hour $0.28/hour
Amazon RDS for SQL Server $0.365/hour $2.501/hour

You can see the difference in cost of AWS RDS instance sizes doubles, or more, just by going up one size. This pattern applies across instance types, sizes, and regions.

Using ParkMyCloud for AWS RDS Sizing

ParkMyCloud is a lightweight SaaS app that can help you avoid the cost of AWS RDS sizing by focusing solely on optimizing your resources. It does this by conducting a discovery of your resources via a permissions-limited IAM role and then delivering Instance Utilization Reports that show the peak and average utilization of your RDS resources over a series of customizable timeframes.

The heatmap-style reports identify resources with a more expensive configuration than required. ParkMyCloud makes recommendations about which resources could be reconfigured, which could be terminated, and which could be reassigned to a cheaper pricing plan. The reports not only identify cloud waste in RDS provisioning, but also in EC2 and auto-scaling provisioning as well.

Although ParkMyCloud evaluates Cloudwatch data to make its recommendations, it cannot predict your future plans for each resource. Therefore, you have to make the decisions about whether to resize your RDS instances according to ParkMyCloud´s recommendations, or whether to select an alternative configuration. However, if you do accept ParkMyCloud´s recommendations, and demand subsequently increases for a resource, you can always return the resource to its previous configuration.

Here’s one example:

AWS RDS sizing savings example

By accepting the second resizing option in this recommendation, the user can reduce costs by 47%, while maintaining the capacity they need for their workloads.

Scheduling Start/Stop Times with ParkMyCloud

AWS RDS sizing with ParkMyCloud takes minutes and costs practically nothing (or nothing at all if you take advantage of our free trial offer below). It is equally as quick and as cost-effective to use ParkMyCloud to schedule start/stop times for non-production RDS instances. Indeed, half the work is already done once the app has finished its discovery of your database resources on AWS.

Alongside the list of resources displayed on the ParkMyCloud dashboard, you will see the app´s recommendations about which are suitable for scheduling. These are typically EC2 and RDS instances that are used for developing, staging and testing, and for which most companies are paying for when they are not being used. There are two ways in which businesses usually deal with this scenario:

  • Instruct developers to switch off non-production instances when not required.
  • Reassign developers away from their core tasks to write scheduling scripts.

Scheduling start/stop times with ParkMyCloud is more reliable than instructing developers to switch off unused instances, and more cost-effective than writing and maintaining scheduling scripts. As was mentioned earlier, the work is already half done, and all you need to do to automate the scheduling process is to accept the recommendations and assign your choice of parking schedule to them. Or if you prefer, implement a policy to automatically accept recommendations for you.

You can make the process even easier by integrating ParkMyCloud with your ChatOps tool, such as Slack, Microsoft Teams, or Google Hangouts, so you can receive notifications and control your resources and schedules through commands, right in your chat window.

Permanent Parking and Snoozing Parking Schedules

Based on a schedule in which non-production instances are parked outside normal office working hours (i.e. 8.00 a.m. to 8.00 p.m. Monday to Friday), ParkMyCloud will save you almost 65% on the cost of deploying development, staging and testing instances on AWS. This is addition to the savings you may make by AWS RDS sizing. However, the savings can be much higher with a permanent parking schedule.

A permanent parking schedule switches an AWS instance off permanently – or at least until a developer wants to access them. When this happens, the permanent parking schedule can be overriden with the click of a mouse and the instance(s) comes out of its dormant state. This can be done through the UI, API, or chat bots, and can set the instance to run for a certain number of hours or until a certain date and time.

Permanent parking is an ideal solution for businesses who have multiple projects under development at the same time, or who have development teams who work irregular hours. It maximizes savings without additional cost and along with AWS RDS sizing minimizes “public cloud waste” – the amount of money spend on public cloud services that are never used (estimated at up to $14.1 billion in 2019).

Try AWS RDS Sizing for Free

If you would like to check you have provisioned correctly for your needs, or would like to save up to 65% on the cost of deploying non-production instances on AWS, you are invited to contact us and request a free trial of our AWS RDS sizing tool. Our free trial offer gives you the opportunity to evaluate ParkMyCloud and its ease of use in your own environment and witness the savings for yourself.

One of the best features of ParkMyCloud not mentioned above is, when you apply parking schedules, you get a projected saving figure at once. This compares favorably with cloud management solutions that only tell you how much you have spent once you have spent it, plus due to the visibility you get over your cloud accounts with ParkMyCloud, you can make sure the projected savings are realized and maintained. Contact us today to find out more.




*According to the 2017 RightScale State of the Cloud Report