Learn DevOps: Infrastructure Automation With Terraform
4.4 (671 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,739 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn DevOps: Infrastructure Automation With Terraform to your Wishlist.

Add to Wishlist

Learn DevOps: Infrastructure Automation With Terraform

Learn how to automate your infrastructure with terraform. Covers Terraform with AWS, Packer, Docker, ECR, ECS, Jenkins
4.4 (671 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,739 students enrolled
Created by Edward Viaene
Last updated 5/2017
Curiosity Sale
Current price: $10 Original price: $40 Discount: 75% off
30-Day Money-Back Guarantee
  • 5 hours on-demand video
  • 1 Article
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand, use and apply terraform
  • Know when to use different features
  • Use terraform with AWS
  • Use terraform with Packer to create custom images
  • Be able to apply DevOps techniques using terraform
View Curriculum
  • To be able to do the demos yourself, you should have an AWS account. You can open one for free and I explain how to open one in the course.

Terraform has gained a lot in popularity lately and is the tool you need to master if you are or about to get into a Ops / DevOps role. You typically use a technology like Ansible, Chef, or Puppet to automate the provisioning of software. Terraform starts from the same principle, infrastructure as code, but focusses on the automation of the infrastructure itself. Your whole Cloud infrastructure (instances, volumes, networking, IPs) can be described in terraform. 

In this course you'll learn how to use terraform to automate your infrastructure. I will first show you the basics of terraform and will then explain how to automate infrastructure on AWS using terraform. You can open an AWS account for free to do the labs. I also provide a lot of code examples which you can immediately use to automate your own infrastructure.

Update (Oct-2016):

  • Added AWS Autoscaling lectures
  • Added Terraform+Packer Jenkins integration lectures
  • Added Terraform with Docker on AWS (ECR and ECS)
  • Added Terraform with Jenkins workflow using ECR and ECS

Update (Dec-2016):

  • Added a lecture about useful terraform commands
  • Added a demo on how to use terraform show/graph/taint/untaint/import
  • Added a lecture and demo about Elastic Beanstalk on AWS
  • Added "What's new in terraform v0.8.0"
Who is the target audience?
  • This course is great if you're in an Ops or DevOps position and you want to learn about automation using terraform
Students Who Viewed This Course Also Viewed
Curriculum For This Course
66 Lectures
Course Introduction
3 Lectures 04:44

Discussions and Support

Contains useful information for this course

Procedure Document
Introduction to terraform
3 Lectures 07:57

Introduction to what terraform is.

Preview 02:59

An explanation of how to install terraform on Windows / MacOS / Linux

Preview 02:24

An alternative installation procedure using Vagrant. This will allow you to use exactly the same setup I have!

Preview 02:34
Terraform basics
3 Lectures 11:17

First steps in terraform: learn how to spin up your first instance

Preview 03:39

First steps in terraform: learn how to spin up your first instance

Preview 05:50

Summary of the first steps in terraform

First steps in terraform - summary

Test your knowledge

Quiz 1
3 questions
Terraform basics
17 Lectures 01:15:59

How to use variables in terraform


A demo of how to use variables in terraform

Demo: variables

Provision software on your instance using chef / ansible / puppet / shell scripts.

Software Provisioning

A demo to show you how to provision software using a shell script

Demo: Software provisioning

In this demo I'll show you how to use WinRM to provision a Windows Server

Demo: Windows Server Provisioning

Using outputs in terraform you can output information on screen

Outputting attributes

A demo showing how outputs work

Demo: Outputting Attributes

The terraform.tfstate can be stored remotely. This helps collaboration when using Terraform within a team. 

Remote state

This demo shows how to store the remote terraform state in an S3 bucket. By changing a few flags you can also use it to save it to a consul cluster.

Demo: Remote state

You can use datasources to retrieve external information like AWS IP addresses, AMI IDs, and so on.

Data Sources

A demo using the AWS Region IP ranges to create a security group that only allows access from eu-west-1 and eu-central-1 in AWS.

Demo: Data Sources

You can use a template provider in terraform to render templates into strings


There's more than just AWS in terraform. An overview of other providers.

Other Providers

An overview on how to use modules in terraform


A demo showing you how to use external modules. This demo will launch a full consul cluster using an external terraform module

Demo: An external Module

An overview of useful terraform commands

Terraform Commands Overview

A demo of a few useful terraform commands, including terraform show, terraform graph, terraform import, terraform taint, terraform untaint

Demo: Terraform Commands

Test your knowledge!

Quiz 2
8 questions
Terraform with AWS
26 Lectures 02:02:25

An introduction to AWS VPCs (Virtual Private Cloud) - Part 1

Introduction to VPCs

An introduction to AWS VPCs (Virtual Private Cloud) - Part 2

Introduction to VPCs - Part II

An introduction to AWS VPCs (Virtual Private Cloud) - Part 3

Introduction to terraform - Part III

A demo showing you how to launch a VPC with an internet gateway and a NAT gateway

Demo: VPCs and NAT

Now that we have created our VPC, we can launch EC2 instances in the VPC

Launching EC2 instances in the VPC

This is a demo showing you how to launch instances within a VPC

Demo: Launching instances in a VPC

Test your knowledge!

Quiz 3
10 questions

This lecture shows you how to use EBS (Elastic Block Storage) with an instance

EBS Volumes

This demo shows you how to attach EBS volumes to EC2 instances

Demo: EBS volumes

Userdata can be used to execute commands at launch time


In this demo userdata will be used to format and mount an EBS volume if no filesystem is present. This way EBS volumes can be persisted in an automated way when the instance needs replacement.

Demo: Userdata

This lecture explains the difference between private static IPs, EIPs and DNS (Route53)

Static IPs, EIPs, and Route53

This demo shows how to use Route53 to create DNS zones in AWS

Demo: Route53

This lecture explains how to spin up an RDS (relational database service) instance with terraform on AWS


In this demo I will spin up an RDS instance (using RDS subnets, RDS parameter groups, and security groups) and will connect from an EC2 instance to MariaDB..

Demo: RDS

IAM stands for Identity & Access Management. In this lecture I explain the different possibilities for access management. I explain users, groups, policies, and roles.


In this demo I create a group with an AWS group policy and attach it to a user.

Demo: IAM users and groups

IAM roles can be used to assume (temporary) access. In this lecture I explain how this works.

IAM Roles

IAM roles can be used to assume (temporary) access. In this lecture I show you how to attach a role to an EC2 instance that will give permissions to read/write to an S3 bucket.

Demo: IAM Roles

A lecture explaining how to setup autoscaling in AWS using terraform


A demo of autoscaling using terraform on AWS

Demo: Autoscaling

Introduction into Elastic Load Balancers and Application Load Balancers in AWS

Introduction to Elastic Load Balancers (ELB)

This lecture explains how to use ELBs in terraform with a static list of instances and an autoscaling group

ELBs in terraform

A demo showing how to use terraform with an ELB together with autoscaling

Demo: ELB with autoscaling

An introduction of how the Application Load Balancer (ALB) works in terraform

Application Load Balancer (ALB)

ElasticBeanstalk (AWS's PaaS solution) setup using Terraform

Elastic Beanstalk

ElasticBeanstalk (AWS's PaaS solution) setup demo using Terraform

Demo: Elastic Beanstalk

Test your knowledge!

Quiz 4
13 questions
4 Lectures 26:44

With packer AMIs can be created that can be used to launch an EC2 instance.

Packer introduction

Packer can be integrated with terraform. This workflow shows how to create a workflow where packer creates the AMI and terraform launches the EC2 instance with the correct AMI ID

Demo: Packer with terraform

Where does Terraform fit in the DevOps organization? In this lecture I show you an example workflow with terraform, packer and jenkins

Terraform with Packer and Jenkins

This demo shows a full cycle of an app in github, the building of a custom AMI with packer in Jenkins and the provisioning and deployment with Terraform

Demo: Jenkins with Terraform and Packer

Test your knowledge

Quiz 5
3 questions
Docker on AWS using ECS and ECR
8 Lectures 46:25

This lectures gives an introduction of Docker

Introduction to Docker

This lecture explains how to use Docker on AWS using terraform

Docker on AWS

This lecture shows how to build docker images that can be pushed on ECR

Building Docker images

In this demo I show how to push a docker built image to ECR

Demo: Build NodeJS app and push to ECR

This lecture explains part I of the setup of ECS using terraform, with autoscaling and IAM roles

ECS - Part I

This lecture explains part II of the setup of ECS using terraform, with autoscaling, IAM roles, ECS task definitions and ECS Service definitions

ECS - Part II

This demo shows you how to run the pushed NodeJS app on ECS

Demo: Running a NodeJS app on ECS

In this demo I show you how to run a Jenkins workflow to build docker images, push the image to ECR, and use terraform to update ECS with the latest docker image

Demo: Terraform with Jenkins, ECR and ECS
New Terraform Versions
1 Lecture 04:46

This lecture explains what's new in terraform v0.8.0, which has been released in December 13, 2016.

What's new in terraform v0.8.0
Course Completion
1 Lecture 00:27

Course Completion lecture

About the Instructor
Edward Viaene
4.4 Average rating
3,781 Reviews
19,518 Students
6 Courses
DevOps, Cloud, Big Data Specialist

I've been a System Administrator and full stack developer for over 10 years, the typical profile for a DevOps engineer. I've been working in multiple organizations and startups. I've cofounded a startup that focusses on applying DevOps and Cloud. I have been training people in newer technologies, like Big Data. I've trained a lot of people working in FTSE 100 & S&P 100 companies. Today I mainly work together with companies to improve their software delivery processes, while coaching and teaching on platforms like Udemy.