aws_autoscaling_policy

Provides an AutoScaling Scaling Policy resource.

~> NOTE: You may want to omit desired_capacity attribute from attached aws_autoscaling_group when using autoscaling policies. It's good practice to pick either manual or dynamic (policy-based) scaling.

Example Usage

resource "aws_autoscaling_policy" "bat" {
  name = "foobar3-terraform-test"
  scaling_adjustment = 4
  adjustment_type = "ChangeInCapacity"
  cooldown = 300
  autoscaling_group_name = "${aws_autoscaling_group.bar.name}"
}

resource "aws_autoscaling_group" "bar" {
  availability_zones = ["us-east-1a"]
  name = "foobar3-terraform-test"
  max_size = 5
  min_size = 2
  health_check_grace_period = 300
  health_check_type = "ELB"
  force_delete = true
  launch_configuration = "${aws_launch_configuration.foo.name}"
}

Argument Reference

The following arguments are supported:

  • name - (Required) The name of the policy.
  • autoscaling_group_name - (Required) The name or ARN of the group.
  • adjustment_type - (Required) Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
  • policy_type - (Optional) The policy type, either "SimpleScaling" or "StepScaling". If this value isn't provided, AWS will default to "SimpleScaling."

The following arguments are only available to "SimpleScaling" type policies:

  • cooldown - (Optional) The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
  • scaling_adjustment - (Optional) The number of instances by which to scale. adjustment_type determines the interpretation of this number (e.g., as an absolute number or as a percentage of the existing Auto Scaling group size). A positive increment adds to the current capacity and a negative value removes from the current capacity.

The following arguments are only available to "StepScaling" type policies:

  • metric_aggregation_type - (Optional) The aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
  • estimated_instance_warmup - (Optional) The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
  • step_adjustments - (Optional) A set of adjustments that manage group scaling. These have the following structure:
step_adjustment {
  scaling_adjustment = -1
  metric_interval_lower_bound = 1.0
  metric_interval_upper_bound = 2.0
}
step_adjustment {
  scaling_adjustment = 1
  metric_interval_lower_bound = 2.0
  metric_interval_upper_bound = 3.0
}

The following fields are available in step adjustments:

  • scaling_adjustment - (Required) The number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
  • metric_interval_lower_bound - (Optional) The lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as infinity.
  • metric_interval_upper_bound - (Optional) The upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as infinity. The upper bound must be greater than the lower bound.

The following arguments are supported for backwards compatibility but should not be used:

  • min_adjustment_step - (Optional) Use min_adjustment_magnitude instead.

Attribute Reference

  • arn - The ARN assigned by AWS to the scaling policy.
  • name - The scaling policy's name.
  • autoscaling_group_name - The scaling policy's assigned autoscaling group.
  • adjustment_type - The scaling policy's adjustment type.
  • policy_type - The scaling policy's type.