🔥Day 38: AWS VPC (Virtual Private Cloud)

Ritesh DolareRitesh Dolare
8 min read

✅What is a VPC? 🏗️

A Virtual Private Cloud (VPC) is like having your own private network within AWS. Imagine it as renting a section of the cloud where you have complete control. In this space, you can host websites, applications, databases, and more, and you decide who gets to access them.

Think of a VPC as a fenced-off area within a giant cloud data center. Inside this area, you have the freedom to set up smaller sections (called subnets), decide how data flows between them, and control what data can leave and enter your fenced-off area.

✅Why is a VPC Important? 🤔

  1. Security: Since a VPC is isolated from other parts of the cloud, it gives you control over who can access your resources. This is crucial for keeping your data safe from unauthorized access.

  2. Customization: You get to decide the structure of your network, such as where to place your resources and how they communicate with each other.

  3. Scalability: As your needs grow, you can easily expand your VPC, adding more resources and subnets without worrying about running out of space.

✅Key Components of a VPC 🧩

Now, let’s break down the key parts that make up a VPC.

1. Subnets 🗂️

A subnet is a smaller network inside your VPC. Imagine your VPC as a house, and subnets as different rooms in that house. Each room has a specific purpose. For example:

  • Public Subnet: This is like a room with a window to the outside world (the internet). You might place things here that need to be accessible from outside, like a website.

  • Private Subnet: This is a room with no windows—completely sealed off from the outside world. You’d put things here that need to stay private, like databases that shouldn’t be directly accessible from the internet.

Each subnet is assigned a range of IP addresses. This range is defined when you create the subnet and it determines how many devices or services you can host in that subnet.

2. Route Tables 🛣️

A route table is like a road map that tells data where to go. Each subnet in your VPC needs a route table to manage the traffic. Here’s how it works:

  • Routes: Routes are rules that define where traffic should go. For example, you might have a route that says, “Send all traffic destined for the internet to the Internet Gateway.”

  • Associations: When you create a subnet, you associate it with a route table. This means that the subnet will follow the rules defined in the route table to manage its traffic.

3. Internet Gateway (IGW) 🌐

An Internet Gateway is a VPC component that allows resources in your public subnet to connect to the internet. It’s like the front door of your house that lets people in and out. Without an IGW, your resources would be stuck inside your VPC with no way to reach the internet.

4. NAT Gateway 🚧

A NAT Gateway is used to allow instances in a private subnet (like a room with no windows) to connect to the internet while keeping them safe from inbound traffic. It’s like a secure tunnel that lets your private resources fetch updates or send data to the internet without exposing them to potential threats.

✅Step-by-Step Guide to Creating Your VPC Network 🛠️

Project Architecture

Let’s build a VPC step by step, using simple language and analogies.

1. Creating Your VPC 🌐

  • Step 1: Go to the VPC Dashboard in the AWS Management Console.

  • Step 2: Click on Create VPC.

  • Step 3: Give your VPC a name, like "test-VPC". You can think of this as naming your house.

  • Step 4: Choose an IP address range (for example, 10.0.0.0/16). This is like deciding how many rooms your house can have. The /16 part determines the size of your VPC (or how many IP addresses you can have).

  • Step 5: Click Create VPC.

🎉 Congrats! You’ve now marked out your own private space in the cloud.

2. Creating a Public Subnet 🗂️

Now, let’s create a public subnet where you can place resources that need to be accessible from the internet, like a website.

  • Step 1: In the VPC Dashboard, click Subnets and then Create subnet.

  • Step 2: Choose the VPC you just created.

  • Step 3: Name your subnet (e.g., "Public-Subnet"). Think of this as naming a room in your house.

  • Step 4: Pick an Availability Zone (AZ). This is like choosing which part of the AWS data center your subnet will live in.

  • Step 5: Set the IP range for this subnet (like 10.0.1.0/24). This is like deciding how big this room will be.

  • Step 6: Click Create Subnet.

🎉 Now you have a public subnet, which is like a room in your house with a window to the outside world!

Sure! Let’s continue our journey by creating an EC2 instance (which is a virtual server in AWS) and linking it to the VPC we just created. This will help you understand how to host applications or services in your VPC.

