RI management

Modeling RDS Reservations

rds-modeling-blog-image[originally posted on https://www.cloudhealthtech.com/blog/modeling-rds-reservations]

In a previous blog series, I discussed the basics of EC2 Reserved Instances, the importance of purchasing them, and how to maximize your return on investment. If you are using Amazon’s Relational Database Service (RDS) to operate and scale a relational database such as MySQL or Oracle in the cloud, it’s highly advisable that you purchase reserved instances. Not only will you minimize your costs, but you also guarantee your ability to launch RDS instances when you need them. If AWS runs out of available RDS instances in a specific region, those with reserved instances have guaranteed capacity while the ones running On-Demand do not.

What is RDS?

Amazon RDS makes it easy to configure, run, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while managing time-consuming database administration tasks that save your team precious time. With Amazon RDS you can choose from six different database engines, including Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL, and MariaDB.

Currently the average user spends about 6% of their total AWS bill on RDS. It has become a critical building block for cloud applications. Surprisingly, however, even though RDS reserved instances can save 60%+ on the compute costs of operating an RDS instance, on average only 14% of RDS instances actually run under a reservation.

Why Reserve? (Pricing)

Not unlike EC2 Reservations, RDS Reserved Instances can be purchased for either a 1-year or 3-year term. This results in a significant discount (somewhere between 20-60%) compared to the On-Demand Instance hourly pricing. In addition, it has the added perk of guaranteeing your ability to launch the instances you reserved when you need them.

You can choose between three payment options when you purchase a Reserved Instance:

  • All Upfront
    • Pay for the entire term with one upfront payment.
    • Receive up to a 63% discount off of On-Demand pricing.
    • The payback period is typically around 9 months.
  • Partial Upfront
    • Pay a low upfront payment and receive a discounted hourly rate for the instance for the duration of the Reserved Instance term.
    • Receive up to a 60% discount off of On-Demand pricing.
    • The payback period is typically between 5 and 7 months.
  • No Upfront
    • Pay nothing upfront.
    • Pay only a discounted hourly rate for the duration of the term. Savings are typically around 30% off of On-Demand pricing.
    • The payback period is immediate.

 

All Reserved Instance types are available for Aurora, MySQL, PostgreSQL, Oracle, and SQL Server (except for SQL Server as the license is included) database engines.

How Do I Know What I Should Reserve?

Step 1: What’s my usage?

Analyze your On-Demand usage by choosing a time period such as the previous month, week or even day. You should look to reserve the running instances in a time period that is most reflective of the usage you expect in the future. For more static environments I recommend a longer period of time.

Eliminate any groups or instances that won’t run more than 65% of the time. You can calculate this by the total number of hours the instance ran in a one-month period. See the image below.

Also eliminate any that you don’t expect to be running 6 months from now.

Step 2: Run across multiple Availability Zones?

Your current instance usage will dictate the regions (e.g. us-east-1 or us-west-1) in which you should reserve. However, you’ll still need to decide if you want the reservation to run across multiple Availability Zones (multi-AZ) within a region.

One of the most compelling RDS features is the ability to have a fully managed high availability deployment. But, keep in mind that since multi-AZ support requires an instance running in two different zones, the average compute cost will be doubled.

Step 3: Choose a term: 1-year vs. 3-year?

Most AWS customers gravitate toward the 1-year term for reservations as a hedge against the potential for new instance types being made available during the course of the reservation term. However, since 3-year reservations provide the highest discount rate, think twice before ruling out this option.

Step 4: Evaluate the reservation type – All Upfront, Partial or None?

Sometimes the increased savings you reap from All Upfront reservations are not enough to justify their initial upfront fee. The table below shows how purchasing an All Upfront db.t2.micro reservation will cost $51 more in advance and only offer 2% more in monthly savings. Obviously the number of reservations will affect the dollar amount savings. Just be sure to do the math.

Step 5: In which account should I make a purchase?

If you have more than one account linked to a consolidated bill, you can either purchase in the consolidated account or in each individual linked account.

As reservations can float between linked accounts under a consolidated bill, other accounts can still benefit from the associated discount if a valid instance isn’t running in the purchasing account.

If your goal is to simplify the purchase and management of your reservations and you are indifferent to capacity reservation, you should purchase in your consolidated account. However, if you want to ensure that you’re guaranteed the ability to launch the instances you are reserving whenever you need them, you will want to purchase in each individual linked account.

Final Thoughts

Running relational databases in the cloud? RDS is a simple and cost effective option that takes the database management out of the equation. Utilizing RDS reservations will allow you to take advantage of cost savings that optimize your cloud investment while guaranteeing capacity.

The ability to easily manage RDS usage and reservations and maximize cloud efficiency is at your fingertips with CloudHealth. Try a free 14 day trial to see how you can model, optimize and plan your most cost optimal purchase in seconds.

twittergoogle_pluslinkedin

Reserved Instances Shouldn’t Give You Cold Feet

cloudcostscales

Keeping costs under control as your cloud infrastructure scales is no easy feat. To balance the two challenges, Reserved Instances provide substantial cost and capacity benefits. Their pricing discounts can even “float” across accounts that are linked to the consolidated bill to get the most of our your investment.

Afraid of Commitment? Don’t Be.

Although many fear overcommitting to Reserved Instances, a 1-year term reservation will almost always break even after 6 months. This is the point at which you can stop using that instance and still benefit from the reservation’s pricing discount. For a 3-year reservation, this break-even point typically occurs around 9 months.

With that said, if you’re worried about your usage needs changing down the road, it’s easy to determine whether reservations can still be more cost-effective than on-demand pricing. If all that concerns you is the instance type or availability zone, AWS makes it simple to modify reservations. In the worst case scenario, you could always sell them on the Reserved Instance Marketplace, provided you have a US bank account.

Pay Attention to the Payback Period

Taking this into consideration, the cost benefits become very apparent to organizations with infrastructure that is always-on. Using the effective rate formula we can easily calculate the exact number of months at 100% usage we need before we receive a price benefit. We call this the payback period. This metric is invaluable for mitigating the risks of reservations by identifying how long you must actually use them before they break even. It’s calculated by comparing the cash outlay for on-demand usage and the proposed offering over each month in a term, and then identifying the month at which the cost for the on-demand instance usage exceeds the cost for the reserved offering. There is no payback period for a no-upfront reservation, since they are less expensive than on-demand immediately.

Let’s take a look at just how cost-effective reservations can be over time. With a 1-year upfront reservation for an m3.large instance in the us-east-1a region you can expect to save 37% per month!

effective rate = upfront payment / reservation term / interval + recurring usage charges for interval

While the effective cost per month savings are certainly significant, let’s take a look at one of the more confusing behaviors of RI’s – their ability to “float” across accounts.

What Happens When My Reservations “Float”?

By default, reservations have a tendency to satisfy the needs of the account in which they were purchased. However, if there is no instance usage in a given hour in the purchasing account, the reservations can “float” to a linked account to take advantage of the reservation.

While the price reduction benefits of RIs “float”, it’s important to note that the capacity reservation does not. Therefore, if you have an available reservation in account A but want to launch an equivalent instance in account B, you have no guarantee that sufficient capacity will be available.

Stay tuned for the next post on the best practices of RI management – from modeling purchases to modifying them and beyond.

twittergoogle_pluslinkedin