Skip to content

Manage and Retire EC2 Capacity Reservations for Electronic Design Automation Workloads

12 minute read
Content level: Advanced
1

Demonstrate flexibility to scale, split, move, share, and retire EC2 On-Demand Capacity Reservations (ODCRs) as chip design projects progress through tapeout and completion.

By Aditi Singh (Sr. Technical Account Manager) and Aneesh Varghese (Sr. Technical Account Manager)

In Part 1: Plan and create EC2 Capacity Reservations for EDA workloads, you learned how to plan capacity needs for EDA workloads and create On-Demand Capacity Reservations (ODCRs) and Capacity Blocks.

In this post, you will learn how to manage On-Demand Capacity Reservations (ODCRs) as your chip design project progresses, and how to retire them promptly when they are no longer needed. Note: Capacity Blocks are immutable and cannot be modified or cancelled post creation.

Phase 3: Manage

As your EDA project moves through synthesis, place-and-route, and signoff, your capacity needs change. The manage phase covers scaling, redistribution, and optimization of your existing reservations.

Scale up or down

Scale up for tapeout ramp: Modify an existing ODCR for immediate use The following example scales up an existing ODCR to 20 instance:

aws ec2 modify-capacity-reservation \
  --capacity-reservation-id cr-0123456789abcdef0 \
  --instance-count 20

Scale down after tapeout completes: Modify an existing ODCR for immediate use The following example scales down an existing ODCR to 5 instance:

aws ec2 modify-capacity-reservation \
  --capacity-reservation-id cr-0123456789abcdef0 \
  --instance-count 5

Increasing ODCR size is subject to capacity availability. If unused capacity exists in another ODCR you own, moving or splitting that capacity is a better option than requesting additional capacity through a modify operation.

Split capacity across teams

When one design team finishes early and another needs capacity, use the split capability to divide an existing ODCR. The following example splits an existing ODCR owned by you into a new one:

aws ec2 create-capacity-reservation-by-splitting \
  --source-capacity-reservation-id cr-0123456789abcdef0 \
  --instance-count 25 \
  --tag-specifications 'ResourceType=capacity-reservation,Tags=[{Key=Team,Value=AnalogDesign}]'

This creates a new ODCR with 25 instances taken from the source reservation, without requiring new capacity allocation.

Move capacity between reservations

You can redistribute instances between two existing ODCRs:

aws ec2 move-capacity-reservation-instances \
  --source-capacity-reservation-id cr-source123 \
  --destination-capacity-reservation-id cr-dest456 \
  --instance-count 10

Both ODCRs must meet the following requirements: owned by the same account, in the active state, and have matching instance type, instance platform, Availability Zone, tenancy, placement group, and end time. For the complete list of requirements, see Move a Capacity Reservation in the Amazon EC2 documentation.

Moving is preferable to creating new ODCRs when capacity is constrained because it redistributes existing reserved capacity without requiring new allocation.

Share capacity across accounts

Semiconductor companies often use multiple AWS accounts per design team, per project, or per business unit. Use AWS Resource Access Manager (AWS RAM) to share ODCRs across accounts within your AWS Organizations organization.

You can split an ODCR and share the new portion with another account. When sharing ODCRs, be aware of billing behavior: the owner's account pays for the ODCR capacity, and the shared account is billed independently for its usage. Use consolidated billing or explicitly assign billing responsibility to avoid unexpected charges.

Use interruptible Capacity Reservations for off-peak workloads

Interruptible Capacity Reservations let you temporarily share unused ODCR capacity with other workloads in your organization while retaining the ability to reclaim it.

This is useful for EDA environments in several scenarios:

  • During off-peak hours your tapeout ODCR sits idle overnight, and regression or ML training jobs can use it until the design team starts their shift.
  • Between project phases after synthesis completes but before place-and-route starts, batch DRC jobs can consume the idle capacity.
  • For cross-team sharing one design team's idle ODCR can serve another team's burst needs.

For details on reclamation behavior and timing, see Interruptible Capacity Reservations in the Amazon EC2 documentation.

Monitor utilization

Set up monitoring to track ODCR usage and identify optimization opportunities. Use Amazon CloudWatch metrics to track the ratio of used instances to total reserved instances. Create Amazon EventBridge rules to alert when utilization drops below a threshold (for example, below 50 percent for more than 24 hours), which indicates an opportunity to scale down or cancel.

Phase 4: Retire

