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
This commit is contained in:
Rishabh 2025-08-07 22:53:43 +05:30 committed by GitHub
parent 2a9bfcb78b
commit cf4400911b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 98 additions and 0 deletions

View File

@ -53,6 +53,7 @@
|--------|--------|------|----|----| |--------|--------|------|----|----|
| Launch EC2 instance | EC2 | [Exercise](exercises/launch_ec2_instance/exercise.md) | [Solution](exercises/launch_ec2_instance/solution.md) | | | Launch EC2 instance | EC2 | [Exercise](exercises/launch_ec2_instance/exercise.md) | [Solution](exercises/launch_ec2_instance/solution.md) | |
| Rename S3 bucket | S3 | [Exercise](exercises/s3_bucket_rename/exercise.md) | [Solution](exercises/s3_bucket_rename/solution.md) | | | Rename S3 bucket | S3 | [Exercise](exercises/s3_bucket_rename/exercise.md) | [Solution](exercises/s3_bucket_rename/solution.md) | |
| Create Custom VPC and Subnets | VPC | [Exercise](exercises/vpc_subnet_creation/exercise.md) | [Solution](exercises/vpc_subnet_creation/solution.md) | |
## Questions ## Questions

View File

@ -0,0 +1,19 @@
# Creating Custom VPC and Subnets with Terraform
## Requirements
* An existing AWS account with permissions to create VPCs and subnets.
* Terraform installed on your local machine.
* AWS CLI configured with your credentials.
## 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
Click [here to view the solution](solution.md)

View File

@ -0,0 +1,78 @@
# 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
```sh
# Create a directory for the Terraform configuration
mkdir vpc_subnet_creation && cd vpc_subnet_creation
```
```sh
# Create the main.tf file with the VPC and subnets configuration
touch main.tf
```
```terraform
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"
}
}
```
```sh
# Initialize Terraform to download the AWS provider
terraform init
```
```sh
# Apply the Terraform configuration to create the VPC and subnets
terraform apply -auto-approve
```