AWS Customer Gateway Terraform module

March 5, 2025 ยท View on GitHub

Terraform module which creates AWS Customer Gateway resources on AWS.

This module has been extracted from the VPC module, because sometimes it makes sense to reuse Customer Gateways across multiple VPC resources. Check out other related modules - VPC, VPN Gateway and Transit Gateway for more details.

Usage

module "cgw" {
  source  = "terraform-aws-modules/customer-gateway/aws"
  version = "~> 1.0"

  name = "test-cgw"

  customer_gateways = {
    IP1 = {
      bgp_asn    = 65112
      ip_address = "49.33.1.162"
    },
    IP2 = {
      bgp_asn    = 65112
      ip_address = "85.38.42.93"
    }
  }

  tags = {
    Test = "maybe"
  }
}

Examples

  • Complete example creates 2 Customer Gateways, a VPC and creates 2 VPN connections between them.

Conditional creation

Sometimes you need to have a way to create Customer Gateway conditionally but Terraform does not allow to use count inside module block, so the solution is to specify argument create.

# This CGW will not be created
module "cgw" {
  source  = "terraform-aws-modules/customer-gateway/aws"
  version = "~> 1.0"

  create = false
  # ... omitted
}

Requirements

NameVersion
terraform>= 1.0
aws>= 4.40

Providers

NameVersion
aws>= 4.40

Modules

No modules.

Resources

NameType
aws_customer_gateway.thisresource

Inputs

NameDescriptionTypeDefaultRequired
createWhether to create Customer Gateway resourcesbooltrueno
customer_gatewaysMaps of Customer Gateway's attributes (BGP ASN and Gateway's Internet-routable external IP address)map(map(any)){}no
nameName to be used on all the resources as identifierstring""no
tagsA mapping of tags to assign to all resourcesmap(string){}no

Outputs

NameDescription
customer_gatewayMap of Customer Gateway attributes
idsList of IDs of Customer Gateway

Authors

Module is maintained by Anton Babenko with help from these awesome contributors.

License

Apache 2 Licensed. See LICENSE for full details.