Amazon EC2 Reserved Instances aren’t a magic bullet for guaranteeing instance availability; they’re primarily a pricing discount mechanism.

Let’s see how this plays out in practice. Imagine you’re running a critical application on EC2 and want to ensure you always have instances available, even during peak demand. You might think, "I’ll just buy a Reserved Instance (RI) for that instance type."

Here’s a typical setup for a Linux instance:

aws ec2 purchase-reserved-instances \
    --instance-type c5.large \
    --availability-zone us-east-1a \
    --instance-count 5 \
    --duration 31536000 \
    --product-description "Linux/UNIX" \
    --billing-product-code AWS-ECHO-RI-12345 \
    --region us-east-1

You’ve just purchased 5 c5.large Reserved Instances for one year in us-east-1a. This doesn’t mean AWS will hold 5 c5.large instances specifically for you in that AZ. What it does mean is that if you launch 5 c5.large instances in us-east-1a that match the RI’s attributes (like OS, tenancy, and instance family), you’ll get a significant discount on their hourly usage.

The fundamental problem RIs solve is cost optimization for predictable workloads. If you know you’ll need a certain amount of compute capacity for at least a year, RIs offer substantial savings compared to On-Demand pricing. The "guarantee" aspect is a common misconception. RIs provide a billing discount for matching usage, not a reservation of physical hardware.

The mental model to build is one of financial commitment for predictable usage. When you buy an RI, you’re essentially entering into a contract with AWS. You commit to paying for a certain amount of instance usage over a specified term (1 or 3 years) in exchange for a lower hourly rate. This commitment applies to instances that match the RI’s configuration (instance type, OS, tenancy, region, and in some cases, Availability Zone).

If you have an active RI for, say, c5.large in us-east-1a, and you launch a c5.large instance in us-east-1a, the RI’s discount is automatically applied to that instance’s usage. If you have multiple RIs and multiple matching instances, the discount is applied to the On-Demand instances that are already running, up to the limit of your RI capacity. Importantly, RIs are applied at the account level within a region, not to specific instances.

The actual mechanism for ensuring availability, especially during high demand, lies in AWS’s overall capacity planning and your ability to provision instances promptly. While RIs don’t reserve hardware, AWS does maintain a large pool of capacity, and during normal operations, you can launch instances as needed. For true availability guarantees in critical scenarios, consider AWS Spot Fleet with target capacity, Auto Scaling Groups with desired capacity, or even Dedicated Hosts if you need physical server isolation and want to manage your own instance placement.

What most people don’t realize is that RIs can be converted to "flexible" RIs (which allow the discount to apply to any instance type within the same family, e.g., c5.xlarge, c5.2xlarge) or modified to change the Availability Zone or instance type, though these modifications are subject to certain limitations and may incur a true-up cost if the new configuration is more expensive. This flexibility can be a powerful tool for adapting your cost savings to evolving needs without losing the discount.

The next step in mastering EC2 cost and capacity is understanding how Auto Scaling Groups interact with Reserved Instances.

Want structured learning?

Take the full Ec2 course →