The Infrastructure Developer's Guide to Terraform: AWS Edition

AVG Duration5h
1 Labs Created with Sketch. 15


With the increasing complexity of the public cloud, infrastructure as code with software development practices has become the recommended way to manage the cloud. Terraform is an open-source, cloud-agnostic tool that enables Cloud and DevOps Engineers to automate and maintain infrastructure with a powerful machine-friendly but human-readable syntax. This learning path contains a series of hands-on labs that will teach you how to build infrastructure using Terraform. An IDE browser is provided in each lab to write and deploy the Terraform code. Complete the challenge at the end to validate your Terraform skills.

Learning Objectives

The learning path teaches you how to perform the following in Terraform:

  • Deploy and destroy AWS infrastructure using Terraform
  • Use variables to create dynamic Terraform code
  • Creating conditional logic
  • How to create loops to scale infrastructure
  • Securely store Terraform state data
  • Develop modules to create reusable infrastructure code
  • Use Terragrunt to scale and enhance Terraform code
  • Write tests to validate Terraform configurations

Intended Audience

This learning path is intended for Cloud and DevOps Engineers.


You must have some experience with AWS fundamentals. If you want to familiarize yourself with AWS fundamentals, the following content is recommended before attempting the learning path:

Fundamentals of AWS


If you have any feedback or suggestions relating to this learning path, feel free to contact us at  


Your certificate for this learning path

Learning Path Steps


In this hands-on infrastructure as code lab, you will learn how to download and install Terraform on Windows and Linux platforms.


Get started on your DevOps journey and learn how to build infrastructure on AWS using Terraform.


Following along in this hands on lab to discover the importance of resource dependencies in Terraform configurations.


Follow along in this hand on lab and create re-usable infrastructure code with Terraform variables.


Discover the use case of Terraform provisioners and learn when to use them in Terraform configurations.


Follow along in this hands on lab and explore the concept of Terraform state when managing AWS infrastructure through code.


Follow along with this hands on lab and configure remote state for Terraform configurations using AWS services like S3 and DynamoDB.


Follow along in this hands-on lab and create reusable infrastructure that can be versioned and tested with Terraform modules.


Follow along with this hands on lab and import existing AWS resources into a Terraform configuration to be managed by code.


Follow along with this hands-on lab and create a dynamic Terraform module by inserting conditional logic into the Terraform configuration.


Follow along with this hands-on lab and create clean scalable Terraform code by using loops.


Learn how to use Terragrunt to create separate Terraform environments with a remote state following DRY principles.


Learn advanced Terraform techniques by reducing the blast radius of critical infrastructure using Terragrunt to deploy an environment with separate Terraform states.


Follow along in this hands-on lab and use Terragrunt to duplicate a Terraform environment and change the environment by modifying a single file.


Develop a test to validate a Terraform module using Terratest, a popular Golang library for testing Terraform code.


In this lab challenge, you will test your Terraform knowledge. You will be tasked with developing an infrastructure as code solution using Terraform by creating a configuration to create a VPC, Subnet, and EC2 instance.

About the Author
Learning paths3

Luke currently serves as a Cloud Labs Developer at Cloud Academy. His background is infrastructure development using Terraform. He is an Azure DevOps Engineer Expert, Azure Administrator Associate, and HashiCorp Certified - Terraform Associate.

Covered Topics