3. Creating an EC2 Instance 🖥️

An EC2 instance is like a virtual computer that runs in the cloud. You can use it to host websites, run applications, or perform computations. We will create an EC2 instance and place it inside the public subnet we created earlier.

Step 1: Launching an EC2 Instance 🚀

  • Step 1: Go to the EC2 Dashboard in the AWS Management Console.

  • Step 2: Click Launch Instance.

  • Step 3: Give your instance a name (e.g., "test-instance").

  • Step 4: Choose an Ubuntu Linux.

Step 2: Configure Instance Details ⚙️

This is where you’ll link your EC2 instance to the VPC and subnet you created.

  • Under Network, select the VPC you created earlier (e.g., "MyVPC").

  • For Subnet, select the public subnet (e.g., "PublicSubnet").

  • Enable Auto-assign Public IP. This will give your instance a public IP address so it can be accessed from the internet.

  • Leave the rest of the settings as default.

Step 3: Configure Security Group 🔐

A Security Group acts as a virtual firewall that controls traffic to and from your instance.

4. Connecting to Your EC2 Instance 🔌

Once your instance is running, you can connect to it using SSH.

Step 2: Connect Using SSH 🖥️

If you’re on a Mac or Linux machine, you can use the terminal. If you’re on Windows, you can use a tool like PuTTY.

  • Step 1: Open a terminal (or PuTTY on Windows).

  • Step 2: Navigate to the directory where your key pair .pem file is stored.

  • Step 3: Use the following command to connect to your instance (replace MyKeyPair.pem with your key pair file and ec2-user with the username):

      ssh -i "MyKeyPair.pem" ec2-user@<your-instance-public-ip>
    
  • Step 4: You’ll be asked if you want to continue connecting. Type yes and hit enter.

🎉 You’re now connected to your EC2 instance!

5. Creating an Internet Gateway (IGW) 🌐

To connect your public subnet to the internet, you need an Internet Gateway. This is like installing a front door on your house that allows people (or data) to enter and exit.

  • Step 1: In the VPC Dashboard, click Internet Gateways and then Create Internet Gateway.

  • Step 2: Give it a name, like "test-internet-gateway".

  • Step 3: Click Create.

  • Step 4: Attach this gateway to your VPC, so your public subnet can use it to connect to the internet.

🔗 Now, your VPC has a front door that connects it to the outside world!

6. Setting Up a Route Table 🛣️

Now, let’s create a route table, which will tell your subnet how to send and receive traffic.

  • Step 1: In the VPC Dashboard, click Route Tables and then Create route table.

  • Step 2: Name your route table (e.g., "test-Route-Table") and associate it with your VPC.

    Step 3: Add a route to the table. For example, you can add a route that sends all traffic (0.0.0.0/0) to the Internet Gateway. This is like adding a rule that says, “All data leaving this room should go through the front door.”

🔗 Now your public subnet knows how to send and receive traffic from the internet!

✅How Everything Works Together 🧩

Let’s recap how all these components fit together in your VPC:

  • VPC: This is your private space in the cloud, like a fenced-off area.

  • Public Subnet: A room within your VPC where things that need to connect to the internet (like websites) can live.

  • Internet Gateway (IGW): The front door of your VPC, allowing data to enter and exit your public subnet.

  • Route Table: A map that tells your data how to get to and from the internet via the Internet Gateway.

✅Conclusion 🎓

On Day 38, you've gained a solid understanding of AWS VPCs. You now know how to create your private cloud network, set up a public subnet, configure routing, and connect to the internet. Now you've managed to set up a basic yet powerful cloud infrastructure.

As you continue to explore cloud computing, these skills will form the foundation of everything else you do in AWS. Whether you’re launching a website, building an app, or managing data, your VPC is the secure, customizable space where it all happens. Keep experimenting, and soon you’ll be a cloud networking pro! 🌟

Happy Learning!😊

1
Subscribe to my newsletter

Read articles from Ritesh Dolare directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ritesh Dolare
Ritesh Dolare

👋 Hi, I'm Ritesh Dolare, a DevOps enthusiast dedicated to mastering the art of DevOps.