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.

Locations

Region based aka. Regional

Availability Zone (AZ) based aka. Zonal

Sizes

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.

Duration

RIs can be purchased for two durations:

1 year

3 years

Attributes

Reservations have the following attributes:

Type: The instance type and size e.g. c4.xlarge

Platform: Linux/UNIX, SUSE Linux, RHEL, Microsoft Windows Server, and Microsoft SQL Server

Tenancy: Default (shared) or dedicated

Types

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).

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).

Payment Options

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.

Recommendations

Instance Families

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.

Regions

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.

Disaster Recovery

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.

Review

Should be periodically reviewed. Should be owned by a single team, since individual teams probably don't have the holistic view to usage.

It's worth noting that a regular review of you AWS usage is one of the specific questions in AWS' own Well-Architected Framework - Cost Optimization gets its own pillar in the framework!

Official Documentation

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