Among the various AWS instances types that can be used for cost savings (if chosen effectively), AWS Reserved Instances deserve to be in a category of their own. Unlike other instance types, Reserved Instances allow you to get the same compute power as On-Demand, but with different payment structures and pricing.
On Demand and Reserved Instances — What’s the Difference?
There is no functional difference between On-Demand and Reserved Instances — it’s all in the billing. A Reserved Instance (RI) is an instance rented for a fixed period of time at a lower rate (per-hour or per-second) than basic AWS On- Demand instances. All you’re doing is committing to usage in exchange for a lower hourly cost, which AWS applies to your bill after the month closes, based on the instances that match up to your workload.
Reserved Instances come with the same families, OS types, and instance sizes as On-Demand. The only catch is that with RIs you can only use certain instance types depending on the purchasing plan you choose. Purchasing options are as follows:
- Standard RIs — For steady, consistent workloads and max savings.
- Convertible RIs — Less of a discount compared to On-Demand instances, but offer the most flexibility to change families, OS types, and tenancies.
- Scheduled RIs — a lot like Standard RIs, but only applies to instances deployed within a certain time frame, recurring on a daily, weekly, or monthly schedule.
With the understanding that Convertible and Scheduled RIs save less money when compared to On-Demand, let’s focus on Standard RIs — the maximum savings option. So the question is: Reserved Instance or On-Demand? A Reserved Instance, because it’s cheaper. Right?
What’s the Price Difference?
To understand the pricing difference between AWS versus On-Demand, let’s look at some pricing scenarios for the general purpose m4.large instance.
One-Year Term — Pay Upfront
With the lowest total cost of the three RI payment options — a m4.large RI, all upfront — you pay $507. On-Demand pricing for one year will cost you $876.
In this case, an AWS RI would theoretically deliver a 42% savings, giving you seven months or so to use your Reserved Instance to get to the annual cost benefit. However, this is under the assumption that all instances are utilized and that On-Demand pricing stays the same for the entire year (not likely). And remember that even when AWS drops prices for On-Demand or Reserved Instances, you’re still paying for the RIs you already purchased at the rate from the day you purchased them.
What if AWS lowered m4 instance prices by 30% a few months after the start your RI contract? It happened in March 2014, and dropped by 25% in November 2016, and up tp 17% in May 2017. If it were to happen again at 30%, the On-Demand price of the m4.large instance could lower down to $657. With the new pricing, your annual savings is only 23%, not the 42% you bargained for.
One-Year Term — Nothing Upfront
What if you chose the RI but paid nothing upfront for the m4.large? You’d pay $45.26 monthly for 38% savings compared to on-demand prices.
Now let’s say that AWS drops on-demand prices 30% in month three of your contract. Your new savings rate dwindles to 17% with the old monthly pricing.
New and lower prices are not guaranteed, but it’s important to consider that with ongoing increase in cloud computing and competition between cloud service providers to take market share from AWS, it’s likely that prices will be driven lower. While it probably won’t be as steep as 30% per year, 5%-10% reductions are in the realm of possibility.
Three-Year Term — Pay Upfront
In addition, there’s the three-year term for the same instance type. If you went with an RI, upfront, you pay $968. Looking at on-demand cost over a three-year period, assuming no change in pricing, it would cost you $2,628. This brings you to 63% savings by choosing an RI.
Now let’s assume On-Demand pricing drops by an average of 7% every year in March. In this scenario, the total cost of a single m4.large instance paid On-Demand for three years totals to $2,333. By paying the $968 upfront, your savings lowers from 63% to around 59%.
Reserved Instances are Frequently Underused
All these pricing scenarios operate on the same assumption — that if you purchase a Reserved Instance, it will be used to its full capacity. In reality, that’s usually not the case. Oversight, obscurity in the RI application and billing process, or simply changes in usage and business needs often result in instances being underused or not used at all.
Unused RIs are actually so common that AWS came up with an entire marketplace for users to buy and sell them from each other (since you can’t cancel them once your contract starts). Convertible RIs are also helpful because they allow you to shift between instance types.
Reserved Instances — Should You Buy Them?
In short: yes, but only for production environments. For non-production workloads (dev, test, QA, training, etc.), On-Demand is probably better.
As mentioned above, many RI’s are underutilized, so you may find better value by:
- Choosing smaller instance sizes.
- Using Spot Instances and Autoscaling when appropriate.
- Scheduling on/off times for On-Demand instances.
And remember, idle or unused cloud resources, including unused reserved instances can only waste money. Optimize your cloud spend by being aware of your usage, staying in tune with infrastructure needs, and running instances only when you need them.