Setup VPC with terraform on AWS
Down to dirty blog on setting up VPC with terraform.
This is to setup a new VPC in ap-south-1 with three public and three private subnets. It'll also take care of NAT Gateways, Internet Gateways, etc.
What the script does/creates:
- There is 1 vpc in ap-south-1
- There are 3 Availability zones, marked as 1a,1b,1c. To take advantage of multi AZ setup, we've 1 private subnet and 1 public subnet in each AZ. (total 6 subnets)
- Each private subnet needs to talk to internet via NAT gateway. We're using 1 NAT gateway per AZ.
- The script takes care of appropriate route table associations and ACL rules.
- To launch an internal services like kibana, sentry, etc. and public facing Load balancers we use public subnets.
- For the rest, we use private subnets for all services that aren't exposed to internet, databases, etc.
Terraform Files are here:
Put them all in a folder, change terraform.tfvars with your own AWS credentials.
Do terraform init
, terraform plan
, terraform apply
say yes
once you see what's being created.