This walkthrough has the following pre-requisites:
Gruntwork Infrastructure as Code Library
You must be a Gruntwork subscriber to access the Gruntwork Infrastructure as Code Library.
This guide uses Terraform to define and manage all the infrastructure as code. If you’re not familiar with Terraform, check out A Comprehensive Guide to Terraform, A Crash Course on Terraform, and our Introduction to Gruntwork
This guide uses CircleCI as the CI platform. Although the approach is compatible with any CI platform, a basic understanding of the CircleCI configuration will be useful for translating the configuration format to other platforms. You can take a look at the official getting started guide to get a basic understanding of CircleCI and their configuration format.
This guide deploys infrastructure into one or more AWS accounts. Check out the Production Grade AWS Account Structure guide for instructions. You will also need to be able to authenticate to these accounts on the CLI: check out A Comprehensive Guide to Authenticating to AWS on the Command Line for instructions.
This guide assumes your infrastructure code is organized in a manner similar to that covered in the Prepare Your
Module introduction section. This means that you should have two
repositories for your≤ infrastructure code,
infrastructure-live. Make sure that the
infrastructure-live repository is locked down as recommended in Lock down VCS
systems. This guide will assume that
master is the protected
branch where infrastructure is deployed from.
This guide will use Terragrunt and its associated file and folder structure to deploy Terraform modules. Please note that Terragrunt is NOT required for using Terraform modules from the Gruntwork Infrastructure as Code Library. Check out our Introduction to Gruntwork for instructions on alternative options, such as how to Deploy using plain Terraform.