When a design phase or project completes, retire your Capacity Reservations promptly to stop incurring charges.

Cancel an ODCR

The following example cancels an existing ODCR

aws ec2 cancel-capacity-reservation \
  --capacity-reservation-id cr-0123456789abcdef0

Cancellation is immediate and irreversible, cancellation does not affect the instance state of EC2 instances. Running instances continue running at standard On-Demand rates, or at a discounted rate if you have a matching Savings Plans commitment or Regional Reserved Instance.

Follow these best practices when canceling:

  • Drain before canceling. Stop or migrate instances before canceling to avoid unexpected On-Demand charges on instances that were previously covered by Savings Plans matched to the ODCR.
  • Update job scheduler configuration. If your IBM Spectrum LSF, PBS Pro, Slurm, or AWS Batch configuration references the ODCR through launch templates or resource definitions, update it before canceling to prevent job launch failures.
  • Audit unused ODCRs regularly. Schedule monthly ODCR audits to cancel unused reservations and right-size active ones. An unused ODCR costs the same as running instances.
  • Use end dates for project-bound reservations. Instead of relying on manual cancellation, set a specific end date aligned with your project milestone. This prevents forgotten ODCRs from accumulating charges.

Cancel a future-dated ODCR

Future-dated ODCRs carry a commitment period. Unlike immediate ODCRs — which you can cancel freely at any time with no charge — future-dated reservations have financial implications tied to timing.

How cancellation charges work

When you cancel a future-dated Capacity Reservation, charges apply based on when you cancel relative to the start date:

When you cancelCharge
8+ weeks before the original start dateNo charge
2–8 weeks before the original start date25% of total commitment duration at On-Demand rate
Within 2 weeks of the original start date50% of total commitment duration at On-Demand rate
After delivery, during the active commitment50% of remaining commitment duration at On-Demand rate

Capacity is released immediately upon cancellation, but billing continues through the charge period. If you have matching Savings Plans or Regional Reserved Instances, the discounted rate applies automatically during the charge period.

To cancel programmatically:

  1. Generate a cancellation quote:

    aws ec2 create-capacity-reservation-cancellation-quote \
        --capacity-reservation-id cr-1234567890abcdef0
    
  2. Review the CancellationTerms in the response — specifically ChargeCommitmentDurationHours and ChargeEndDate.

  3. If you accept the terms, cancel with the quote ID:

    aws ec2 cancel-capacity-reservation \
        --capacity-reservation-id cr-1234567890abcdef0 \
        --quote-id crcq-1a2b3c4d5e6f7g8h9 \
        --apply-cancellation-charges commitment-wind-down
    

The cancellation quote is valid for 24 hours. After that, you must generate a new quote.

Important: You cannot cancel while instances are still running in the reserved capacity. Stop or terminate instances first. Cancellation is irreversible once you accept the quote.

Key differences from immediate ODCR cancellation

AspectImmediate ODCRFuture-Dated ODCR (FDCR)
CancellationFree, instant, any timeCharges apply (see rate table above)
Scale downTo zero (effectively cancel)Cannot go below committed count during commitment
Billing on cancelStops immediatelyContinues at On-Demand rate through charge period
ModificationScale up/down freelyCan scale up; cannot reduce below committed count
State after cancelcancelled (immediate)cancellingcancelled (after charge period ends)

If your EDA project timeline changes

Before cancelling and incurring charges, consider these alternatives in order:

  1. Redistribute capacity - Split or move the reserved instances to another active project in your organization that uses the same instance type and AZ. This keeps capacity utilized and avoids cancellation fees entirely.
  2. Share via AWS RAM - If another team or account needs the same instance type, share the ODCR rather than cancelling. The capacity stays reserved and productive.
  3. Wait for commitment to end - If the remaining commitment period is short (days to 1–2 weeks), it is often cheaper to let the ODCR expire naturally than to cancel and pay 50% of remaining commitment at On-Demand rate.
  4. Use shorter commitment durations aligned to individual design phases rather than long commitments spanning multiple phases. You can always create a new FDCR for the next phase. The minimum commitment is 14 days for most instance types, or 12 weeks for U and X instances.

Best practice for EDA

Align FDCR commitment durations to individual design phases — synthesis (2–4 weeks), place-and-route (4–6 weeks), tapeout (2–6 weeks) — rather than creating one long FDCR spanning the entire project. This gives you natural exit points between phases without cancellation fees, while still guaranteeing capacity for each critical milestone. Request each FDCR at least 56 days in advance for the best chance of approval.

