Files
terraform-course/demo-15/autoscalingpolicy.tf
T
Edward Viaene 5d9eeb6c4c Terraform 0.12 (#20)
* Terraform 0.12
2019-10-06 13:46:10 +02:00

60 lines
1.9 KiB
Terraform

# scale up alarm
resource "aws_autoscaling_policy" "example-cpu-policy" {
name = "example-cpu-policy"
autoscaling_group_name = aws_autoscaling_group.example-autoscaling.name
adjustment_type = "ChangeInCapacity"
scaling_adjustment = "1"
cooldown = "300"
policy_type = "SimpleScaling"
}
resource "aws_cloudwatch_metric_alarm" "example-cpu-alarm" {
alarm_name = "example-cpu-alarm"
alarm_description = "example-cpu-alarm"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "2"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
period = "120"
statistic = "Average"
threshold = "30"
dimensions = {
"AutoScalingGroupName" = aws_autoscaling_group.example-autoscaling.name
}
actions_enabled = true
alarm_actions = [aws_autoscaling_policy.example-cpu-policy.arn]
}
# scale down alarm
resource "aws_autoscaling_policy" "example-cpu-policy-scaledown" {
name = "example-cpu-policy-scaledown"
autoscaling_group_name = aws_autoscaling_group.example-autoscaling.name
adjustment_type = "ChangeInCapacity"
scaling_adjustment = "-1"
cooldown = "300"
policy_type = "SimpleScaling"
}
resource "aws_cloudwatch_metric_alarm" "example-cpu-alarm-scaledown" {
alarm_name = "example-cpu-alarm-scaledown"
alarm_description = "example-cpu-alarm-scaledown"
comparison_operator = "LessThanOrEqualToThreshold"
evaluation_periods = "2"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
period = "120"
statistic = "Average"
threshold = "5"
dimensions = {
"AutoScalingGroupName" = aws_autoscaling_group.example-autoscaling.name
}
actions_enabled = true
alarm_actions = [aws_autoscaling_policy.example-cpu-policy-scaledown.arn]
}