How to Create Application Load Balancer Using Terraform

Creating an Application Load Balancer (ALB) using Terraform is a straightforward process once you grasp the fundamentals. In this guide, I’ll walk you through the steps, ensuring you have a clear understanding of each component involved.

How to Create Application Load Balancer Using Terraform

Creating Application Load Balancer

Before we dive in, ensure you have Terraform installed on your system and access to an AWS account with the necessary permissions to create resources.

Step 1: Initialize Terraform

Begin by creating a new directory for your Terraform configuration files. Inside this directory, create a file named main.tf. This file will contain the configuration for your ALB and any other resources you may require.

Step 2: Define ALB Configuration

In your main.tf file, define the ALB configuration using Terraform syntax. Here’s a basic example:

resource "aws_lb" "my_alb" {
  name               = "my-alb"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.my_sg.id]
  subnets            = ["subnet-12345678", "subnet-87654321"]
  tags = {
    Name = "my-alb"

Step 3: Provision ALB Resources

Next, specify any additional resources required by your ALB, such as target groups, listeners, or routing rules. Here’s an example of creating a target group and attaching it to the ALB:

resource "aws_lb_target_group" "my_target_group" {
  name     = "my-target-group"
  port     = 80
  protocol = "HTTP"
  vpc_id   = "vpc-abcdef12"
  health_check {
    path                = "/"
    port                = "traffic-port"
    protocol            = "HTTP"
    matcher             = "200-399"
    interval            = 30
    timeout             = 10
    healthy_threshold   = 3
    unhealthy_threshold = 2
resource "aws_lb_listener" "my_listener" {
  load_balancer_arn = aws_lb.my_alb.arn
  port              = "80"
  protocol          = "HTTP"
  default_action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.my_target_group.arn

Step 4: Initialize and Apply Changes

Run terraform init to initialize your Terraform configuration. Then, run terraform apply to create your ALB and associated resources.

Step 5: Verify and Test

Once Terraform has applied the changes successfully, verify that your ALB is up and running by accessing its DNS name or IP address. You can also test the load balancing functionality by sending requests to your ALB and ensuring they are distributed correctly to your target instances.


Can I use Terraform to update an existing ALB configuration?
Yes, you can modify your Terraform configuration and apply the changes using terraform apply to update your ALB.

Does Terraform support other cloud providers besides AWS?
Yes, Terraform supports various cloud providers, including Azure, Google Cloud Platform, and more.

Can I use Terraform to manage other types of load balancers?
Terraform provides resources for managing different types of load balancers, such as Network Load Balancers (NLB) and Classic Load Balancers (CLB).


Creating an Application Load Balancer using Terraform is a powerful way to automate the provisioning and management of your infrastructure. By following these steps, you can quickly set up a scalable and reliable load balancing solution on AWS. If you have any questions or feedback, feel free to reach out. Thank you for reading!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *