Reserved Instances (RIs) are a great way to save some money if you've got consistent AWS EC2 usage, without needing to make changes to your instances!
Unfortunately, the documentation is dry at best.
This post is a cheatsheet for everything you need to know about Reserved Instances (RIs).
Thanks to the other AWS Ambassadors who gave great feedback on thsi article!
RIs are applied to your bill, not the actual instances. You can't see if an instance is "reserved" in the EC2 Console because the instances don't have a special status themselves. In order to confirm your RI usage, you'll have to look at your cost/billing reports. Since these are reconciled as part of your monthly bill (depending on your payment options), you can only see which instances they applied to after the fact.
- Region based aka. Regional
- Availability Zone (AZ) based aka. Zonal
Regional RIs can be used towards multiple smaller instances of the same family. For example, this means your
m4.2xlarge reservation can be used to pay for two
m4.xlarge instances (only for Linux, shared tenancy reservations, subject to AZ capacity). Your zonal RIs have no instance size flexibility.
RIs can be purchased for two durations:
- 1 year
- 3 years
Reservations have the following attributes:
- Type: The instance type and size e.g.
- Platform: Linux/UNIX, SUSE Linux, RHEL, Microsoft Windows Server, and Microsoft SQL Server
- Tenancy: Default (shared) or dedicated
There are three types of RIs:
- Convertible: Can change instance families, operating system, tenancy, and payment options. These get price reductions. Can't be resold (yet).
- Non-convertible: Change Availability Zone, instance size (only for unlicensed OSes), and networking type. They don't get price reductions. They can be re-sold in the RI Marketplace IF your banking institution has a US-based address.
- Scheduled: I haven't had experience with these, and they only get a passing mention in the docs. As the name suggests, they are time-specific RIs for use if you only need an instance for a fraction of a day/week/month. They're also only available in three regions: US East (N. Virginia), US West (Oregon), and Europe (Ireland).
- All Upfront
- Partial Upfront
- No Upfront (aka. Monthly)
RIs are shared by billing construct (i.e. Organization or consolidated billing), and are not limited to a single account.
In order to change your RIs to a different family, you need a convertible reservation.
Given the rate at which AWS releasing instance types, you definitely need to keep this in mind when purchasing your RIs; Especially when you consider that the new generations of families tend to be not only faster, but also cheaper (even if only slightly). This is probably most notable for those types still being converted over to the Nitro hypervisor, so maybe this will slow down once that's done.
Return on Investment
ROI for your RIs kicks in at 70% utilization
Getting RIs usage perfect is hard, because it relies you being able to predict the future. If you work out how to do this (predict the future), then please get in touch as I have a few questions about some football matches for you...
Ideally you have a bunch of existing data (aka. AWS usage) to use before you make your decision, but as the small text in the disclaimers say: "past performance is no guarantee of future returns".
In practice you should focus on purchasing RIs for your current usage, and not worry too much about trying to predict the future. That way you can be confident that you've maximized your savings, without locking yourself in to a regrettable contract.
Since RIs are tied to a specific region, you need to know in advance where your usage will be located. For most users this won't be too hard to work out.
Another interesting reason for purchasing RIs is in the Disaster Recovery (DR) space; A zonal reserved instance gives you preferential access to capacity in an AZ.
This means in the event of an AZ outage, those that have RIs in other AZs in the region will have preference on the available resources before those that only have on-demand instances or regional IRs. Obviously this is not a common scenario, but if your business needs a specific DR capacity and you don't want to get any nasty surprises while you're failing-over (like
InsufficientInstanceCapacity), then RIs should be part of your planning.
Should be periodically reviewed. Should be owned by a single team, since individual teams probably don't have the holistic view to usage.
- The Reserved Instances page for all the latest details
- The Reserved Instances Pricing page for all the numbers
- Use the AWS Pricing Calculator, or the original Simple Monthly Calculator to calculate your reserved instances and on-demand pricing.
Photo by Ali Yahya on Unsplash