Handle Capacity Block expiration

Capacity Blocks cannot be canceled. They expire automatically. Instance termination begins at 11:00 AM UTC on the final day, and the block fully expires at 11:30 AM UTC. Checkpoint ML training jobs and persist results to Amazon S3 or Amazon EBS before the termination window begins.

Common Pitfalls

The following table summarizes common mistakes and how to avoid them.

PitfallImpactMitigation
Platform mismatch (RHEL vs. Linux/UNIX)ODCR goes unused while you pay full On-Demand ratesVerify AMI platform with describe-images before creating the ODCR
Accepting ODCR before Savings Plans are activeOn-Demand rates apply from the moment of acceptanceConfirm Savings Plans or Reserved Instance commitments are active before the ODCR becomes active
Creating immediate ODCR when pool is exhaustedODCR creation failsUse future-dated ODCRs (5–120 days) for constrained instance types
Forgetting to cancel after project endsOngoing charges for idle capacitySet specific end dates and monitor with CloudWatch underutilization alerts
Moving ODCRs with mismatched configurationsMove fails with errorVerify both source and destination ODCRs have matching instance type, platform, AZ, tenancy, placement group, and end time
Shared ODCR billing confusionUnexpected charges across accountsUse consolidated billing or explicitly assign billing responsibility when sharing via AWS RAM
Cancelling a future-dated ODCR during or near its commitment periodCancellation charges apply at tiered rates: 25% of total commitment (2–8 weeks before start); 50% of total commitment (within 2 weeks of start); 50% of remaining commitment (after delivery, during active commitment). Capacity is released immediately but billing continues at On-Demand rate through the charge period. The reservation enters cancelling state and cannot be modified, moved, shared, or split until the charge period ends.Align commitment durations to individual EDA design phases (synthesis: 2–4 weeks, P&R: 4–6 weeks, tapeout: 2–6 weeks) rather than one long commitment. If a project is cancelled or delayed, redistribute capacity via split/move to another active project before cancelling. Share via AWS RAM if another account needs the same type. Generate a cancellation quote first (CreateCapacityReservationCancellationQuote) to understand the exact charge duration. Contact AWS Support early if a one-time fee waiver exception may be warranted — evaluated case by case, not guaranteed.
Requesting an immediate ODCR for a constrained instance type and receiving InsufficientInstanceCapacityODCR creation fails — no capacity is reserved and your tapeout deadline is at risk. Unlike instance launches which might succeed on retry, an ODCR creation failure means the AZ cannot allocate the requested pool right now.Maintain a fallback instance type hierarchy in your scheduler. For urgent needs where an immediate ODCR fails, contact your account team about assisted capacity options rather than repeatedly retrying.

EDA-Specific Recommendations

Integrate with your job scheduler

Most EDA environments use a job scheduler. Integrate ODCRs with your scheduler to direct jobs to reserved capacity. For example:

  • IBM Spectrum LSF: Use awstemplate resource definitions with capacityReservationTarget to direct jobs to specific ODCRs.
  • AWS ParallelCluster: Configure capacity reservation targeting in your cluster configuration to use ODCRs for compute nodes.
  • AWS Batch: Use launch template overrides to target ODCRs for specific compute environments.

Plan for tapeout peaks

Tapeout is the most capacity-intensive phase of chip design. Follow these best practices:

  • Request capacity 8 or more weeks in advance using future-dated ODCRs.
  • Reserve across two Availability Zones so that if one Availability Zone has issues, your tapeout is not blocked.
  • Include a 20–30 percent buffer above your estimated peak.
  • Set the end date 1–2 weeks after the planned tapeout completion to account for re-spins.
  • Monitor utilization daily during tapeout and scale down early if the project finishes ahead of schedule.

Summary

Capacity Reservations ensure availability of compute during critical design milestones, but unused reservations are wasted spend. Treat them as living resources that need active management throughout your design cycle. The key principles are: plan early with appropriate buffers, create reservations that match your workload patterns, monitor and adjust as your project progresses, and cancel promptly when work completes.

If you are just getting started with Capacity Reservations, begin with a single ODCR for your most predictable workload (such as a regression farm) and expand from there. If you already use ODCRs, review your utilization metrics and consider splitting or sharing idle capacity across teams.

Resources