Skip to content
This repository was archived by the owner on Jan 25, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions Modules/ACM/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ resource "aws_acm_certificate" "cloudfront_certificate" {
}
}

resource "aws_acm_certificate" "external_alb_certificate" {
resource "aws_acm_certificate" "alb_certificate" {
provider = aws.seoul
domain_name = "api.${var.domain_name}"
validation_method = "DNS"

tags = {
Name = "dutymate-external-alb-certificate"
Name = "dutymate-alb-certificate"
}
}

Expand All @@ -37,8 +37,8 @@ resource "aws_route53_record" "cloudfront_route53_record" {
ttl = 300
}

resource "aws_route53_record" "external_alb_route53_record" {
for_each = { for dvo in aws_acm_certificate.external_alb_certificate.domain_validation_options : dvo.domain_name => dvo }
resource "aws_route53_record" "alb_route53_record" {
for_each = { for dvo in aws_acm_certificate.alb_certificate.domain_validation_options : dvo.domain_name => dvo }
name = each.value.resource_record_name
type = each.value.resource_record_type
zone_id = var.route53_zone_id
Expand All @@ -52,8 +52,8 @@ resource "aws_acm_certificate_validation" "cloudfront_certificate_validation" {
validation_record_fqdns = [for record in aws_route53_record.cloudfront_route53_record : record.fqdn]
}

resource "aws_acm_certificate_validation" "external_alb_certificate_validation" {
resource "aws_acm_certificate_validation" "alb_certificate_validation" {
provider = aws.seoul
certificate_arn = aws_acm_certificate.external_alb_certificate.arn
validation_record_fqdns = [for record in aws_route53_record.external_alb_route53_record : record.fqdn]
certificate_arn = aws_acm_certificate.alb_certificate.arn
validation_record_fqdns = [for record in aws_route53_record.alb_route53_record : record.fqdn]
}
4 changes: 2 additions & 2 deletions Modules/ACM/outputs.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
output "external_alb_certificate_arn" {
value = aws_acm_certificate.external_alb_certificate.arn
output "alb_certificate_arn" {
value = aws_acm_certificate.alb_certificate.arn
}

output "cloudfront_certificate_arn" {
Expand Down
90 changes: 18 additions & 72 deletions Modules/ALB/main.tf
Original file line number Diff line number Diff line change
@@ -1,66 +1,27 @@
resource "aws_alb" "external_alb" {
name = "dutymate-external-alb"
resource "aws_alb" "alb" {
name = "dutymate-alb"
subnets = var.public_subnets
security_groups = [var.sg_external_alb_id]
security_groups = [var.sg_alb_id]
load_balancer_type = "application"
internal = false
enable_http2 = true
idle_timeout = 30

tags = {
Name = "dutymate-external-alb"
Name = "dutymate-alb"
}
}

resource "aws_alb" "internal_alb" {
name = "dutymate-internal-alb"
subnets = var.private_subnets
security_groups = [var.sg_internal_alb_id]
load_balancer_type = "application"
internal = true
enable_http2 = true
idle_timeout = 30

tags = {
Name = "dutymate-internal-alb"
}
}

resource "aws_alb_target_group" "external_alb_target_group" {
name = "dutymate-external-alb-tg"
port = 80
protocol = "HTTP"
vpc_id = var.vpc_id
target_type = "ip"
deregistration_delay = 5

health_check {
path = var.external_alb_health_check_path
interval = 30
timeout = 5
healthy_threshold = 3
unhealthy_threshold = 2
}

lifecycle {
create_before_destroy = true
}

tags = {
Name = "dutymate-external-alb-tg"
}
}

resource "aws_alb_target_group" "internal_alb_target_group" {
name = "dutymate-internal-alb-tg"
resource "aws_alb_target_group" "alb_target_group" {
name = "dutymate-alb-tg"
port = 8080
protocol = "HTTP"
vpc_id = var.vpc_id
target_type = "ip"
target_type = "instance"
deregistration_delay = 5

health_check {
path = var.internal_alb_health_check_path
path = var.alb_health_check_path
interval = 30
timeout = 5
healthy_threshold = 3
Expand All @@ -72,58 +33,43 @@ resource "aws_alb_target_group" "internal_alb_target_group" {
}

tags = {
Name = "dutymate-internal-alb-tg"
Name = "dutymate-alb-tg"
}
}

resource "aws_alb_listener" "external_alb_http_listener" {
load_balancer_arn = aws_alb.external_alb.arn
resource "aws_alb_listener" "http_listener" {
load_balancer_arn = aws_alb.alb.arn
port = 80
protocol = "HTTP"

default_action {
type = "redirect"

redirect {
port = "443"
port = 443
protocol = "HTTPS"
status_code = "HTTP_301"
}
}

tags = {
Name = "dutymate-external-alb-http-listener"
Name = "dutymate-http-listener"
}
}

resource "aws_alb_listener" "external_alb_https_listener" {
load_balancer_arn = aws_alb.external_alb.arn
resource "aws_alb_listener" "https_listener" {
load_balancer_arn = aws_alb.alb.arn
port = 443
protocol = "HTTPS"
ssl_policy = "ELBSecurityPolicy-2016-08"
certificate_arn = var.external_alb_certificate_arn

default_action {
type = "forward"
target_group_arn = aws_alb_target_group.external_alb_target_group.arn
}

tags = {
Name = "dutymate-external-alb-https-listener"
}
}

resource "aws_alb_listener" "internal_alb_http_listener" {
load_balancer_arn = aws_alb.internal_alb.arn
port = 8080
protocol = "HTTP"
certificate_arn = var.alb_certificate_arn

default_action {
type = "forward"
target_group_arn = aws_alb_target_group.internal_alb_target_group.arn
target_group_arn = aws_alb_target_group.alb_target_group.arn
}

tags = {
Name = "dutymate-internal-alb-http-listener"
Name = "dutymate-https-listener"
}
}
24 changes: 8 additions & 16 deletions Modules/ALB/outputs.tf
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
output "external_alb_arn" {
value = aws_alb.external_alb.arn
output "alb_arn" {
value = aws_alb.alb.arn
}

output "external_alb_dns_name" {
value = aws_alb.external_alb.dns_name
output "alb_dns_name" {
value = aws_alb.alb.dns_name
}

output "external_alb_zone_id" {
value = aws_alb.external_alb.zone_id
output "alb_zone_id" {
value = aws_alb.alb.zone_id
}

output "external_alb_target_group_arn" {
value = aws_alb_target_group.external_alb_target_group.arn
}

output "internal_alb_dns_name" {
value = aws_alb.internal_alb.dns_name
}

output "internal_alb_target_group_arn" {
value = aws_alb_target_group.internal_alb_target_group.arn
output "alb_target_group_arn" {
value = aws_alb_target_group.alb_target_group.arn
}
18 changes: 3 additions & 15 deletions Modules/ALB/variables.tf
Original file line number Diff line number Diff line change
@@ -1,28 +1,16 @@
variable "external_alb_certificate_arn" {
variable "alb_certificate_arn" {
type = string
}

variable "external_alb_health_check_path" {
variable "alb_health_check_path" {
type = string
}

variable "internal_alb_health_check_path" {
type = string
}

variable "sg_internal_alb_id" {
type = string
}

variable "private_subnets" {
type = list(string)
}

variable "public_subnets" {
type = list(string)
}

variable "sg_external_alb_id" {
variable "sg_alb_id" {
type = string
}

Expand Down
15 changes: 3 additions & 12 deletions Modules/CloudWatch/main.tf
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
resource "aws_cloudwatch_log_group" "webserver_log_group" {
name = "/ecs/dutymate-webserver-service"
resource "aws_cloudwatch_log_group" "ecs_log_group" {
name = "/ecs/dutymate-service"
retention_in_days = 7

tags = {
Name = "dutymate-webserver-log-group"
}
}

resource "aws_cloudwatch_log_group" "appserver_log_group" {
name = "/ecs/dutymate-appserver-service"
retention_in_days = 7

tags = {
Name = "dutymate-appserver-log-group"
Name = "dutymate-ecs-log-group"
}
}
8 changes: 2 additions & 6 deletions Modules/CloudWatch/outputs.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
output "appserver_log_group_name" {
value = aws_cloudwatch_log_group.appserver_log_group.name
}

output "webserver_log_group_name" {
value = aws_cloudwatch_log_group.webserver_log_group.name
output "ecs_log_group_name" {
value = aws_cloudwatch_log_group.ecs_log_group.name
}
2 changes: 1 addition & 1 deletion Modules/DocumentDB/main.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resource "aws_docdb_subnet_group" "docdbsg" {
name = "dutymate-docdbsg"
subnet_ids = var.database_subnets
subnet_ids = var.public_subnets

tags = {
Name = "dutymate-docdbsg"
Expand Down
8 changes: 4 additions & 4 deletions Modules/DocumentDB/variables.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
variable "database_subnets" {
type = list(string)
}

variable "mongodb_username" {
type = string
}
Expand All @@ -10,6 +6,10 @@ variable "mongodb_password" {
type = string
}

variable "public_subnets" {
type = list(string)
}

variable "sg_mongodb_id" {
type = string
}
Loading