terraform-aws-vpc is a Terraform module that creates AWS VPC resources and their associated networking components.
The module addresses the need to provision VPC infrastructure on AWS through infrastructure-as-code, handling the creation of VPCs, subnets, route tables, NAT gateways, and related networking resources. It works by exposing configuration variables that let users define CIDR blocks, availability zones, and subnet types, then generates the appropriate AWS resources. The tool supports flexible NAT gateway deployment patterns: one per subnet, a single shared gateway, or one per availability zone. It also allows reusing external Elastic IPs for NAT gateways across VPC recreation cycles, preventing IP churn when infrastructure is destroyed and rebuilt.
Teams building AWS infrastructure with Terraform should adopt this module if they want a standardized, reusable approach to VPC provisioning rather than writing raw Terraform resources. It suits projects of any scale that need predictable VPC configuration management. The module distinguishes between private subnets (which route through NAT gateways for outbound internet access) and intra subnets (which have no internet access), allowing fine-grained control over network isolation. The tool supports multiple subnet types including database, ElastiCache, and Redshift subnets, each with their own routing behavior.
The project maintains active development with regular updates to support AWS platform changes. The codebase shows ongoing refinement of its NAT gateway logic and subnet handling. The module is undergoing a deprecation cycle, moving VPC Flow Log creation out to a standalone module in a future major version while maintaining backward compatibility in the current release. The project demonstrates responsiveness to operational concerns, such as the ability to preserve Elastic IPs across infrastructure recreation.