# 6) Nested Modules: VPC + EC2 (10–15 min) Create a minimal VPC module and keep EC2 separate for clarity. ```bash mkdir -p ~/terraform-modules-lab/modules/vpc cd ~/terraform-modules-lab ``` **modules/vpc/main.tf** ```hcl resource "aws_vpc" "this" { cidr_block = "10.0.0.0/16" } resource "aws_subnet" "public" { vpc_id = aws_vpc.this.id cidr_block = "10.0.1.0/24" availability_zone = "ap-south-1a" } ``` **modules/vpc/outputs.tf** ```hcl output "vpc_id" { value = aws_vpc.this.id } output "subnet_id" { value = aws_subnet.public.id } ``` Update **root main.tf** to include both modules: ```hcl provider "aws" { region = "ap-south-1" } module "vpc" { source = "./modules/vpc" } module "ec2_instance" { source = "./modules/ec2-instance" instance_type = "t2.micro" instance_name = "Nested-App" instance_count = 1 } ``` Apply: ```bash terraform apply -auto-approve ```