CapacityProvider
The CapacityProvider resource lets you manage AWS ECS CapacityProviders for your containerized applications, enabling you to control the scaling and availability of your resources.
Minimal Example
Section titled “Minimal Example”Create a basic ECS CapacityProvider with an Auto Scaling Group provider and a name:
import AWS from "alchemy/aws/control";
const basicCapacityProvider = await AWS.ECS.CapacityProvider("basicCapacityProvider", { autoScalingGroupProvider: { autoScalingGroupArn: "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:abcd1234-abcd-1234-abcd-123456789012:autoScalingGroupName/my-asg", managedScaling: { status: "ENABLED", targetCapacity: 80, minimumScalingStepSize: 1, maximumScalingStepSize: 100 }, managedTerminationProtection: "ENABLED" }, name: "BasicCapacityProvider"});
Advanced Configuration
Section titled “Advanced Configuration”Configure an ECS CapacityProvider with tags to help organize your resources:
const advancedCapacityProvider = await AWS.ECS.CapacityProvider("advancedCapacityProvider", { autoScalingGroupProvider: { autoScalingGroupArn: "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:abcd1234-abcd-1234-abcd-123456789012:autoScalingGroupName/my-asg", managedScaling: { status: "ENABLED", targetCapacity: 90, minimumScalingStepSize: 1, maximumScalingStepSize: 50 }, managedTerminationProtection: "DISABLED" }, tags: [ { key: "Environment", value: "Production" }, { key: "Project", value: "MyECSProject" } ], name: "AdvancedCapacityProvider"});
Scaling Configuration
Section titled “Scaling Configuration”Create a capacity provider that specifies scaling configurations for better cost management:
const scalingCapacityProvider = await AWS.ECS.CapacityProvider("scalingCapacityProvider", { autoScalingGroupProvider: { autoScalingGroupArn: "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:abcd1234-abcd-1234-abcd-123456789012:autoScalingGroupName/my-asg", managedScaling: { status: "ENABLED", targetCapacity: 70, minimumScalingStepSize: 1, maximumScalingStepSize: 10 }, managedTerminationProtection: "ENABLED" }, tags: [ { key: "Environment", value: "Staging" } ], name: "ScalingCapacityProvider"});
Using Existing Resources
Section titled “Using Existing Resources”Adopt an existing ECS CapacityProvider instead of failing when the resource already exists:
const existingCapacityProvider = await AWS.ECS.CapacityProvider("existingCapacityProvider", { autoScalingGroupProvider: { autoScalingGroupArn: "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:abcd1234-abcd-1234-abcd-123456789012:autoScalingGroupName/my-existing-asg", managedScaling: { status: "DISABLED" }, managedTerminationProtection: "DISABLED" }, adopt: true, name: "ExistingCapacityProvider"});