ad4469dc-7beb-4b7f-90b1-7de.../docs/06_nested_modules_vpc_ec2.md

920 B
Raw Permalink Blame History

6) Nested Modules: VPC + EC2 (1015 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