Do AWS Reserved Instances and Savings Plans really reduce costs?
Tags: aws, devops, kubernetes
Published: 2021-06-29 14:57:00

<!-- wp:paragraph -->
<p>Allocating cloud costs is hard, and forecasting them is even harder.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pinterest once committed to paying a smashing $170 million for AWS services in advance and was then forced to buy extra capacity at a much higher rate, <strong>spending some $20 million more than estimated</strong>.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>How are you supposed to reserve capacity in advance when you have no idea how much of it your company is going to need one or three years from now?</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is the core problem of products like AWS Reserved Instances and Savings Plans.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Keep on reading to find out why they’re so risky and what you could be doing instead.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Here’s a guide I prepared for you:</strong></p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><a href="#awsreservedinstancesbasics">AWS Reserved Instances: the basics</a></li><li><a href="#howdoreservedinstanceswork">How do Reserved Instances work?</a></li><li><a href="#howmuchcanyousavewithreservedinstances">How much can you save with Reserved Instances?</a></li><li><a href="#risksofreservedinstances">Here’s what you risk with AWS Reserved Instances</a><ol><li><a href="#paythepriceforchangingrequirements">You will pay a steep price for changing requirements</a></li><li><a href="#vendorlockin">You will get locked-in with AWS</a></li><li><a href="#losingflexibility">You will lose all flexibility</a></li></ol></li><li><a href="#reservedinstancessetupisdifficult">Also, setting up AWS Reserved Instances is super difficult</a></li><li><a href="#savingsplansarentasolution">And AWS Savings Plans aren’t going to save you</a></li><li><a href="#howtosolvethis">How to deal with that? Simple, avoid Reserved Instances and Savings Plans</a></li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 id="awsreservedinstancesbasics">AWS Reserved Instances: the basics</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Companies choose Reserved Instances because they come with substantial discounts compared to pay-as-you-go On-Demand pricing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>All it takes is <strong>committing to a specified cloud capacity for a specified period of time</strong>. In AWS, it’s one year or three years. In some cases, you also get a guarantee that certain resources will be available to you in a given hosting region.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 id="howdoreservedinstanceswork">How do Reserved Instances work?&nbsp;</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>It’s all just like regular instance purchases. Select an instance type, size, platform, and region - and you’re done! It’s like getting a voucher you can use to get a discount any time during your chosen reservation period, often sharing it among teams.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And the larger your upfront payment, the larger the discount.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="howmuchcanyousavewithreservedinstances">How much can you save with Reserved Instances?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>According to AWS, the EC2 Reserved Instances offer <strong>discounts of up to 75%</strong> compared to On-Demand pricing.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But there’s a catch.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>A Reserved Instance operates on a “use it or lose it” basis. Every hour that your instance goes unused is an hour lost (together with any financial benefits).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To make the most of your Reserved Instance, you need to maximize your use of it. This means that you need to know exactly what your teams will need in advance.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"className":"is-style-large"} -->
<blockquote class="wp-block-quote is-style-large"><p>Reserving capacity in advance to get the instances you use all the time at a discount seems like a smart move. After all, you’ll keep on using these cloud resources. But it comes at a price many teams aren’t aware of.</p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading -->
<h2 id="risksofreservedinstances">Here’s what you risk with AWS Reserved Instances</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 id="paythepriceforchangingrequirements">1. You will pay a steep price for changing requirements&nbsp;</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>When you commit to given resources or levels of usage, you’re basically assuming that your requirements aren’t going to change while the contract is running.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But in the cloud world, a year of commitment is an eternity.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Not even tech giants with entire departments dedicated to cost optimization are capable of making accurate forecasts.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Take Pinterest as an example. </strong>During one holiday season, its users spent so much time on the platform that the company’s cloud bill <a href="https://www.theinformation.com/articles/as-aws-use-soars-companies-surprised-by-cloud-bills">went flying over the initial estimates</a>. At that point, Pinterest had already committed to paying $170 million to AWS. And then it had to get some extra capacity and ended up spending $20 million more than forecasted.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 id="vendorlockin">2. You will get locked-in with AWS</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>By entering into this type of contract with AWS, you’re running the risk of <a href="https://cast.ai/blog/vendor-lock-in-and-how-to-break-free/">vendor lock-in</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This means that <strong>you'll become dependent on AWS</strong> <strong>for one or three years</strong>. Using the products and services of another provider won’t make any sense when you’ve already paid for services upfront. It would also generate substantial switching costs.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>But what if AWS doesn’t have a solution for a challenge your team is going to face in 10 months from the moment you sign the contract?&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 id="losingflexibility">3. You will lose all flexibility</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Your requirements might change in the future. When was the last time you had to deal with a requirement that stayed static for a year or two?</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"className":"is-style-large"} -->
<blockquote class="wp-block-quote is-style-large"><p>When facing a new challenge, your team might have to commit to even more or get stuck with unused capacity that you’ve already paid for. Either way, you’re on the losing side.</p></blockquote>
<!-- /wp:quote -->

<!-- wp:paragraph -->
<p>You’ll have no flexibility of scaling or ability to configure multi-region/zone distribution easily.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="reservedinstancessetupisdifficult">Also, setting up AWS Reserved Instances is super difficult</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Selecting the optimal Reserved Instance that will meet your application’s workload needs is very complicated, to say the least.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Keeping pace with the latest AWS offerings and choosing from nearly <a href="https://cast.ai/blog/400-ec2-instance-types-the-good-the-bad-and-the-ugly/">400 EC2 instance types</a> is already a challenge. Add to it the need to analyze your application’s needs and workload patterns.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Manual methods are time-consuming and imprecise, making the entire endeavor quite risky.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"className":"is-style-large"} -->
<blockquote class="wp-block-quote is-style-large"><p>Using solutions for cloud bill analysis to determine your Reserved Instances or Savings Plans requirements is a bad idea. The insights they provide might lead you to reserving capacity based on the instance you’re using now, even if they’re the wrong type and size.&nbsp;</p></blockquote>
<!-- /wp:quote -->

<!-- wp:paragraph -->
<p>When you reserve the wrong instances, you’ll end up overprovisioning your application and wasting a lot of money in the long run.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="savingsplansarentasolution">And AWS Savings Plans aren’t going to save you</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A Savings Plan could be the answer to the lack of flexibility of Reserved Instances.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>When buying a Savings Plan, you’re committing to a specific amount of compute that your teams can use over 1 or 3 years. All the usage that's part of your commitment will be covered by your contract. Anything extra will incur additional payments at the On-Demand rate.</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"className":"is-style-large"} -->
<blockquote class="wp-block-quote is-style-large"><p>Sure, you’re not committing to specific instance types and configurations. But you’re still running the risk of locking yourself in with AWS. And you commit to paying for cloud resources that might make zero sense for your company in 1 or 3 years.&nbsp;</p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading -->
<h2 id="howtosolvethis">How to deal with that? Simple, avoid Reserved Instances and Savings Plans</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Instead of falling into the trap of reserving capacity upfront for a discounted price, consider cloud cost optimization techniques such as rightsizing, autoscaling, and Spot Instances.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>They allow you to stay flexible and reduce your cloud bill by making sure that your teams provision just what they need.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Try this free <a href="https://cast.ai/eks-optimizer/">Savings Report</a> before committing to a pricy Savings Plan to see how much you could potentially save while retaining the flexibility.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph /-->