Intermediate LevelCloud Computing (AWS/GCP/Azure)
How do Terraform Modules structure reusable infrastructure blueprints?
❓ Interview Prompt: Explain Terraform Modules input variables, output values, module instantiation, and DRY infrastructure code principles.
Writing raw resource declarations for every environment (dev, staging, prod) causes duplicate code. Terraform Modules package related resources into reusable blueprints.
Module Structure:
•
Root Module: The main directory where 'terraform apply' is executed.
•
Child Module: A subdirectory or Git repository containing reusable HCL resources.
•
Interface Contract:
•
'variables.tf': Input parameters passed to the module.
•
'outputs.tf': Values returned by the module to parent callers.
•
'main.tf': Resource declarations.
Code Implementation Example
hcl
# Instantiating a reusable Terraform VPC module
module "production_vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.1.0"
name = "prod-vpc"
cidr = "10.0.0.0/16"
azs = ["us-east-1a", "us-east-1b"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = true
}💡Instantiating a reusable Terraform VPC module.
🎯 Interview Key Takeaway
Terraform Modules encapsulate infrastructure resources into reusable blueprints with explicit input variables and outputs.
#Terraform Modules#IaC#DRY#Terraform#Intermediate
Back to all Cloud Computing (AWS/GCP/Azure) Questions→