mirror of
https://github.com/bregman-arie/devops-exercises.git
synced 2026-02-05 08:09:13 +00:00
* 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
1.6 KiB
1.6 KiB
Creating Custom VPC and Subnets with Terraform
Objectives
-
Create a custom VPC with a specified CIDR block. For example, you can use
10.0.0.0/16. -
Create two subnets within the VPC, each with a different CIDR block. For example, you can use
10.0.0.0/20for the first subnet and10.0.16.0/20for the second subnet.Both subnets should be in different availability zones to ensure high availability.
-
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