alb

Category Networking
Latest Version 0.1.0current

Terraform module for alb on aws

Add to your Terraform configuration
module "alb" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/alb/aws"
  version = "0.1.0"

  # Required inputs
  name = "..."
  vpc_id = "..."
  subnets = "..."
}

Overview

The alb module creates AWS Application Load Balancers with production-ready defaults including:

  • Target groups with configurable health checks
  • HTTP and HTTPS listeners with SSL/TLS termination
  • ACM certificate integration
  • Access logging to S3
  • Multi-AZ deployment for high availability

Category: Networking Provider: AWS Latest Version: 3.0.0

Quick Start

module "web_alb" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/alb/aws"
  version = "3.0.0"

  name    = "web-alb"
  vpc_id  = module.vpc.vpc_id
  subnets = module.vpc.public_subnets
}

Key Features

Multi-AZ Deployment

Deploy across multiple availability zones for high availability:

module "ha_alb" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/alb/aws"
  version = "3.0.0"

  name    = "ha-alb"
  vpc_id  = module.vpc.vpc_id
  subnets = module.vpc.public_subnets  # Subnets in different AZs
}

SSL/TLS Termination

Terminate SSL at the load balancer with ACM certificates:

module "secure_alb" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/alb/aws"
  version = "3.0.0"

  name    = "secure-alb"
  vpc_id  = module.vpc.vpc_id
  subnets = module.vpc.public_subnets

  https_listeners = [{
    port            = 443
    certificate_arn = aws_acm_certificate.main.arn
  }]
}

Internal Load Balancer

Deploy private load balancers for internal services:

module "internal_alb" {
  source  = "registry.patterneddesigns.ca/patterneddesigns/alb/aws"
  version = "3.0.0"

  name     = "internal-alb"
  vpc_id   = module.vpc.vpc_id
  subnets  = module.vpc.private_subnets
  internal = true
}

Documentation

Registry

View specification on Registry

Inputs

name Required
string

Name of the ALB. Must be unique within your account and region. Maximum 32 characters.

vpc_id Required
string

VPC ID for the ALB. The ALB must be created in the same VPC as your target resources.

subnets Required
list(string)

List of subnet IDs for the ALB. Requires at least 2 subnets in different AZs.

Whether the ALB is internal. Set to true for internal ALBs (microservices, internal APIs) or false for internet-facing ALBs (public APIs, websites).

Outputs

alb_arn

ARN of the Application Load Balancer.

alb_dns_name

DNS name of the ALB. Use this for Route53 alias records.

alb_zone_id

Zone ID of the ALB for Route53 alias records.