Skip to content
Terraform configuration for creating s simple Amazon AWS VPC and subnets
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
example.tfvars
main.tf
outputs.tf
variables.tf

README.md

Amazon AWS VPC

This Terraform configuration creates:

  • Amazon AWS VPC
  • Internet Gateway
  • Subnets in all configured availability zones and routing tables linking them to the Internet Gateway

Additionally, if variable private_subnets is set to true, it will create:

  • NAT with Elastic IP address in each availability zone
  • Private subnet in each availability zone with routing tables linking them to the NAT

This configuration uses my own module from Terraform Module Registry.

Prerequisites and dependencies

There are no other dependencies apart from Terraform.

Configuration

Option Explanation Example
aws_region AWS region which should be used eu-central-1
aws_zones List of AWS availability zones which should be used ["eu-central-1a", "eu-central-1b"]
vpc_name Name of the VPC which should ve created my-vpc
vpc_cidr CIDR address which should be used 10.0.0.0/16
tags Tags which should be applied to all resources { Hello = "World" }
private_subnets Create also private subnets with NAT in every avaialbility zone false or true

Creating the VPC

To create the VPC,

  • Export AWS credentials into environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • Apply Terraform configuration:
terraform init
terraform apply --var-file example.tfvars

Deleting the VPC

To delete the VPC,

  • Export AWS credentials into environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • Destroy Terraform configuration:
terraform destroy --var-file example.tfvars
You can’t perform that action at this time.