Skip to content

CapacityReservation ​

The CapacityReservation resource allows you to manage AWS EC2 CapacityReservations which provide dedicated capacity for EC2 instances in specific Availability Zones.

Minimal Example ​

Create a basic EC2 CapacityReservation with essential properties.

ts
import AWS from "alchemy/aws/control";

const capacityReservation = await AWS.EC2.CapacityReservation("myCapacityReservation", {
  instanceCount: 5,
  instanceType: "t3.medium",
  instancePlatform: "Linux/UNIX",
  availabilityZone: "us-west-2a"
});

Advanced Configuration ​

Configure an EC2 CapacityReservation with additional options like EBS optimization and tagging.

ts
const advancedCapacityReservation = await AWS.EC2.CapacityReservation("advancedCapacityReservation", {
  instanceCount: 10,
  instanceType: "m5.large",
  instancePlatform: "Linux/UNIX",
  availabilityZone: "us-west-2b",
  ebsOptimized: true,
  tagSpecifications: [{
    resourceType: "capacity-reservation",
    tags: {
      Name: "AdvancedCapacityReservation",
      Environment: "Production"
    }
  }]
});

Specifying End Dates ​

Create a CapacityReservation with a specified end date and billing owner ID.

ts
const timedCapacityReservation = await AWS.EC2.CapacityReservation("timedCapacityReservation", {
  instanceCount: 20,
  instanceType: "c5.xlarge",
  instancePlatform: "Linux/UNIX",
  availabilityZone: "us-east-1a",
  endDate: "2024-12-31T23:59:59Z",
  unusedReservationBillingOwnerId: "123456789012"
});

Using Placement Groups ​

Configure a CapacityReservation to use a specific placement group.

ts
const placementGroupCapacityReservation = await AWS.EC2.CapacityReservation("placementGroupCapacityReservation", {
  instanceCount: 6,
  instanceType: "r5.2xlarge",
  instancePlatform: "Linux/UNIX",
  availabilityZone: "us-east-1b",
  placementGroupArn: "arn:aws:ec2:us-east-1:123456789012:placement-group/myPlacementGroup"
});