Create VPC With Public & Private Subnets
In this tutorial , We will learn the Concept of VPC and how we can create VPC and subnets (Public & Private).
What Is VPC?
Amazon Virtual Private Cloud is the AWS service where you can create resources such as databases , Servers in the virtual network.
For each Account and Each Region will have one VPC created by default.
Each VPC is logically isolated from Other VPC’s in the Cloud.
In other words , Amazon VPC operates like a own data center.
UnderStanding Subnets
As We are going to Create Two subnets ,
- One Subnet as Public Subnet Where we create our Web Servers.
- Another One Subnet as Private Subnet where we will create the Databases.
Points To Remember
- A Subnet associated with a Route Table having Internet Gateway is called as Public Subnet.
- A Subnet associated with a Route Table having NAT Gateway is called as private Subnet.
Creating A Custom VPC
We will create a VPC ( a custom VPC ), To do so Login to VPC Console.
In the Left Pane , Choose Your VPCs , As I said earlier , Each Region will have a VPC created by Default.
The VPC which we create is referred as Custom VPC.
Click Create VPC
Provide a Name for the VPC and mention the IPv4 CIDR Block and leave the rest of the configuration to default and Click Create.

Important Note:
When you create a VPC , It will automatically create a Route Table , Network ACL and Security Group for that VPC.
Creating Public Subnet
Now We have to create a Public Subnet.
To make a subnet as Public , We need to create a Internet Gateway and We have to add a rule in the Route Table accordingly.
To Create a subnet , In the left pane , Choose Subnets , Click Create subnet
Naming the subnet as Publicsubnet , Under VPC , Select the VPC which you have created.
Under Availability Zone , You can select one of the AZ or Amazon will choose any one of the AZ and place the subnet there.

If your VPC CIDR is /16 , You can use the entire CIDR for the subnet or You can use the CIDR value anywhere between /16 and /28.

Now , To treat the subnet as Public , We have to create an Internet Gateway.
In the left pane , Click Internet Gateways , Choose Create internet gateway
Give a name for the IGW and click Create.
By default , If you create an IGW , It wont be attached with any VPC , So you should see the state as Detached.
To attach it with the VPC , Under Actions , Click Attach to VPC.

Select the VPC and Click Attach.
Now the status of the IGW is changed to Attached.

Next , We will work on making a subnet as Public.
Its not recommended to make any modifications to the Main Route Table.
We will create a separate route tables for public subnet.
Creating Route Table
To create a Route Table , Click Create route table , Give a name and choose the VPC and Click Create.
Next We have add the subnet to this route table.
Choose Route Tables in the left pane,
Select the Route table which we have created now.
You can see that no subnets where associated with the Route Table.

Click Edit subnet associations
Select the Subnet and Click Save.
Now the subnet is associated with the route Table.

Click Routes , We will add a rule in such as way that the subnet will be considered Public.
Click Edit routes,Click Add route
Destination should be 0.0.0.0/0 and the Target should the Internet Gateway.

Click Save routes.
Now we have successfully created a Public Subnet.
Creating Private Subnet
The process of creating a subnet is the same.To make subnet as Private , We have to create a NAT Gateway , Configure the route table accordingly.
Choose Subnets , Click Create subnet
Give a name for the subnet , Choose the VPC , Enter the CIDR value , Click Create subnet.

Next Create a Route Table for Private Subnet,
Click Route Tables , select Create route table
Enter the name and select the VPC , Click Create.

Now We have associate the subnet with this Route table.
Select the route table , Select Subnet Associations , Click Edit subnet associations , Select the subnet and click Save.
Creating NAT Gateway
In the left pane , Choose NAT Gateways,
Click Create NAT Gateway.
Important Note
The NAT Gateway should be created in the Public subnet and should be attached with the private subnet.
Select the Public Subnet , Which we created earlier and for EIP , Click Allocate Elastic IP Address
Click Create a NAT Gateway.
Once the NAT Gateway , You can straight away edit the Route Table , Click Edit route tables
Select the route table which we have created for private subnet,
Choose Routes , Click Edit routes
Destination can be from anywhere or from a particular subnet and the Target be the NAT Gateway.

Click Save routes
Now We have successfully created a Private Subnet.
Wrapping Up
We have gone through the process of creating a Custom VPC , Creation of Public and Private Subnet by configuring the Route Table with Internet and NAT Gateways.
Hope you found it helpful.Thanks for referring this article.
Please do check out my other Publications.