When to Use Targeted vs Open EC2 Capacity Reservations?
A team should use a targeted Capacity Reservation in Amazon EC2 when specific, critical workloads require guaranteed compute capacity and must be protected from other instances launching into that reserved pool. While open Capacity Reservations automatically fulfill any matching instance launch in an Availability Zone, targeted reservations require explicit assignment at launch time. This distinction allows engineering and cloud operations teams to isolate mission-critical infrastructure, enforce strict budget boundaries, and prevent accidental consumption of reserved capacity by non-essential services.
Understanding Amazon EC2 Capacity Reservations
Amazon EC2 On-Demand Capacity Reservations enable organizations to reserve compute capacity for Amazon EC2 instances in a specific Availability Zone for any duration. When creating a reservation, you specify the instance type, platform, tenancy, and Availability Zone. AWS holds that capacity for your account as long as the reservation remains active, ensuring you can launch instances whenever needed, even during periods of high regional demand or hardware constraints.
Capacity Reservations offer two distinct instance eligibility options: open and targeted. Both options reserve the exact same underlying hardware and incur identical billing rates, where you pay for the total reserved capacity \(C_{\text{reserved}}\) regardless of whether instances are actively running. If \(N_{\text{running}}\) represents the number of running instances matching the reservation attributes, the unused billed capacity \(C_{\text{unused}}\) is defined as:
\[C_{\text{unused}} = C_{\text{reserved}} - N_{\text{running}}\]
The difference between open and targeted reservations lies entirely in how new or existing EC2 instances consume \(C_{\text{reserved}}\).
How Open Capacity Reservations Work
An open Capacity Reservation is the default configuration when reserving capacity in Amazon EC2. Any instance launched in the same AWS account—or shared accounts via AWS Resource Access Manager (AWS RAM)—that matches the reservation attributes (Availability Zone, instance type, platform, and tenancy) automatically runs in the open Capacity Reservation.
Open reservations require zero modifications to existing launch templates, Auto Scaling configurations, or deployment scripts. If a developer launches a matching instance manually via the AWS Management Console or through an automated pipeline without specifying a reservation setting, EC2 automatically places the instance into the open reservation pool until the capacity is full.
How Targeted Capacity Reservations Work
A targeted Capacity Reservation restricts capacity access exclusively to instances that explicitly target that specific reservation ID or a Capacity Reservation group at launch. If an instance launches with matching attributes (same Availability Zone, instance type, and platform) but does not explicitly specify the targeted Capacity Reservation ID, it will not consume the reserved capacity. Instead, it launches into the standard public On-Demand pool.
Furthermore, you can configure instances to launch only if they can be placed into a targeted reservation, preventing workloads from accidentally overflowing into unreserved On-Demand capacity.
Key Scenarios for Choosing Targeted Capacity Reservations
1. Protecting Mission-Critical Workloads in Shared Accounts
In many cloud environments, multiple applications, microservices, and
teams share the same AWS account and Availability Zones. They also
commonly standardize on popular instance families, such as
m6i.xlarge or c7g.2xlarge.
If you create an open Capacity Reservation for
m6i.xlarge to guarantee capacity for a tier-1 payment
processing service, a developer running an ad-hoc testing cluster or a
background batch job using the same m6i.xlarge instance
type in that Availability Zone can inadvertently consume your reserved
capacity. When the payment processing service scales out, the reserved
capacity is already exhausted, potentially resulting in an
InsufficientInstanceCapacity error. Targeted Capacity
Reservations eliminate this risk by ensuring only the payment
service—configured with the reservation ID in its launch template—can
claim those reserved instances.
2. Disaster Recovery and High-Availability Failover
Disaster recovery (DR) architectures often rely on pilot-light or warm-standby strategies where core capacity is reserved in a secondary Availability Zone or region, waiting to scale up immediately during an outage.
Using a targeted Capacity Reservation ensures that your failover capacity remains strictly untouched during normal day-to-day operations. When a failover event triggers, your automated recovery runbooks or Auto Scaling groups target the specific reservation ID, guaranteeing that the exact compute footprint required for recovery is immediately available.
3. Strict Regulatory, Licensing, or Compliance Placement
Workloads subject to strict licensing agreements (such as bring-your-own-license software bound to specific hardware footprints) or regulatory frameworks often require deterministic infrastructure placement. By pairing targeted Capacity Reservations with specific launch templates and IAM policies, administrators can enforce that sensitive workloads only run inside designated, pre-allocated reservations, and conversely, that unapproved workloads cannot enter those reservations.
4. Multi-Account Sharing and Departmental Chargebacks
When using AWS Resource Access Manager (AWS RAM) to share Capacity Reservations across an AWS Organization, an open reservation allows any participating account within the organization to consume the capacity on a first-come, first-served basis.
If a central platform team purchases capacity specifically for two different business units, targeted reservations allow the platform team to allocate distinct reservation IDs or Capacity Reservation groups to each department. This ensures one business unit cannot starve another of its allocated and budgeted compute resources.
5. Specialized Hardware and GPU Allocation
High-demand instance families—such as GPU-accelerated instances
(p4d, p5, g5) used for machine
learning training and inference—frequently experience capacity
constraints. When an organization secures a Capacity Reservation for
accelerated computing, different ML teams often compete for those nodes.
By using targeted Capacity Reservations, MLOps platforms can orchestrate
job queues and explicitly assign specific training jobs to specific
reservations, preventing lower-priority experiments from monopolizing
scarce GPU instances.
Grouping Targeted Reservations for Flexibility
A common concern with targeted Capacity Reservations is the operational overhead of hardcoding specific Capacity Reservation IDs into launch templates or Auto Scaling groups. To solve this, AWS provides Capacity Reservation groups via AWS Resource Groups.
Teams can add multiple targeted Capacity Reservations to a logical group and configure their EC2 launch templates to target the group ARN rather than an individual reservation ID. This approach preserves the strict access controls of targeted reservations while allowing cloud administrators to add, modify, or replace underlying reservations without updating application deployment templates.
Summary of Selection Criteria
| Evaluation Criteria | Open Capacity Reservation | Targeted Capacity Reservation |
|---|---|---|
| Instance Launch Configuration | No changes required to existing launch templates | Requires specifying a Reservation ID or Group ARN |
| Consumption Behavior | Automatically used by any matching instance | Used only by instances that explicitly target it |
| Best For | Dedicated single-workload accounts or general baseline capacity | Shared accounts, DR standby, critical apps, and scarce instance types |
| Risk of "Noisy Neighbor" Theft | High if multiple workloads share instance types in the same AZ | None; unauthorized workloads are blocked from the pool |
| Operational Complexity | Low (set and forget) | Moderate (requires launch template and IAM coordination) |
Enforcing Governance with IAM
To maximize the effectiveness of targeted Capacity Reservations,
teams should pair them with AWS Identity and Access Management (IAM)
condition keys. Specifically, using the
ec2:CapacityReservationId condition key in IAM policies
allows security engineers to control which IAM roles or users are
permitted to launch instances into a specific targeted reservation.
Combining targeted reservations with IAM policies provides a complete
governance boundary, guaranteeing that reserved compute capacity is
always available for the exact workload it was provisioned to
support.