11# alb.tf
22
33resource "aws_alb" "main" {
4- name = " ${ var . prefix } -alb"
4+ name = " ${ local . prefix } -alb"
55 subnets = aws_subnet. grafana_public [* ]. id
66 security_groups = [aws_security_group . lb . id ]
77}
88
99resource "aws_alb_target_group" "app" {
10- name = " ${ var . prefix } -alb -tg"
10+ name = " ${ local . prefix } -tg"
1111 port = 3000
1212 protocol = " HTTP"
1313 vpc_id = aws_vpc. grafana_main . id
@@ -34,7 +34,7 @@ resource "aws_alb_listener" "front_end" {
3434 type = " forward"
3535 }
3636 tags = merge (var. tags , {
37- Name = " ${ var . prefix } -alb-listener"
37+ Name = " ${ local . prefix } -alb-listener"
3838 })
3939}
4040# ###########################################################################################################
@@ -48,7 +48,7 @@ resource "aws_appautoscaling_target" "target" {
4848 min_capacity = 1
4949 max_capacity = 1
5050 tags = merge (var. tags , {
51- Name = " ${ var . prefix } -aas-tgt"
51+ Name = " ${ local . prefix } -aas-tgt"
5252 })
5353}
5454
@@ -99,25 +99,26 @@ resource "aws_appautoscaling_policy" "down" {
9999# ecs.tf
100100
101101resource "aws_ecs_cluster" "main" {
102- name = " grafana -cluster"
102+ name = " ${ local . prefix } -cluster"
103103}
104104
105105data "template_file" "grafana_app" {
106106 template = file (" ${ path . module } /templates/ecs/grafana_app.json.tpl" )
107107
108108 vars = {
109109 app_image = local.app_image
110+ app_name = local.app_name
110111 app_port = var.app_port
111112 fargate_cpu = var.fargate_cpu
112113 fargate_memory = var.fargate_memory
113114 aws_region = var.aws_region
114- log_group = var .log_group
115+ log_group = local .log_group
115116 health_check_path = var.health_check_path
116117 }
117118}
118119
119120resource "aws_ecs_task_definition" "app" {
120- family = " grafana -app-task "
121+ family = " ${ local . prefix } -app"
121122 execution_role_arn = aws_iam_role. ecs_task_execution_role . arn
122123 task_role_arn = aws_iam_role. ecs_task_role . arn
123124 network_mode = " awsvpc"
@@ -126,14 +127,13 @@ resource "aws_ecs_task_definition" "app" {
126127 memory = var. fargate_memory
127128 container_definitions = data. template_file . grafana_app . rendered
128129 tags = merge (var. tags , {
129- Name = " ${ var . prefix } -ecs -task"
130+ Name = " ${ local . prefix } -task"
130131 })
131132
132133}
133134
134-
135135resource "aws_ecs_service" "main" {
136- name = " ${ var . prefix } -ecs-svc"
136+ name = " ${ local . prefix } -ecs-svc"
137137 cluster = aws_ecs_cluster. main . id
138138 task_definition = aws_ecs_task_definition. app . arn
139139 desired_count = var. app_count
@@ -147,14 +147,14 @@ resource "aws_ecs_service" "main" {
147147
148148 load_balancer {
149149 target_group_arn = aws_alb_target_group. app . id
150- container_name = " grafana-app "
150+ container_name = local . app_name
151151 container_port = var. app_port
152152 }
153153}
154154# ###########################################################################################################
155155# iam.tf
156156resource "aws_iam_policy" "route53resolver_policy" {
157- name = " ${ var . prefix } -route53resolver-policy"
157+ name = " ${ local . prefix } -route53resolver-policy"
158158 description = " Policy to allow Route 53 Resolver DNS Firewall actions"
159159 policy = jsonencode ({
160160 Version = " 2012-10-17" ,
@@ -182,7 +182,7 @@ resource "aws_iam_role_policy_attachment" "route53resolver_policy_attachment" {
182182# # Amazon ECR, and to store and retrieve logs in Amazon CloudWatch.
183183# # It grants permissions needed for ECS to start and manage tasks
184184resource "aws_iam_role" "ecs_task_execution_role" {
185- name = " ${ var . prefix } -ecs-task-execution-role"
185+ name = " ${ local . prefix } -ecs-task-execution-role"
186186
187187 assume_role_policy = << EOF
188188{
202202}
203203
204204resource "aws_iam_policy" "ecs_task_execution_policy" {
205- name = " ${ var . prefix } -ecs-task-execution-policy"
205+ name = " ${ local . prefix } -ecs-task-execution-policy"
206206 description = " Policy for ECS task execution role to access ECR and CloudWatch Logs"
207207 policy = jsonencode ({
208208 Version = " 2012-10-17" ,
@@ -241,7 +241,7 @@ resource "aws_iam_role_policy_attachment" "ecs-task-execution-role-policy-attach
241241# needs to interact with other AWS services (e.g., accessing S3,
242242# DynamoDB, etc.).
243243resource "aws_iam_role" "ecs_task_role" {
244- name = " ${ var . prefix } -ecs-task-role"
244+ name = " ${ local . prefix } -ecs-task-role"
245245
246246 assume_role_policy = << EOF
247247{
264264
265265
266266resource "aws_iam_policy" "ecs_task_policy" {
267- name = " ${ var . prefix } -ecs-task-policy"
267+ name = " ${ local . prefix } -ecs-task-policy"
268268 description = " Policy for ECS task role to access CloudWatch Logs"
269269 policy = jsonencode ({
270270 Version = " 2012-10-17" ,
@@ -303,7 +303,7 @@ data "aws_iam_policy_document" "ecs_auto_scale_role" {
303303}
304304# ECS auto scale role
305305resource "aws_iam_role" "ecs_auto_scale_role" {
306- name = " ${ var . prefix } -${ var . ecs_auto_scale_role_name } "
306+ name = " ${ local . prefix } -ecs_role "
307307 assume_role_policy = data. aws_iam_policy_document . ecs_auto_scale_role . json
308308}
309309# ECS auto scale role policy attachment
@@ -315,7 +315,7 @@ resource "aws_iam_role_policy_attachment" "ecs_auto_scale_role" {
315315# Monitoring role
316316resource "aws_iam_role" "monitoring_role" {
317317
318- name = " ${ var . prefix } -monitoring-role"
318+ name = " ${ local . prefix } -monitoring-role"
319319
320320 assume_role_policy = jsonencode ({
321321 " Version" : " 2012-10-17" ,
@@ -339,7 +339,7 @@ resource "aws_iam_role" "monitoring_role" {
339339}
340340
341341resource "aws_iam_role_policy" "monitoring_policy" {
342- name = " ${ var . prefix } -monitoring-policy"
342+ name = " ${ local . prefix } -monitoring-policy"
343343 role = aws_iam_role. monitoring_role . id
344344
345345 policy = jsonencode ({
@@ -410,7 +410,7 @@ resource "aws_vpc" "grafana_main" {
410410 enable_dns_support = true
411411 enable_dns_hostnames = true
412412 tags = {
413- Name = " ${ var . prefix } -vpc"
413+ Name = " ${ local . prefix } -vpc"
414414 }
415415}
416416
@@ -422,7 +422,7 @@ resource "aws_subnet" "grafana_private" {
422422 availability_zone = data. aws_availability_zones . available . names [count . index ]
423423 vpc_id = aws_vpc. grafana_main . id
424424 tags = merge (var. tags , {
425- Name = " ${ var . prefix } -private-subnet-${ count . index } "
425+ Name = " ${ local . prefix } -private-subnet-${ count . index } "
426426 })
427427}
428428
@@ -435,7 +435,7 @@ resource "aws_subnet" "grafana_public" {
435435 vpc_id = aws_vpc. grafana_main . id
436436 map_public_ip_on_launch = true
437437 tags = merge (var. tags , {
438- Name = " ${ var . prefix } -public-subnet-${ count . index } "
438+ Name = " ${ local . prefix } -public-subnet-${ count . index } "
439439 })
440440}
441441
@@ -444,7 +444,7 @@ resource "aws_subnet" "grafana_public" {
444444resource "aws_internet_gateway" "gw" {
445445 vpc_id = aws_vpc. grafana_main . id
446446 tags = merge (var. tags , {
447- Name = " ${ var . prefix } -igw"
447+ Name = " ${ local . prefix } -igw"
448448 })
449449}
450450
@@ -460,7 +460,7 @@ resource "aws_route_table" "private" {
460460 count = var. az_count
461461 vpc_id = aws_vpc. grafana_main . id
462462 tags = merge (var. tags , {
463- Name = " ${ var . prefix } -private-rt-${ count . index } "
463+ Name = " ${ local . prefix } -private-rt-${ count . index } "
464464 })
465465}
466466
@@ -486,7 +486,7 @@ resource "aws_route_table_association" "private" {
486486
487487# Security group for the ALB
488488resource "aws_security_group" "lb" {
489- name = " grafana-load-balancer-security-group" # @TODO ${var .prefix}-alb-sg"
489+ name = " grafana-load-balancer-security-group" # @TODO ${local .prefix}-alb-sg"
490490 description = " controls access to the ALB"
491491 vpc_id = aws_vpc. grafana_main . id
492492
@@ -505,7 +505,7 @@ resource "aws_security_group" "lb" {
505505 }
506506
507507 tags = merge (var. tags , {
508- Name = " ${ var . prefix } -alb-sg"
508+ Name = " ${ local . prefix } -alb-sg"
509509 })
510510}
511511
@@ -529,15 +529,15 @@ resource "aws_security_group" "ecs_tasks" {
529529 cidr_blocks = [" 0.0.0.0/0" ]
530530 }
531531 tags = merge (var. tags , {
532- Name = " ${ var . prefix } -sg-ecs-tasks"
532+ Name = " ${ local . prefix } -sg-ecs-tasks"
533533 })
534534}
535535
536536# Elastic IP & NAT Gateway for egress traffic
537537resource "aws_eip" "nat" {
538538 domain = " vpc"
539539 tags = merge (var. tags , {
540- Name = " ${ var . prefix } -nat-eip"
540+ Name = " ${ local . prefix } -nat-eip"
541541 })
542542}
543543
@@ -546,6 +546,6 @@ resource "aws_nat_gateway" "nat" {
546546 allocation_id = aws_eip. nat . id
547547 subnet_id = element (aws_subnet. grafana_public [* ]. id , 0 )
548548 tags = merge (var. tags , {
549- Name = " ${ var . prefix } -nat-gw"
549+ Name = " ${ local . prefix } -nat-gw"
550550 })
551551}
0 commit comments