Manage and Retire EC2 Capacity Reservations for Electronic Design Automation Workloads
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 cancel | Charge |
|---|---|
| 8+ weeks before the original start date | No charge |
| 2–8 weeks before the original start date | 25% of total commitment duration at On-Demand rate |
| Within 2 weeks of the original start date | 50% of total commitment duration at On-Demand rate |
| After delivery, during the active commitment | 50% 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:
-
Generate a cancellation quote:
aws ec2 create-capacity-reservation-cancellation-quote \ --capacity-reservation-id cr-1234567890abcdef0 -
Review the
CancellationTermsin the response — specificallyChargeCommitmentDurationHoursandChargeEndDate. -
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
| Aspect | Immediate ODCR | Future-Dated ODCR (FDCR) |
|---|---|---|
| Cancellation | Free, instant, any time | Charges apply (see rate table above) |
| Scale down | To zero (effectively cancel) | Cannot go below committed count during commitment |
| Billing on cancel | Stops immediately | Continues at On-Demand rate through charge period |
| Modification | Scale up/down freely | Can scale up; cannot reduce below committed count |
| State after cancel | cancelled (immediate) | cancelling → cancelled (after charge period ends) |
If your EDA project timeline changes
Before cancelling and incurring charges, consider these alternatives in order:
- 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.
- 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.
- 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.
- 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.
| Pitfall | Impact | Mitigation |
|---|---|---|
| Platform mismatch (RHEL vs. Linux/UNIX) | ODCR goes unused while you pay full On-Demand rates | Verify AMI platform with describe-images before creating the ODCR |
| Accepting ODCR before Savings Plans are active | On-Demand rates apply from the moment of acceptance | Confirm Savings Plans or Reserved Instance commitments are active before the ODCR becomes active |
| Creating immediate ODCR when pool is exhausted | ODCR creation fails | Use future-dated ODCRs (5–120 days) for constrained instance types |
| Forgetting to cancel after project ends | Ongoing charges for idle capacity | Set specific end dates and monitor with CloudWatch underutilization alerts |
| Moving ODCRs with mismatched configurations | Move fails with error | Verify both source and destination ODCRs have matching instance type, platform, AZ, tenancy, placement group, and end time |
| Shared ODCR billing confusion | Unexpected charges across accounts | Use consolidated billing or explicitly assign billing responsibility when sharing via AWS RAM |
| Cancelling a future-dated ODCR during or near its commitment period | Cancellation 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 InsufficientInstanceCapacity | ODCR 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
awstemplateresource definitions withcapacityReservationTargetto 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
- Amazon EC2 On-Demand Capacity Reservations
- Capacity Blocks for ML
- Capacity Reservations in cluster placement groups
- AWS Resource Access Manager
- Amazon CloudWatch metrics for EC2
- Amazon EventBridge
- EC2 Capacity Reservation concepts
- Cancel a Capacity Reservation (charges)
- Capacity Reservation pricing and billing
Relevant content
asked 3 years ago
- Accepted Answer
asked 3 years ago
AWS OFFICIALUpdated 6 years ago