Skip to content

WarmPool ​

The WarmPool resource lets you manage AWS AutoScaling WarmPools that help reduce the time it takes to launch EC2 instances in response to scaling events.

Minimal Example ​

Create a basic WarmPool with required properties and a common optional property.

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

const warmPool = await AWS.AutoScaling.WarmPool("myWarmPool", {
  AutoScalingGroupName: "myAutoScalingGroup",
  MinSize: 2
});

Advanced Configuration ​

Configure a WarmPool with additional settings including a reuse policy.

ts
const advancedWarmPool = await AWS.AutoScaling.WarmPool("advancedWarmPool", {
  AutoScalingGroupName: "myAutoScalingGroup",
  MinSize: 2,
  MaxGroupPreparedCapacity: 5,
  InstanceReusePolicy: {
    ReuseOnScaleIn: true,
    ReuseOnScaleOut: false
  }
});

Specific Use Case: Instance Reuse Policy ​

Create a WarmPool with a specific instance reuse policy for scaling in.

ts
const reusePolicyWarmPool = await AWS.AutoScaling.WarmPool("reusePolicyWarmPool", {
  AutoScalingGroupName: "myAutoScalingGroup",
  MinSize: 3,
  InstanceReusePolicy: {
    ReuseOnScaleIn: true,
    ReuseOnScaleOut: true
  }
});

Specific Use Case: Pool State Management ​

Set up a WarmPool with a defined pool state.

ts
const stateManagedWarmPool = await AWS.AutoScaling.WarmPool("stateManagedWarmPool", {
  AutoScalingGroupName: "myAutoScalingGroup",
  MinSize: 1,
  PoolState: "Pending"
});