AWS Reserved Instances Simplified
If you’re like most organizations using the cloud, you may be watching your cloud cost and usage growing at an alarming rate. You’ve read about AWS reserved instances (RIs) and understand that they can offer significant discounts. But actually making a purchase seems really complex.
What instance types should you purchase? What term should you commit to? Should you purchase no upfront, partial upfront or full upfront reservations? How will you know if you are effectively using your reservations? And the list goes on.
This blog is the first in a series designed to help you simplify the RI decision-making process.
What Are AWS Reserved Instances?
AWS Reserved Instances (RIs) allow you to make a commitment to AWS to utilize specific instance types in return for a discount on your compute costs, and a capacity reservation that guarantees your ability to run an instance of this type in the future.
A reservation provides customers two benefits: 1) a price reduction, and 2) a capacity reservation. The price reduction is well understood but the capacity reservation is sometimes overlooked. By purchasing a reserved instance, the capacity reservation guarantees you the right to launch an instance of the specified type for the term of the reservations.
A reservation consists of 6 components:
- Platform (e.g. Linux)
- Instance type (e.g. m3.large)
- Availability zone (e.g. us-east-1b)
- Tenancy, which is either default - Virtual Private Cloud - or Classic
- Term (typically 1 or 3 years, although variable terms can be found on the AWS Reserved Instance Marketplace)
- Type of reservation offering (e.g. no upfront)
As of April 2015, Amazon offers three types of reservations, two with extended commitment options:
How Do Reserved Instances Get Applied?
It is a common misconception that RIs are directly connected to specific launched instances. They are not. Instead, they are a simply pricing discount applied to any instance usage of a specific type (e.g. m3.large in us-east-1a running Linux). If you launch an instance that matches the example instance type, region, availability zone and operating system, at the end of the month you will be billed within the discounted percentage shown above, rather than the base on-demand amount.
Think back to a time before landline phone plans included unlimited long distance minutes. Imagine a telephone service that charges $.05 per minute of usage, but $0.02 per minute to certain locations, provided that you subscribe to a particular plan. Once you've prepaid for a reservation, your hourly charges (think phone minutes) will be billed at a reduced rate, but only for calls within a certain region. Call one (think: launch an instance) that is outside of your subscription area (read: instance type, region, AZ and OS) and you won't receive the discount that you signed up for. Because of this, it is of utmost importance to understand your instance usage by several factors, in order to maximize your return on investment.
Amazon implements this approach by evaluating the available reservations and running instances on an hourly basis, and then, randomly applying reservations to usage. Each usage of an instance for the hour gets evaluated to determine if there is an applicable reservation to cover it.
Since multiple different reservation types (upfront amount and reservation term) and instance usage can match, the selection of a reservation gives preference toward applying the lowest hourly rate first. It’s also worth noting that reservations have an affinity toward the account in which they were purchased.
The randomized approach of RIs is both a powerful feature and a source of constant confusion for customers. The confusion is often driven by customers purchasing RIs for a specific purpose (e.g. the marketing department), only to find its cost benefit is applied elsewhere.
Need help managing RI’s? See how we can help maximize your ROI.
Keep your eye out for our next post on how reservations work with a consolidated bill and what it means when they “float”.