Skip to content

ScheduledAction ​

The ScheduledAction resource lets you manage AWS AutoScaling ScheduledActions to automate scaling actions for your Auto Scaling groups.

Minimal Example ​

Create a basic scheduled action to scale your Auto Scaling group with a desired capacity at a specific time.

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

const scheduledAction = await AWS.AutoScaling.ScheduledAction("scale-up-action", {
  AutoScalingGroupName: "my-auto-scaling-group",
  DesiredCapacity: 3,
  StartTime: "2023-10-01T12:00:00Z",
  EndTime: "2023-10-01T15:00:00Z"
});

Advanced Configuration ​

Configure a scheduled action with a recurrence pattern and timezone for repeating scaling activities.

ts
const recurringAction = await AWS.AutoScaling.ScheduledAction("recurring-scale-action", {
  AutoScalingGroupName: "my-auto-scaling-group",
  DesiredCapacity: 5,
  MinSize: 1,
  MaxSize: 10,
  Recurrence: "0 10 * * *", // Every day at 10:00 AM UTC
  TimeZone: "UTC"
});

Scaling Down During Off-Peak Hours ​

Set a scheduled action to scale down the Auto Scaling group during off-peak hours.

ts
const scaleDownAction = await AWS.AutoScaling.ScheduledAction("scale-down-action", {
  AutoScalingGroupName: "my-auto-scaling-group",
  DesiredCapacity: 1,
  StartTime: "2023-10-01T20:00:00Z",
  EndTime: "2023-10-01T23:00:00Z"
});

Complete Lifecycle Management ​

Manage both scaling up and down actions for a complete lifecycle management of your Auto Scaling group.

ts
const scaleUpAction = await AWS.AutoScaling.ScheduledAction("scale-up-action", {
  AutoScalingGroupName: "my-auto-scaling-group",
  DesiredCapacity: 5,
  StartTime: "2023-10-01T08:00:00Z"
});

const scaleDownAction = await AWS.AutoScaling.ScheduledAction("scale-down-action", {
  AutoScalingGroupName: "my-auto-scaling-group",
  DesiredCapacity: 2,
  StartTime: "2023-10-01T18:00:00Z"
});