# --------------------------- # ALB # --------------------------- # ALBの作成 resource "aws_lb" "alb" { name = "${var.name_prefix}${var.env}-${var.alb_name}" internal = false load_balancer_type = "application" security_groups = [var.alb_sg_id] subnets = [ var.aws_subnet_public_1a_id, var.aws_subnet_public_1c_id ] ip_address_type = "ipv4" tags = { Name = "${var.name_prefix}${var.env}-${var.alb_name}" } } # ターゲットグループの作成 resource "aws_lb_target_group" "target_group" { name = "${var.name_prefix}${var.env}-${var.target_group_name}" target_type = "instance" protocol_version = "HTTP1" port = 80 protocol = "HTTP" vpc_id = var.vpc_id # ヘルスチェックの設定 health_check { interval = 30 path = "/wp-includes/images/blank.gif" port = "traffic-port" protocol = "HTTP" timeout = 5 healthy_threshold = 5 unhealthy_threshold = 2 matcher = "200,301" } # スティッキーセッションの設定 stickiness { type = "lb_cookie" cookie_duration = 1800 enabled = true } tags = { Name = "${var.name_prefix}${var.env}-${var.target_group_name}" } } # ターゲットグループとインスタンスの紐づけ resource "aws_lb_target_group_attachment" "attach_ec2_web1" { target_group_arn = aws_lb_target_group.target_group.arn target_id = var.ec2_web1_id } resource "aws_lb_target_group_attachment" "attach_ec2_web2" { target_group_arn = aws_lb_target_group.target_group.arn target_id = var.ec2_web2_id } # リスナーの設定 resource "aws_lb_listener" "listener" { load_balancer_arn = aws_lb.alb.arn port = 80 protocol = "HTTP" default_action { type = "forward" target_group_arn = aws_lb_target_group.target_group.arn } }