Deploying Applications to the Cloud using Terraform

Contact Us for Dates
3 days practical workshop for up to 12 people.

Only £1185 per person

Contact us for Onsite Price

This class is designed to teach DevOps engineers, Production Support staff and developers how to effectively use Terraform to manage infrastructure in a cloud environment. The course covers the best practices around the concept of infrastructure as code and then introduces how this can be best be applied using Terraform.


This session takes the form of some lectures along with demonstrations and exercises to consolidate the content being taught. It also involves a substantial workshop component where students deploy an application to the cloud.

Who it is for

Developers, Devops engineers, cloud architects

Training Course Prerequisites

  • Basic AWS Cloud Skills would be beneficial
  • Basic understanding of deployment practices would be beneficial


Chapter 1 Infrastructure as Code and Automated Deployments

  • What is IaC
  • Approaches to IaC
  • Terraform, Cloudformation, SAM and others

Chapter 2 Infrastructure in Source Control ? Git

  • Introduction to Git
  • Working with Git in the Enterprise
  • Maintaining IaC in Git
  • Triggering pipelines from Git hooks

Chapter 3 Effective Git Usage

  • Working with a local Git repository
  • Working with a remote git repository
  • Effective use of branching
  • Handling conflicts
  • Git best practices and pull requests

Chapter 4 IaC and DevOps

  • Performing automated deployments
  • Blue / Green
  • Canary
  • In place rolling updates

Chapter 5 Terraform Fundamentals

  • Understanding how Terraform Works
  • Setting up Terraform
  • Deploying a single server using Terraform
  • Deploying a load balanced cluster of servers using Terraform

Chapter 6 Understanding the Terraform Language HCL

  • Arguments and Blocks
  • Identifiers
  • Comments
  • Encoding
  • JSON syntax
  • Style conventions

Chapter 7 Terraform Datatypes

  • Working with strings and numbers
  • Working with collection types
  • Working with object types
  • Using variables as input and output values

Chapter 8 Terraform Functions

  • String and number functions
  • Collection related functions
  • Security related functions
  • Network related functions
  • File system and date related functions

Chapter 9 Terraform Constructs

  • Looping with for_each
  • Working with counters
  • The significance of depends_on
  • Working with different Providers
  • Using Meta-arguments

Chapter 10 The Terraform CLI

  • Understanding the core commands
  • Validating using validate
  • Using init, plan and apply

Chapter 11 Working with Terraform Modules

  • Using registry based modules
  • Creating custom modules
  • Publishing custom modules to a registry

Chapter 12 Managing State using Terraform

  • How do you know what you have
  • Maintaining a registry of resources
  • The Terraform enterprise solution
  • Deploying, tracking and updating deployments using Terraform enterprise

Chapter 13 Configuration Management with Ansible

  • Introduction to Configuration management tools
  • Automating configuration using Ansible
  • Configuring servers using Ansible
  • Deploying an updated application using Ansible

Chapter 14 When to use Ansible or Terraform

  • What should generally be done in Terraform
  • What should generally done using Ansible
  • Combining Terraform and Ansible

Chapter 15 Extended Project

  • You are provided a sample Spring/React fullstack application
  • Deploy this application to AWS using either containers or EC2
  • Set up an appropriate pipeline for updates to be deployed