Businesses don’t always have the choice of which Amazon RDS pricing option to select, as the choice can be determined by legacy database engines in on-premises infrastructures. However, there are ways to reduce Amazon RDS costs that can mitigate the consequences of being caught in the Amazon RDS pricing trap.
Getting to grips with Amazon RDS pricing can be complicated. Amazon’s Relational Database Service supports six popular database engines, instances can be standard or memory-optimized, and deployed in a single or multi Availability Zone. Then you have to provision either IOPS storage or magnetic storage, make an allowance for backup storage, and consider the cost of data transfers.
The choice of Amazon RDS pricing options can often be narrowed down according to factors already in place. Considerations such as a business’s current relational database management system, coding, interoperability, and security requirements have to be taken into account to ensure a smooth transition from the development, testing, and staging environment to the production environment.
For some businesses, this can mean the choice of options is reduced to one. Effectively the business is caught in a trap whereby it’s forced into using a specific Amazon RDS pricing option. This is not AWS’ fault. The service provider is simply trying to accommodate businesses as much as possible. However, there are easy ways to reduce Amazon RDS costs and can result in significant savings—whether your business is trapped into a specific pricing option or not.
Three ways to reduce Amazon RDS costs
Our three ways to reduce Amazon RDS costs may look similar to solutions used to reduce EC2 costs, but there are subtle differences between the two. It’s also important to note that each of our three ways to reduce Amazon RDS costs are based on capabilities of the CloudHealth platform to not only make the initial savings, but also to sustain them as businesses adjust to the constantly changing cloud landscape.
Schedule stop/start times for non-production RDS instances
Up until last year, the only way to reduce Amazon RDS costs by stopping and starting non-production RDS instances (without losing S3 transaction logs or automatic backup) was to take a snapshot of the instance, delete the instance, and then create a new instance into which data from the snapshot would be restored. It was messy, time-consuming, and prone to errors.
Then Amazon announced RDS instances could be stopped and started using the AWS Management Console or Command Line Interface without losing data. Unlike scheduling start/stop times for EC2 instances (which could be the target of a CloudWatch event) it’s only possible to schedule stop/start times for RDS instances using the AWS Lambda function and API calls using a schedule event as a trigger.
The process—although “trivial” according to one AWS partner—is still messy, time-consuming, and prone to errors, and also comes with the caveat that the maximum time an RDS schedule can be stopped using these methods is seven days. Once seven days has elapsed, Amazon restarts the instance automatically, which can create a costly problem if the instance has since been forgotten about.
The CloudHealth solution to scheduling stop/start times for non-production RDS instances is an integration with our platform called “SmartParking”. The SmartParking process identifies which RDS instances are used for non-production purposes based on their tags, and makes recommendations about which stop/start schedules should be applied to each instance based on its usage.
This process has the advantage of scheduling instances to be running only when they’re required - rather than applying an across-the-board 8.00 a.m. to 8.00 p.m. schedule - thus enabling businesses to reduce Amazon RDS costs. SmartParking switches off RDS instances if they’re automatically restarted by Amazon, and also has a “Permanently Parked” option—which allows businesses to schedule an instance to be permanently switched off and then interrupt the schedule when access to the instance is required. This option is ideal for development teams that work irregular shifts or in irregular patterns.
All-inclusive optimization of RDS costs
Most businesses will be familiar with the concept of AWS cost optimization - matching the resources provisioned to the resources actually required—but, due to the way in which the Amazon RDS pricing options are structured, optimizing RDS instances is more complicated than optimizing EC2 instances or optimizing storage costs by moving data between S3, Infrequent Access, and Glacier storage.
With RDS instances, not only is it necessary to consider memory and capacity requirements, decisions have to be made about whether multi-zone deployment is required to enhance data durability and availability, and what I/O capacity is needed. Furthermore, with Provisioned IOPS, businesses are charged for the throughput and storage they provision, but not for the I/Os they consume.
CloudHealth’s powerful analytics capabilities provide businesses with the data needed to make informed decisions about Amazon RDS pricing and cost optimization. Resource performance and utilization reports collect, trend, and report on both a granular and a macro level across CPU, memory, network, storage, and IOPS—even if the source data comes from disparate sources or accounts.
In addition to providing total visibility over AWS accounts, CloudHealth makes recommendations about the optimal configuration of assets to identify and terminate zombie assets (such as idle RDS Instances or manual database snapshots). The monitoring and reporting processes are ongoing in order to ensure resources are always optimized for cost, performance, and security.
RDS Reserved Instance management
RDS Reserved Instances differ from EC2 Reserved Instances because Convertible RIs aren’t yet available for RDS instances, and there’s no option to purchase a three-year RDS Reserved Instances with No Upfront payment. Although this reduces the number of Amazon RDS pricing options to choose between, there are still a lot of moving parts to analyze in order to make the right RI purchase.
The CloudHealth RI Optimizer can analyze all the moving parts in order to recommend the best RDS Reserved Instance purchase for the environment. Using an algorithm called the “greedy knapsack”, the RI Optimizer compares all possible combinations to achieve the optimal outcome and gives businesses the opportunity to see what their infrastructure will look like after the purchase.
After evaluating RDS usage to determine the optimal RDS Reserved Instance purchase within a given budget, the RI Optimizer continues to monitor utilization of the Reserved Instance to eliminate wastage and help businesses reduce Amazon RDS costs. Finally, when a Reserved Instance purchase is about to expire, CloudHealth will notify the budget holder, along with recommendations for renewal.
Help with navigating the Amazon RDS pricing options
If your business uses the AWS Relational Database Service, and you’d like help with navigating the Amazon RDS pricing options, contact us here. Our team of optimization experts will guide you through the Amazon RDS pricing options, explain why you may be trapped into having limited options available, and offer advice about areas in which it may be possible to reduce Amazon RDS costs.