A Terraform module for provisioning AWS Application Load Balancers (ALB) and Network Load Balancers (NLB) with comprehensive configuration options.
terraform-aws-alb is a Terraform module that automates the provisioning of AWS Application Load Balancers (ALB) and Network Load Balancers (NLB). It solves the problem of manually configuring complex load balancer setups by providing a reusable, declarative code module that handles listeners, target groups, security groups, and DNS records. This module ensures consistent and repeatable deployments across different environments.
DevOps engineers, SREs, and cloud infrastructure teams managing AWS environments with Terraform. It is particularly useful for organizations that need to deploy scalable, secure load balancers as part of their CI/CD pipelines or infrastructure automation.
Developers choose this module because it significantly reduces boilerplate Terraform code, encapsulates AWS best practices, and provides a battle-tested abstraction maintained by the Terraform AWS Modules community. Its comprehensive feature set and flexibility make it a reliable alternative to writing custom load balancer configurations from scratch.
Terraform module to create AWS Application/Network Load Balancer (ALB/NLB) resources 🇺🇦
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows deploying both Application and Network Load Balancers through a single module interface, reducing code duplication for teams managing multiple service types.
Configures complex listener rules including HTTPS redirects, Cognito/OIDC authentication, and weighted forwarding, as shown in the README examples with detailed HCL snippets.
Automatically creates and manages security groups with customizable ingress/egress rules, and enables comprehensive logging (access, connection, health check) with S3 integration via simple input maps.
Facilitates Route53 DNS record creation and WAF associations directly within the module, streamlining common production setups without additional Terraform resources.
The deeply nested input structures for listeners and target groups, especially with rules, require careful setup and can be error-prone or difficult to debug for newcomers.
For basic load balancer configurations, the module's extensive parameters and optional resources introduce unnecessary complexity compared to using the AWS provider directly.
While flexible, the module's design may not immediately support every AWS feature or edge case, potentially requiring workarounds or manual resource additions for advanced scenarios.