Define Auto Scaling Configuration Variables

Create Terraform variables for auto scaling group settings including min/max/desired capacity with cross-field validation.

Resource Configuration

Detailed Explanation

Auto Scaling Configuration Variables

Auto scaling settings are critical for both performance and cost optimization. Well-defined variables with validation ensure scaling policies make sense before deployment.

Variable Definitions

variable "min_capacity" {
  type        = number
  description = "Minimum number of instances in the auto scaling group"
  default     = 1

  validation {
    condition     = var.min_capacity >= 0
    error_message = "Minimum capacity must be non-negative."
  }
}

variable "max_capacity" {
  type        = number
  description = "Maximum number of instances in the auto scaling group"
  default     = 4

  validation {
    condition     = var.max_capacity >= 1
    error_message = "Maximum capacity must be at least 1."
  }
}

variable "desired_capacity" {
  type        = number
  description = "Desired number of instances in the auto scaling group"
  default     = 2

  validation {
    condition     = var.desired_capacity >= 1
    error_message = "Desired capacity must be at least 1."
  }
}

Cross-Field Validation with Locals

Terraform variable validation cannot reference other variables. Use a locals block with a check block (Terraform 1.5+) for cross-field validation:

check "scaling_bounds" {
  assert {
    condition     = var.min_capacity <= var.desired_capacity
    error_message = "min_capacity must be <= desired_capacity"
  }

  assert {
    condition     = var.desired_capacity <= var.max_capacity
    error_message = "desired_capacity must be <= max_capacity"
  }
}

Environment-Specific Scaling

# dev.tfvars
min_capacity     = 1
max_capacity     = 2
desired_capacity = 1

# staging.tfvars
min_capacity     = 2
max_capacity     = 4
desired_capacity = 2

# prod.tfvars
min_capacity     = 3
max_capacity     = 20
desired_capacity = 5

Combining with Instance Type

Pairing scaling variables with the instance type variable lets you right-size for each environment: dev uses small instances with minimal scaling, while prod uses larger instances with wider scaling ranges.

Use Case

Application deployment modules with auto scaling groups where capacity settings must vary between environments while maintaining sensible boundaries.

Try It — Terraform Variable Generator

Open full tool