What Is an Amazon EC2 On-Demand Capacity Reservation?

An Amazon EC2 On-Demand Capacity Reservation enables you to reserve compute capacity for your Amazon EC2 instances in a specific Availability Zone for any duration. By creating a reservation, you ensure that you always have access to EC2 capacity when you need it, protecting critical workloads from capacity constraints during peak demand or regional scaling events. Unlike standard Savings Plans or Reserved Instances that primarily offer billing discounts, On-Demand Capacity Reservations strictly guarantee physical hardware availability and can be created, modified, or canceled at any time without a long-term commitment.

How Capacity Reservations Guarantee Compute Availability

When you launch a standard On-Demand EC2 instance without a reservation, your request competes for available hardware in the AWS data center pool. During periods of high demand, an Availability Zone can occasionally run out of specific instance types, resulting in an InsufficientInstanceCapacity error.

An On-Demand Capacity Reservation eliminates this risk through a straightforward allocation mechanism:

  1. Attribute Specification: You request a reservation by specifying the exact attributes of the capacity you need: the Availability Zone, instance type (such as m6i.xlarge), platform/operating system (Linux/UNIX, Windows, RHEL, etc.), and tenancy (default shared tenancy or dedicated tenancy).
  2. Immediate Hardware Provisioning: Before confirming the reservation, AWS verifies that sufficient physical hardware exists in the target Availability Zone. Once the reservation enters the active state, AWS physically sets aside and locks those exact compute resources exclusively for your account.
  3. Protected Capacity Pool: No other AWS customer can consume those reserved slots. Whether you launch an instance into that capacity immediately or leave it idle for weeks as a disaster recovery standby, the underlying physical host capacity remains waiting for your launch API call.

Open vs. Targeted Capacity Reservations

When creating an On-Demand Capacity Reservation, you can control how newly launched or existing running instances consume the reserved capacity by selecting one of two instance matching criteria:

  • Open Capacity Reservations: Any new or already running On-Demand instance in your account that matches the reservation's attributes (Availability Zone, instance type, platform, and tenancy) automatically runs in the reserved capacity. You do not need to modify your launch scripts or Auto Scaling groups; AWS automatically binds matching instances to the open reservation until the reserved slot count is full.
  • Targeted Capacity Reservations: Capacity is strictly held for instances that explicitly specify the Capacity Reservation ID or belong to a targeted Capacity Reservation group at launch time. If another team or service in your account launches an instance with matching attributes without specifying the reservation ID, it will draw from the public On-Demand pool instead of consuming your reserved slots. This is ideal for isolating capacity for mission-critical applications or disaster recovery failovers.

Pricing and Billing Mechanics

When an On-Demand Capacity Reservation is active, you pay the standard On-Demand rate for the reserved capacity whether you run instances in it or not. There is no upfront fee and no extra surcharge for the reservation itself.

If the total number of reserved instance slots is \(N_{\text{reserved}}\) and the number of matching running instances using the reservation is \(N_{\text{used}}\) (where \(N_{\text{used}} \le N_{\text{reserved}}\)), the number of unused slots billed to your account is:

\[N_{\text{unused}} = N_{\text{reserved}} - N_{\text{used}}\]

Your total hourly compute cost \(C_{\text{total}}\) at an hourly On-Demand rate \(R\) is simply:

\[C_{\text{total}} = R \times N_{\text{used}} + R \times N_{\text{unused}} = R \times N_{\text{reserved}}\]

To optimize costs, you can combine On-Demand Capacity Reservations with Regional Reserved Instances or Compute/EC2 Instance Savings Plans. In this pairing:

  • The On-Demand Capacity Reservation guarantees the physical compute availability in a specific Availability Zone.
  • The Savings Plan or Regional Reserved Instance automatically applies its discounted billing rate to both used (\(N_{\text{used}}\)) and unused (\(N_{\text{unused}}\)) capacity reservation slots that match the commitment.

Key Use Cases for On-Demand Capacity Reservations

Organizations typically deploy On-Demand Capacity Reservations in several key scenarios:

  • Disaster Recovery and Failover: Maintaining warm or cold standby architectures in a secondary Availability Zone or Region where compute capacity must be 100% guaranteed during an emergency failover event.
  • High-Demand Event Scaling: Securing compute capacity days ahead of product launches, seasonal retail events, or scheduled batch processing windows without committing to a 1-year or 3-year contract.
  • Specialized or Scarce Hardware: Retaining access to high-demand GPU, machine learning, or bare-metal instance types when stopping and restarting instances for maintenance, ensuring no other customer claims the hardware while your instance is stopped.
  • Cross-Account Capacity Sharing: Using AWS Resource Access Manager (AWS RAM) to share a centralized pool of reserved capacity across multiple member accounts within an AWS Organization, allowing different workloads to share and maximize reserved slot utilization.