Foundations
Infrastructure as Code, HCL syntax, providers and resources, the dependency graph, and the init/plan/apply workflow. Start →
Foundations
Infrastructure as Code, HCL syntax, providers and resources, the dependency graph, and the init/plan/apply workflow. Start →
State Management
The state file, remote backends and locking, drift detection and import, and sensitive data in state. Manage state →
Variables & Data Flow
Input variables, outputs and locals, expressions and functions, and count vs for_each. Wire it up →
Modules
Writing reusable modules, composition and sources, versioning, and testing with terraform test. Compose →
Multi-Environment
The dev/staging/prod problem, Terraform workspaces, the directory-per-environment pattern, and why Terragrunt exists. Scale out →
Terragrunt Fundamentals
root.hcl, DRY configuration with include, dependency blocks between units, and running many units at once. Go DRY →
Production & Ecosystem
CI/CD for infrastructure, policy as code and static analysis, secrets and credentials, and a production checklist. Ship it →
The model first, then the HCL
Every topic starts from a model — the dependency graph, the state file, the DRY problem Terragrunt solves — so Terraform’s behavior becomes mechanism you understand, not HCL you copy-paste.
Current practice, verified
Written against current Terraform and Terragrunt practice and checked against the official docs via context7 — including recent changes like native S3 state locking and Terragrunt’s run --all CLI redesign that many older tutorials still get wrong.
Real AWS, real tradeoffs
Not “here’s a resource block” but “here’s what remote state actually buys you, and where a shared workspace’s isolation still breaks down.” You’ll reason about infrastructure changes with confidence.
Diagrams that explain
The dependency graph, the Terraform workflow, state locking, and Terragrunt’s unit dependency ordering as theme-aware Mermaid diagrams. Bilingual (English / ไทย) with saved quiz progress.