Rishabh cf4400911b
Add exercise and solution for creating a custom VPC and subnets with … (#10597)
* Add exercise and solution for creating a custom VPC and subnets with Terraform

* Add exercise and solution for creating a custom VPC and subnets with Terraform
2025-08-07 20:23:43 +03:00

1.6 KiB

Creating Custom VPC and Subnets with Terraform

Objectives

  1. Create a custom VPC with a specified CIDR block. For example, you can use 10.0.0.0/16.

  2. Create two subnets within the VPC, each with a different CIDR block. For example, you can use 10.0.0.0/20 for the first subnet and 10.0.16.0/20 for the second subnet.

    Both subnets should be in different availability zones to ensure high availability.

  3. Ensure that the VPC and subnets are tracked by Terraform.

Solution

# Create a directory for the Terraform configuration
mkdir vpc_subnet_creation && cd vpc_subnet_creation 
# Create the main.tf file with the VPC and subnets configuration
touch main.tf
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "your-region" # e.g., ap-south-1
}

resource "aws_vpc" "my_custom_vpc" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "my_custom_vpc_made_with_terraform"
  }
}

resource "aws_subnet" "Subnet_A" {
  cidr_block       = "10.0.0.0/20"
  vpc_id            = aws_vpc.my_custom_vpc.id
  availability_zone = "your-availability-zone-a" # e.g., ap-south-1a
  tags = {
    "Name" = "Subnet A"
  }
}
resource "aws_subnet" "Subnet_B" {
  cidr_block       = "10.0.16.0/20"
  vpc_id            = aws_vpc.my_custom_vpc.id
  availability_zone = "your-availability-zone-b" # e.g., ap-south-1b
  tags = {
    "Name" = "Subnet B"
  }
}
# Initialize Terraform to download the AWS provider
terraform init
# Apply the Terraform configuration to create the VPC and subnets
terraform apply -auto-approve