@@ -122,8 +122,8 @@ module "web-asg" {
122
122
name_prefix = " ${ var . name } -${ var . web_app_name } "
123
123
elb_names = [aws_elb . web . name ]
124
124
instance_type = var. instance_type
125
- max_nodes = " 10 "
126
- min_nodes = " 2 "
125
+ max_nodes = 10
126
+ min_nodes = 2
127
127
public_ip = false
128
128
key_name = aws_key_pair. main . key_name
129
129
subnet_ids = module. vpc . public_subnet_ids
@@ -167,108 +167,17 @@ END_INIT
167
167
168
168
}
169
169
170
- # # Autoscaling Policies
171
-
172
- # ASG Policy Up
173
-
174
- resource "aws_autoscaling_policy" "cpu_up" {
175
- name = " ${ var . name } -asg-policy-cpu-up"
176
- autoscaling_group_name = module. web-asg . name
177
- adjustment_type = " ChangeInCapacity"
178
- cooldown = 300
179
- scaling_adjustment = 3
180
- policy_type = " SimpleScaling"
181
- }
182
-
183
- resource "aws_autoscaling_policy" "mem_up" {
184
- name = " ${ var . name } -asg-policy-mem-up"
185
- autoscaling_group_name = module. web-asg . name
186
- adjustment_type = " ChangeInCapacity"
187
- cooldown = 300
188
- scaling_adjustment = 3
189
- policy_type = " SimpleScaling"
190
- }
191
-
192
- # Cloudwatch Monitor CPU Up
193
- resource "aws_cloudwatch_metric_alarm" "web_cpu_scale_up" {
194
- alarm_name = " ${ var . name } -cpu-scale-up-alarm"
195
- comparison_operator = " GreaterThanOrEqualToThreshold"
196
- evaluation_periods = " 3"
197
- metric_name = " CPUUtilization"
198
- namespace = " AWS/EC2"
199
- period = " 60"
200
- statistic = " Average"
201
- threshold = " 60"
202
- dimensions = {
203
- AutoScalingGroupName = module.web- asg.name
204
- }
205
- alarm_actions = [aws_autoscaling_policy . cpu_up . arn ]
206
- }
207
-
208
- # Cloudwatch Monitor Memory Up
209
- resource "aws_cloudwatch_metric_alarm" "web_mem_scale_up" {
210
- alarm_name = " ${ var . name } -mem-scale-up-alarm"
211
- comparison_operator = " GreaterThanOrEqualToThreshold"
212
- evaluation_periods = " 3"
213
- metric_name = " MemoryUtilization"
214
- namespace = " AWS/EC2"
215
- period = " 60"
216
- statistic = " Average"
217
- threshold = " 60"
218
- dimensions = {
219
- AutoScalingGroupName = module.web- asg.name
220
- }
221
- alarm_actions = [aws_autoscaling_policy . mem_up . arn ]
222
- }
223
-
224
- # ASG Policy Down
225
- resource "aws_autoscaling_policy" "cpu_down" {
226
- name = " ${ var . name } -asg-policy-cpu-down"
227
- autoscaling_group_name = module. web-asg . name
228
- adjustment_type = " ChangeInCapacity"
229
- cooldown = 300
230
- scaling_adjustment = - 2
231
- policy_type = " SimpleScaling"
232
- }
233
-
234
- resource "aws_autoscaling_policy" "mem_down" {
235
- name = " ${ var . name } -asg-policy-mem-down"
236
- autoscaling_group_name = module. web-asg . name
237
- adjustment_type = " ChangeInCapacity"
238
- cooldown = 300
239
- scaling_adjustment = - 2
240
- policy_type = " SimpleScaling"
170
+ module "web_cpu_autoscaling" {
171
+ source = " ../../modules/autoscaling-policy-metric-alarm-pair"
172
+ name = var. name
173
+ asg_name = module. web-asg . name
174
+ metric = " CPUUtilization"
241
175
}
242
176
243
- # Cloudwatch CPU Monitor Down
244
- resource "aws_cloudwatch_metric_alarm" "web_cpu_scale_down" {
245
- alarm_name = " ${ var . name } -cpu-scale-down-alarm"
246
- comparison_operator = " LessThanOrEqualToThreshold"
247
- evaluation_periods = " 3"
248
- metric_name = " CPUUtilization"
249
- namespace = " AWS/EC2"
250
- period = " 60"
251
- statistic = " Average"
252
- threshold = " 30"
253
- dimensions = {
254
- AutoScalingGroupName = module.web- asg.name
255
- }
256
- alarm_actions = [aws_autoscaling_policy . cpu_down . arn ]
257
- }
258
-
259
- # Cloudwatch Memory Monitor Down
260
- resource "aws_cloudwatch_metric_alarm" "web_mem_scale_down" {
261
- alarm_name = " ${ var . name } -mem-scale-down-alarm"
262
- comparison_operator = " LessThanOrEqualToThreshold"
263
- evaluation_periods = " 3"
264
- metric_name = " MemoryUtilization"
265
- namespace = " AWS/EC2"
266
- period = " 60"
267
- statistic = " Average"
268
- threshold = " 30"
269
- dimensions = {
270
- AutoScalingGroupName = module.web- asg.name
271
- }
272
- alarm_actions = [aws_autoscaling_policy . mem_down . arn ]
177
+ module "web_mem_autoscaling" {
178
+ source = " ../../modules/autoscaling-policy-metric-alarm-pair"
179
+ name = var. name
180
+ asg_name = module. web-asg . name
181
+ metric = " MemoryUtilization"
273
182
}
274
183
0 commit comments