There is nothing I love more than saving money (except maybe delicious food). And I don’t know too many people who don’t love saving money, not to mention making the accounting department happy!
Today, I’m here to introduce a way to save money on AWS that is often feared because of its perceived (or actual) complexity. It’s called “Reserved Instances (RI),” and it’s available for many popular AWS services such as Amazon EC2, Amazon RDS, Amazon Elasticsearch, Amazon ElastiCache, Amazon DynamoDB, and Amazon Redshift, etc.
You might remember buying coupons on Groupon for 50% off a $100 meal at a local restaurant for a frugal date night. In both cases, in exchange for making a commitment and paying in advance, you’ve locked in a deal for a discounted rate.
AWS Reserved Instances (RI) work in similar ways, allowing you to pay steeply discounted rates, compared to paying hourly. For Amazon EC2, AWS’s virtual server service, you could save up to 75% off hourly rates by using Reserved Instances!
Capacity reservations using Reserved Instances are available with Amazon EC2, Amazon RDS, Amazon Elasticsearch, Amazon ElastiCache, and Amazon Redshift.
There are many moving parts in how much resource capacities you need for your products or services. It’s hard to guess what the demands will be for specific AWS resources, especially at product launch. You don’t want to commit to too little… or too much for any of your resources. The allure of Cloud Computing platforms like Amazon Web Services is that you can use as much… or as little as you want, month to month, and you will only be billed for what you use.
So why would you want to reserve capacities with AWS Reserved Instances? Doesn’t that go against the “On-Demand” feature of Cloud Computing?
You’re absolutely right.
By purchasing AWS Reserved Instances, you are committing to pay discounted prices in advance, which is a little like purchasing that physical server for your on-premises data center before you start a new project. However, unlike physical servers, doing so allows you to save a lot of money… As long as you are utilizing the Reserved Instances beyond their “break even point.”
The “break even point” is the point at which the savings from reserving the instance is realized. If you bought a “$200 for $100” voucher for your favorite Italian restaurant, your “break even point” is eating at least $100 worth of food so that you get your money’s worth. Beyond that, you’re saving money.
As your products mature, you might begin seeing patterns for resource usage. You might find that every month, you are using a certain amount of compute resources with your Amazon EC2 instances. Or you might find that your database usage is fairly consistent month to month up to a certain point, and feel ready to commit to reserving that amount of Amazon Redshift resources upfront.
When you establish predictable resource usage for certain services, it might be time to consider paying upfront to make capacity reservations to save big.
There are two ways to make reservations for EC2 Reserved Instances: Regional and Zonal. Regional Reserved Instances are purchased for a whole Region, and provide Availability Zone flexibility. Zonal Reserved Instances are assigned to a specific Availability Zone, and cannot be moved from one Availability Zone to another. (Remember: a Region includes multiple Availability Zones.)
You can make capacity reservation for a term of 1 or 3 years. This means that you are committing to purchase certain amount of capacity for 1 or 3 years, and then paying for it upfront. In exchange, you will be able to purchase the capacity for substantially lower prices than if you purchased them On-Demand. As you might expect, purchasing a 3 year term offers bigger discounts.
There are two types of Reserved Instances: Standard, and Convertible. Standard Reserved Instances have some modifiable features after purchase, like instance size, but you cannot change the instance family. With Convertible Reserved Instance, you can exchange the instance with another Convertible Reserved Instance with new attributes like instance family, type, and platform. You can also modify some attributes.
With Standard RI, you can modify but not exchange, and with Convertible RI, you can both modify and exchange features. As you might expect, Standard RIs are cheaper than Convertible RIs, but lack the flexibility, which may be detrimental depending on the situation.
There are four attributes that affect pricing with Reserved Instances on EC2s. They are instance types, platform, scope, and tenancy. You can think of these attributes like features on a server like the operating system running.
There are also different ways to pay for the Reserved Instances. You can pay for everything upfront, partially upfront, or nothing upfront. The more you pay upfront, the less you have to pay. And whatever you didn’t pay upfront, you will be paying in monthly installments.
No upfront reservation might seem counter-intuitive. Isn’t it the same as On-Demand? The reason why it’s different from On-Demand is because you are committing to a term of 1 or 3 years, even though you are paying monthly. So you are still eligible for discounts (though not as much as paying all or partially upfront) because you’ve made a reservation commitment. It’s worth noting though, that even if you don’t end up using up your RIs, you still have to pay for it.
Have multiple AWS accounts in your organization? No problem! Your Reserved Instances can “float” across all of your linked accounts.
You can link multiple AWS accounts using a feature in AWS called Consolidated Billing, and doing so allows you to utilize many resources and discounts as though all of the accounts are “one” big account! Thankfully, Reserved Instances are one of the resources that can be utilized across all linked accounts.
You can purchase your Reserved Instances using AWS Management Console or API tools. For example, to purchase Reserved Instances for EC2, you can log into your AWS management Console, navigate to the EC2 section, and find “Reserved Instances” on the left navigation pane to purchase.
In the process, you might find even further discounted capacities from 3rd party sellers! Third party sellers are people or companies like you or me, who bought Reserved Instances, but later found that they no longer need them. You don’t have to worry about the quality of the instance you will be buying either; all Reserved Instances sold by 3rd party sellers are legitimate and identical to what you would get if you bought them directly from AWS.
This also means that if you bought more capacity than you need, you also have the option of selling on the Reserved Instance Marketplace as a 3rd party seller to potentially mitigate the financial losses. This feature is important, because purchases of AWS Reserved Instances are non-refundable. However, keep in mind that Convertible Reserved Instances cannot be resold in the Marketplace.
Unfortunately, your work is not done once you click that “buy” button on your Reserved Instances. You need to actively monitor them to make sure you are utilizing them to their fullest potential. What’s the “break-even point” of each RI? Are you hitting it, or are you way off the mark? Thankfully, there’s a service that can help you monitor all that and send you daily reports, called CloudForecast.
CloudForecast can help you monitor Reserved Instances utilization and expiration so your capacity reservations don’t go to waste! You can get daily reports in multiple channels like email, Slack, and PagerDuty, written in languages easy to understand!
Take the guesswork out of your Reserved Instances utilization by giving CloudForecast a try… And your to-do lists and accounting department will thank you!
This post was originally published on CloudForecast Blog!