This document summarizes best practices for using Terraform modules. It discusses:
- Writing resource modules to version infrastructure instead of individual resources
- Using infrastructure modules to enforce tags, standards and preprocessors
- Calling modules in a 1-in-1 structure for smaller blast radii and dependencies
- Using Terragrunt for orchestration to call modules dynamically
- Working with Terraform code by using lists, JSONnet, and preparing for Terraform 0.12