
Discover five reasons to take this Terraform masterclass, featuring hands-on AWS infrastructure, comprehensive coverage from beginner to advanced, and practical deployments with remote modules, dynamic blocks, and remote state backends.
The instructor has seven plus years of software engineering experience, a bachelor of science in computer science from Canadian University, and expertise in Java, C++, Python, JavaScript, and Terraform.
Compare traditional infrastructure with terraformed setups and introduce Terraform as infrastructure as code, explaining the terra and form origins and how it helps transform infrastructure for software deployment.
Explore the five-step Terraform coding flow from building infrastructure knowledge and experience to init, plan, and apply, including dry runs and best practices to avoid errors.
define infrastructure with terraform resource blocks, configure providers and attributes for instances, plan and apply to create and destroy resources, and explore outputs and provider docs.
Learn how to access resource attributes and exported attributes in Terraform using the resource type, name, and attribute syntax, with examples like private ip and public dns.
Define input variables in Terraform with a variable block and externalise values to avoid hard coded strings, including an image_id variable with string type, a default value, and optional description.
Define variables with a variable block and learn to access input variables in Terraform, enabling you to manage AWS infrastructure as code in this module.
Learn to inject external values into terraform variables using tfvars, override default image_id with a var-file, and deploy via plan and apply in an IaC hands-on session.
define an output variable in terraform, use an output block to expose an instance ip address, and verify outputs after running terraform init, plan, and apply.
Explore using local variables in Terraform with a locals block, compare with input variables, and see how to reference image id across resources.
Explore advanced Terraform syntax, including conditional expressions and the ternary operator, for loops, dynamic blocks, and complex objects like maps and nested maps.
Learn to use for loops in Terraform to iterate lists and maps, with square brackets for lists and squiggly braces for maps, including the upper function to uppercase items.
Master Terraform dynamic blocks to iterate over lists and maps, generating scalable security group ingress rules from input variables and ports in an elastic beinstock environment.
Explore complex objects in Terraform by comparing object and map types, define predefined attributes with mixed types, and understand how defaults and outputs behave during plan and apply.
Explore complex types in Terraform, including maps of maps and lists of nested maps, and learn to access nested attributes using lookup, keys, and list indexing.
Learn to read local files into Terraform using a data template file, render with the file function, and leverage AWS Systems Manager Run Command to execute scripts on EC2.
Explore Terraform built-in functions in the Terraform console, covering numeric, string, and collection operations like absolute, ceiling, floor, lower, split, trim, substring, length, lookup, file, concat, flatten, element, and merge.
Create an EC2 in a public subnet of the default VPC using Terraform v1, then evolve with tfvars for externalized values, modules, and outputs toward private subnets and custom VPCs.
Explore using a default value for a Terraform variable to avoid prompts, compare v1 and v2 configurations, and review init and destroy steps in a hands-on demo.
Learn to externalize Terraform variable values with a .tfvars file, replacing defaults and enabling prompts for missing region and the risk profile values during terraform init.
Launch EC2 in a private subnet by configuring a custom subnet with a subnet ID in a VPC, ensuring non-overlapping CIDR blocks and private deployment.
Modularize terraform configurations by splitting resources, variables, and providers into separate files in v5, preserving plan consistency and minimizing blast radius while following the single-responsibility principle.
externalize all hard-coded values by moving string literals and booleans to an external file, adopting v6 style and guiding a cleaner injector-based Terraform setup.
Launch an EC2 instance in a custom VPC and private subnet using Terraform, with minimal attributes for demonstration purposes, highlighting VPC and subnet resource setup.
Explore how to modularize Terraform configurations with root and submodules, including remote modules, to organize VPC resources, dynamic blocks, and input variables while reducing blast radius.
Terraform module anatomy: explore root level and nested modules, and how compute and network submodules like VPC and subnets enable reusable, hierarchical infrastructure code.
Explore local modules in Terraform by declaring module sources, injecting root-level variables, and reusing code across environments to configure VPCs and security groups from within other modules.
Leverage a remote module to provision a VPC architecture in aws by reusing prebuilt code, configuring subnets, internet gateway, and optional resources via input variables and defaults.
Explore two Terraform approaches to create an IAM role: build a custom inline policy and attach it, or use a remote module for a cleaner, reusable policy.
Create an IAM role and policy with a Terraform remote module, using module examples and inputs to externalize policies and bind them to an assumable role for users and services.
Learn how terraform init initializes the project, downloads provider plugins and remote modules into a local hidden .terraform folder, and creates module folders for deployment.
Configure Terraform remote state in a remote bucket to store infrastructure state centrally so multiple developers can work concurrently, and enable state locking to prevent concurrent edits.
Configure a remote Terraform backend by creating a unique S3 bucket, set up a DynamoDB table for state locking, and enable server-side encryption for secure state management.
Configure and test a terraform remote backend using an S3 bucket and DynamoDB table for state storage and locking, initialize, plan, and apply while verifying remote state and lock behavior.
Learn to configure multiple backends by externalizing backend settings with a config file and using the init command line to inject backend values.
If I summarize this course in one sentence?
Learn Terraform IaC (demo is done using AWS EC2, VPC, IAM) using Handson concepts and labs (e.g. resource, data, input variables, for loop, dynamic block, count, remote modules, remote state and state locking, etc).
☆Please check preview videos to see if this course is really for you☆
Are you one of the below?
You want to learn how to set up cloud infrastructures with Terraform
You feel overwhelmed and don't know where to start with Terraform
You used AWS/GCP/Azure before but want to manage them using code instead of from Console
You want to learn Terraform remote modules so that you can reuse common code
You want to store Terraform state file (.tfstate) in cloud so that multiple developers can work together
Who should take this course
you have learned AWS fundamentals (EC2, VPC, IAM, etc)
you don't know how to go about setting up infrastructure by code
you have development experience in AWS Cloud Formation Template (AWS-specific IaC) but want to learn vendor-agnostic IaC tool such as Terraform
who should NOT need to take this course
you already know a lot of Terraform
you are not planning on managing cloud infrastructures on AWS/GCP/Azure
you have never used AWS/GCP/Azure
In this course, you will learn various aspects of Terraform such as:
Terraform resource types such as Resource, Input, Output, Data, Local, etc
Terraform provider setting
Terraform expression types (i.e. primitive types such as string, number, bool, and map and list and object)
Terraform advanced syntax such as conditional expression, for loop, dynamic block, nested maps, file input, etc
how to spin up AWS EC2 using Terraform and coding best practices
how to launch EC2 in a private subnet in a custom VPC using Terraform
how to reuse code for EC2 and IAM from Terraform remote modules in Terraform Registry
how to create AWS IAM role using Terraform remote module
how to configure Terraform remote backend to store TF state file in AWS S3 to enable collaboration
how to enable Terraform remote backend state locking (remote backend) using AWS DynamoDB so that no multiple users can access TF state file at once and hence avoid race condition
5 Reasons why you should take this course:
1. Instructed by a cloud DevOps engineer (with CKA and certified AWS DevOps pro) working at US company in SF
I have been pretty handson with Terraform, AWS, AWS EKS with 7+ industry experience in both North America and Europe.
2. Comprehensive coverage of Terraform from beginner to advanced
- Basic resource types(Resource, Data, Variable, Output、Local)and syntax
- Terraform functions(Math, List, Map, String, etc) demoed in Terraform console
- Advanced syntax such as For loop、__Dynamic Block__、__Nested Map__
- Reuse Terraform remote modules (e.g. EC2, IAM) in Terraform Registry
- Terraform Remote Backend and State locking(AWS DynamoDB)to centralize Terraform state and avoid race condition
3. Gotchas of Terraform Explained
I tried to explain and demonstrate confusing concepts in Terraform such as Object vs Map.
4. Tons of handson!
I won't bore you with dry lectures. Instead every concepts are paired with handson demo.
5. Entire course under FIVE HOURS
I tried to make this course compact and concise so students can learn the concepts and handson skills in shorted amount of time, because I know a life of software engineer is already pretty busy :)
My background & Education & Career experience
Cloud DevOps Software Engineer with 6.5+ years experience
Bachelor of Science in Computing Science from a Canadian university
Knows Java, C#, C++, Bash, Python, JavaScript, Terraform, IaC
Expert in AWS (holds AWS DevOps Professional certification) and Kubernetes (holds Certified Kubernetes Administrator, CKA)
I will see you inside!