We get a sense for what Terraform Modules are.
They confused me at first! Hopefully their use will be clear as I cover them in the next videos.
We talk about what Terraform is.
We install Terraform.
Configure Your Editor
We configure PHPStorm with a Terraform plugin.
Configuring the AWS Provider
We create a new Git repository and configure Terraform to use AWS.
Data Sources and EC2 Instances
We define a data source for our AMI and create an EC2 instance.
A Quick Review
We quickly review what we just did and clarify a few things.
Changing Existing Infrastructure
We change some infrastructure and see how Terraform handles it.
Replacing Existing Infrastructure
We change some infrastructure in a way that forces Terraform to destroy and create new resources.
The Lifecycle Meta-Argument
We see what else the lifecycle directives can do.
We finally stop hard-coding stuff.
Local and Remote State
We see where Terraform stores it's "state" and how to use remote state with S3.
State Locking with DynamoDB
We'll add state locking to help with running Terraform in team environments.
An Introduction to Modules
We talk about what Terraform modules are.
An EC2 Modules
We create our first module, converting our EC2 resource into a module for creating EC2 servers.
A Quick Explanation of VPC
We learn what a VPC is and cover a few of its components.
Creating our VPC Module
We dive into creating a VPC module.
We'll create an Internet Gateway and a NAT Gateway for our VPC.
Using the VPC
We'll configure our EC2 servers to be created into the subnets of our VPC.
Module Clean Up
We clean up some details about our implementation - Tags and EIPs.
We create and use some security groups for our servers depending on if they're in a public or private network.
Community Modules Intro
We talk about community modules, where to find them, and how to use them.
Community EC2 Module
We integrate the community EC2 module as a "sub-module".
Community VPC Module
We integrate the community VPC module as a "sub-module".
Introduction to Multiple Environments
We discuss a few different ways we can re-use our configuration to create separate environments.
We see how to use Terraform Workspaces to segment different environments.
We see how to use directory structure (and a helper script) to segment environments.
Organizing With Multiple States
We talk about managing infrastructure with Terraform in ways that may fit multiple teams.
We'll create our Networking state area and see what it looks like to manage our VPC, etc, in separate state files.
We'll create our Compute state area and see what it looks like to manage our EC2 instances using this method.
We'll create a new Data state area, and see how to create an Aurora MySQL database in Terraform.
Sign up to learn when new content is released! Courses are in production now.