A terraform module to create a vpc with dynamic subnets and VPC endpoints to allow for launching fargate tasks from private subnets, logging, and using SSM Parameter Store and KMS.
provider "aws" {
  region = var.region
}
module "vpc" {
  source             = "app.terraform.io/quansight/vpc-with-subnets/aws"
  version            = "v0.0.1"
  region             = var.region
  vpc_cidr_block     = var.vpc_cidr_block
  availability_zones = var.availability_zones
  vpc_name           = var.vpc_name
}| Name | Version | 
|---|---|
| aws | 5.99.1 | 
| Name | Type | 
|---|---|
| aws_security_group.endpoint_security_group | resource | 
| aws_security_group_rule.vpc_endpoint_access_egress | resource | 
| aws_security_group_rule.vpc_endpoint_access_ingress | resource | 
| aws_vpc_endpoint.dkr | resource | 
| aws_vpc_endpoint.ecr | resource | 
| aws_vpc_endpoint.kms | resource | 
| aws_vpc_endpoint.logs | resource | 
| aws_vpc_endpoint.s3 | resource | 
| aws_vpc_endpoint.ssm | resource | 
| Name | Description | Type | Default | Required | 
|---|---|---|---|---|
| availability_zones | Availability Zones for the VPC | list(string) | [ | no | 
| region | AWS Region to deploy in | string | "us-east-1" | no | 
| vpc_cidr_block | Cidr block to use for the VPC. | string | "172.16.0.0/16" | no | 
| vpc_name | Name for the VPC | string | n/a | yes | 
| Name | Description | 
|---|---|
| additional_cidr_blocks | A list of the additional IPv4 CIDR blocks associated with the VPC | 
| additional_cidr_blocks_to_association_ids | A map of the additional IPv4 CIDR blocks to VPC CIDR association IDs | 
| availability_zone_ids | List of Availability Zones IDs where subnets were created, when available | 
| availability_zones | List of Availability Zones where subnets were created | 
| az_private_route_table_ids_map | Map of AZ names to list of private route table IDs in the AZs | 
| az_private_subnets_map | Map of AZ names to list of private subnet IDs in the AZs | 
| az_public_route_table_ids_map | Map of AZ names to list of public route table IDs in the AZs | 
| az_public_subnets_map | Map of AZ names to list of public subnet IDs in the AZs | 
| igw_id | The ID of the Internet Gateway | 
| named_private_route_table_ids_map | Map of subnet names (specified in subnets_per_az_namesvariable) to lists of private route table IDs | 
| named_private_subnets_map | Map of subnet names (specified in subnets_per_az_namesvariable) to lists of private subnet IDs | 
| named_private_subnets_stats_map | Map of subnet names (specified in subnets_per_az_namesvariable) to lists of objects with each object having three items: AZ, private subnet ID, private route table ID | 
| named_public_route_table_ids_map | Map of subnet names (specified in subnets_per_az_namesvariable) to lists of public route table IDs | 
| named_public_subnets_map | Map of subnet names (specified in subnets_per_az_namesvariable) to lists of public subnet IDs | 
| named_public_subnets_stats_map | Map of subnet names (specified in subnets_per_az_namesvariable) to lists of objects with each object having three items: AZ, public subnet ID, public route table ID | 
| nat_eip_allocation_ids | Elastic IP allocations in use by NAT | 
| nat_gateway_ids | IDs of the NAT Gateways created | 
| nat_instance_ami_id | ID of AMI used by NAT instance | 
| nat_instance_ids | IDs of the NAT Instances created | 
| nat_ips | Elastic IP Addresses in use by NAT | 
| private_network_acl_id | ID of the Network ACL created for private subnets | 
| private_route_table_ids | IDs of the created private route tables | 
| private_subnet_arns | ARNs of the created private subnets | 
| private_subnet_cidrs | IPv4 CIDR blocks of the created private subnets | 
| private_subnet_ids | IDs of the created private subnets | 
| public_network_acl_id | ID of the Network ACL created for public subnets | 
| public_route_table_ids | IDs of the created public route tables | 
| public_subnet_arns | ARNs of the created public subnets | 
| public_subnet_cidrs | IPv4 CIDR blocks of the created public subnets | 
| public_subnet_ids | IDs of the created public subnets | 
| vpc_arn | The ARN of the VPC | 
| vpc_cidr_block | The primary IPv4 CIDR block of the VPC | 
| vpc_default_network_acl_id | The ID of the network ACL created by default on VPC creation | 
| vpc_default_route_table_id | The ID of the route table created by default on VPC creation | 
| vpc_default_security_group_id | The ID of the security group created by default on VPC creation | 
| vpc_endpoint_sg_id | ID of the security group that allows access to the vpc endpoints | 
| vpc_id | The ID of the VPC | 
| vpc_main_route_table_id | The ID of the main route table associated with this VPC |