We configure PHPStorm with a Terraform plugin.
Introducing Terraform
We talk about what Terraform is.
Installing Terraform
We install Terraform.
Configure Your Editor
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.
Variables
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.
VPC Gateways
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.
Security Groups
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.
Terraform Workspaces
We see how to use Terraform Workspaces to segment different environments.
Environment Directories
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.
Networking State
We'll create our Networking state area and see what it looks like to manage our VPC, etc, in separate state files.
Compute State
We'll create our Compute state area and see what it looks like to manage our EC2 instances using this method.
Data State
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.