Pre-requisites
This walkthrough has the following pre-requisites:
Gruntwork Infrastructure as Code Library
This guide uses code from the Gruntwork Infrastructure as Code Library, as it implements most of the production-grade design for you out of the box. Make sure to read our Introduction to Gruntwork.
caution
You must be a Gruntwork subscriber to access the Gruntwork Infrastructure as Code Library.
Terraform
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
CircleCI
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.
AWS accounts
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.
Repository structure
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-modules
and 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.
info
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.