This repo implements the usage of Terraform in multiple ways:
Raw deployment, taking advatange of modules, implementing DRY configurations with Terragrunt, and configuring a remote S3 bucket with DynamoDB state locking.
Checkout infrastructure-live-v5 for best Terragrunt's practices and how to enable DRY configuration.