920 B
920 B
6) Nested Modules: VPC + EC2 (10–15 min)
Create a minimal VPC module and keep EC2 separate for clarity.
mkdir -p ~/terraform-modules-lab/modules/vpc
cd ~/terraform-modules-lab
modules/vpc/main.tf
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
output "vpc_id" { value = aws_vpc.this.id }
output "subnet_id" { value = aws_subnet.public.id }
Update root main.tf to include both modules:
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:
terraform apply -auto-approve