Define Auto Scaling Configuration Variables
Create Terraform variables for auto scaling group settings including min/max/desired capacity with cross-field validation.
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
Related Topics
Define EC2 Instance Type with Allowed Values
AWS Basics
Define Environment Name Variable with Allowed Values
Common Patterns
Define Common Tags as a map(string) Variable
Common Patterns
Define Availability Zones Variable for Multi-AZ Deployment
AWS Basics
Define Project Name Variable with Naming Convention Validation
Common Patterns