.. | ||
main.tf | ||
outputs.tf | ||
README.md | ||
variables.tf | ||
vpc-flowlog.tf | ||
vpc.tf |
Overview
This module performs the following tasks:
- Create VPC, vpcflow log
- Create subnets in every AZ
- Create IGW, NGW
Subnet addressing
This module takes in the VPC cidr. Then add 4 bits to the netmask and divide the cidr into 2 ranges. First range will be used for private subnet and second for public subnets. Another 4 bits are added to these ranges for each subnet.
For example, if the VPC cidr is 10.2.0.0/16, the following subnets will be created:
Subnet Type | Subnet AZ1 | Subnet AZ2 | Subnet AZ3 |
---|---|---|---|
Private | 10.2.0.0/24 | 10.2.1.0/24 | 10.2.2.0/24 |
Public | 10.2.16.0/24 | 10.2.17.0/24 | 10.2.18.0/24 |
The VPC cidr netmask should be /20 or above, to produce subnets with /28 netmasks or above. Subnet smaller than /28 is unlikely useful.
Inputs:
Name | Description | Type | Default | Required |
---|---|---|---|---|
application | name of application | string | none | yes |
environment | capacity of environment (prd/dev/lab) | string | none | yes |
customer-name | owner of aws resources | string | none | yes |
project | name of project | string | none | yes |
default-tags | tags to be added to resources | list | none | yes |
number-of-private-subnets-per-az | number of private subnets per az | number | 0 | yes |
number-of-public-subnets-per-az | number of public subnets per az | number | 0 | yes |
create-nat-gateway | whether to deploy NAT gateway for private subnets | bool | true | yes |
vpc-cidr | VPC cidr | string | none | yes |
enable-flowlog | whether to enable vpc flowlog | bool | true | yes |
vpcflowlog-retain-days | number of days to retain vpc cloudwatch log | number | 90 | yes |
aws-region-short | short name of aws region (e.g. apne1) | string | none | yes |
aws-region | aws region (e.g. ap-northeast-1) | string | none | yes |
vpcflowlog-cwl-loggroup-key-arn | kms key alias arn for log group encryption | string | none | yes |
Outputs:
Name | Description | Type |
---|---|---|
vpc_id | vpc id | string |
public_subnets | list of cidr blocks | list |
private_subnets | list of cidr blocks | list |