ScalingPolicy
Learn how to create, update, and manage AWS AutoScaling ScalingPolicys using Alchemy Cloud Control.
The ScalingPolicy resource lets you manage AWS AutoScaling ScalingPolicys for automatically scaling your resources based on demand.
Minimal Example
Section titled “Minimal Example”Create a basic scaling policy that adjusts the desired capacity of an Auto Scaling group.
import AWS from "alchemy/aws/control";
const basicScalingPolicy = await AWS.AutoScaling.ScalingPolicy("basicScalingPolicy", { AutoScalingGroupName: "my-auto-scaling-group", ScalingAdjustment: 1, AdjustmentType: "ChangeInCapacity", Cooldown: "300"});
Advanced Configuration
Section titled “Advanced Configuration”Configure a scaling policy with step adjustments and a cooldown period for more fine-tuned scaling behavior.
const advancedScalingPolicy = await AWS.AutoScaling.ScalingPolicy("advancedScalingPolicy", { AutoScalingGroupName: "my-auto-scaling-group", AdjustmentType: "ChangeInCapacity", StepAdjustments: [ { MetricIntervalLowerBound: 0, MetricIntervalUpperBound: 10, ScalingAdjustment: 2 }, { MetricIntervalLowerBound: 10, ScalingAdjustment: 3 } ], Cooldown: "300"});
Predictive Scaling Configuration
Section titled “Predictive Scaling Configuration”Create a scaling policy that includes predictive scaling configuration to proactively adjust capacity based on forecasted demand.
const predictiveScalingPolicy = await AWS.AutoScaling.ScalingPolicy("predictiveScalingPolicy", { AutoScalingGroupName: "my-auto-scaling-group", PredictiveScalingConfiguration: { PredefinedMetricPairSpecification: { PredefinedMetricType: "ASGAverageCPUUtilization", ResourceLabel: "my-auto-scaling-group" }, TargetValue: 50.0, EstimatedInstanceWarmup: 300 }, ScalingAdjustment: 2, AdjustmentType: "ChangeInCapacity"});
Target Tracking Configuration
Section titled “Target Tracking Configuration”Establish a scaling policy that uses target tracking to maintain a specific metric, such as average CPU utilization.
const targetTrackingScalingPolicy = await AWS.AutoScaling.ScalingPolicy("targetTrackingScalingPolicy", { AutoScalingGroupName: "my-auto-scaling-group", TargetTrackingConfiguration: { TargetValue: 50.0, PredefinedMetricSpecification: { PredefinedMetricType: "ASGAverageCPUUtilization" }, ScaleInCooldown: 300, ScaleOutCooldown: 300 }});