Skip to main content


Terragrunt is a thin, open source wrapper for Terraform. It is designed to fill in some missing features in Terraform, such as allowing you to define your Terraform backend configuration in one terragrunt.hcl file, rather than having to copy/paste the same config over and over again:

remote_state {
backend = "s3"
config = {
bucket = "my-terraform-state"
key = "${path_relative_to_include()}/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "my-lock-table"

Once you've created your terragrunt.hcl configuration, you can run all the usual Terraform commands, but with terragrunt as the binary: e.g., terragrunt plan, terragrunt apply, terragrunt destroy. Check out Terragrunt: how to keep your Terraform code DRY and maintainable for a thorough introduction.


While the Gruntwork Reference Architecture relies on Terragrunt as one of its opinionated tools, the Gruntwork Infrastructure as Code Library does NOT require Terragrunt; you can use the Terraform modules in the Gruntwork Infrastructure as Code Library with plain Terraform, Terraform Enterprise, Atlantis, Terragrunt, or any other tools you prefer.