This AWS CloudFormation solution creates a AWS VPC with 2 public subnets and 2 private subnets leveraging two availbility zones. All appropriate outbound routing for public subnets use an AWS Internet Gateway and private subnets use a AWS NAT Gateway. For security and compliance ensuring your resources are appropriately separated between public and private network environments and spread across multiple AWS availability zones is a necessity.
AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.
Amazon Virtual Private Cloud (Amazon VPC) lets you provision a logically isolated section of the AWS Cloud where you can launch AWS resources in a virtual network that you define.
As with most AWS services you will incur costs for usage. For this CloudFormation template the resources that incur costs are as follows.
-
Pricing:
- NAT Gateway pricing resource used in example: 2 Nat Gateway's
- Elastic IP pricing resource used in example: 2 Elastic IP's
- Amazon Web Services Account
- IAM user with the following permissions:
- AWSCloudFormationReadOnlyAccess
- AmazonVPCFullAccess
- AmazonEC2FullAccess
- The CloudFormation Template is available on GitHub:
-
AWS Management Console
- Login to AWS Management Console
- Launch under CloudFormation your 2-zone-vpc-cf-template.yml (included in this repo)
-
CloudFormation Fields:
- Stack name (Enter a name to associate to your AWS VPC deployment)
- Environment Name (Name to describe the VPC environment) Next
- Continue choosing Next
- Click Create (This will take a few minutes for resources to be created)
In the AWS Management Console you should be able to verify the following have been created.
- Resources Created:
- 1 Public Subnet 10.0.10.0/24 (in Zone A, with 254 usable IP's)
- 1 Private Subnet 10.0.20.0/24 (in Zone A, with 254 usable IP's)
- 1 Public Subnet 10.0.30.0/24 (in Zone B, with 254 usable IP's)
- 1 Private Subnet 10.0.40.0/24 (in Zone B, with 254 usable IP's)
- 5 Route table entries to route traffic either within 10.0.0.0/16 or to the either the Internet Gateway or NAT Gateway for outbound
- 1 Internet Gateway (for all outbound traffic)
- 2 NAT Gateways (for outbound traffic from private zone A and B)
- 2 Elastic IP addresses (associated to respective NAT Gateway's)