mirror of
https://github.com/farcasclaudiu/terraform-course.git
synced 2026-06-29 11:02:26 +03:00
demo-15
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# 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_sns_topic" "example-cpu-sns" {
|
||||
name = "sg-cpu-sns"
|
||||
display_name = "example ASG SNS topic"
|
||||
}
|
||||
|
||||
resource "aws_autoscaling_notification" "example-notify" {
|
||||
group_names = ["${aws_autoscaling_group.example-autoscaling.name}"]
|
||||
topic_arn = "${aws_sns_topic.example-cpu-sns.arn}"
|
||||
notifications = [
|
||||
"autoscaling:EC2_INSTANCE_LAUNCH",
|
||||
"autoscaling:EC2_INSTANCE_TERMINATE",
|
||||
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR"
|
||||
]
|
||||
}
|
||||
|
||||
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_sns_topic" "example-cpu-sns-scaledown" {
|
||||
name = "sg-cpu-sns-scaledown"
|
||||
display_name = "example ASG SNS topic scaledown"
|
||||
}
|
||||
|
||||
resource "aws_autoscaling_notification" "example-notify-scaledown" {
|
||||
group_names = ["${aws_autoscaling_group.example-autoscaling.name}"]
|
||||
topic_arn = "${aws_sns_topic.example-cpu-sns-scaledown.arn}"
|
||||
notifications = [
|
||||
"autoscaling:EC2_INSTANCE_LAUNCH",
|
||||
"autoscaling:EC2_INSTANCE_TERMINATE",
|
||||
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR"
|
||||
]
|
||||
}
|
||||
|
||||
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}"]
|
||||
}
|
||||
Reference in New Issue
Block a user