ScalingPolicy
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 }});