651-905-3729 Microsoft Silver Learning Partner EC Counsel Reseller compTIA Authorized Partner

Infrastructure as Code (IaC) with Terraform for AWS Fundamentals Training Virtual Classroom Live December 21, 2026

Price: $2,200

This course runs for a duration of 3 Days.

The class will run daily from 10 AM ET to 6 PM ET.

Class Location: Virtual LIVE Instructor Led - Virtual Live Classroom.

Enroll today to reserve your spot!

Space is limited. Enroll today.

Enroll Now

Description

This Terraform for AWS training teaches attendees Terraform basics and covers IaC, Terraform workflows, AWS Terraform providers, provisioning and managing various AWS resources, HCL programming, best practices, troubleshooting, and integrating Terraform into their organizations with automation and GitOps. Looking to become Terraform certified? This custom-built IaC with Terraform course teaches all the topics covered in the Terraform Associate certification exam.

  • Proven Success: Our students usually pass the exam on their first attempt without extra preparation after completing this course.
  • Optional Certification Review: If desired, a certification review session can be added to this training to reinforce key concepts.
  • Real-World Applications: While this course prepares learners for the exam, the course also teaches practical Terraform skills that are directly applicable to enterprise environments.
  • Please note: This course was developed is not an official HashiCorp course.

Skills Gained

  • Understand the concept of Infrastructure as Code, Terraform's concepts, and their application to AWS
  • Understand IaC and a comparative analysis of IaC against traditional scripting
  • Initiate a Terraform project and use the Terraform CLI
  • Provision and manage AWS resources using Terraform
  • Explore Terraform's architecture and AWS provider fundamentals and contrast against other tools
  • Understand the working architecture of Terraform and how it impacts IaC workflows
  • Dive into Hashicorp's AWS provider and architecting AWS resources through Terraform
  • Enhance Terraform HCL programming skills, exploring resources, data sources, modules, Terraform state, and relevant best practices
  • Understand and practice HCL along with coding best practices
  • Work with Data Source blocks with a focus on referencing preexisting AWS infrastructure in IaC projects
  • Understand custom modules, general module architecture, and best practices
  • Debug Terraform scripts and learn the art of applying IaC principles
  • Understand how to debug and troubleshoot Terraform projects targeting AWS
  • Understand how Terraform workflows impact organizations and vice-versa
  • Apply resource management strategies to maintain security and performance while integrating AWS best practices
  • Explore Terraform within an organizational context and its integration with other tools
  • Leverage configuration management tools for final configuration tweaks
  • Implement Terraform within CI/CD pipelines and its role in GitOps
  • Integrate Terraform with other key tools for resource management

Audience:

The ideal audience for this course is someone who works with cloud infrastructure, has a basic working knowledge of Linux and Windows-based systems including Bash or PowerShell, and has a basic understanding of AWS.

Course Overview

Infrastructure as Code Overview
IaC: Holistic Overview
Infrastructure as Code (IaC)
Emergence of IaC
Emergence of IaC
Emergence of IaC
Why IaC
IaC Tools Landscape
Language Type
Configuration Delivery
Configuration Style
Platform-Specific vs. Multi-Platform
Mutable vs. Immutable Infrastructure
Scripting vs Declarative IaC
Scripting
Declarative IaC
Idempotency
Impact of Idempotency
Non-Idempotent: Scripting
Idempotent: Terraform
State management
Destroying Resources
Destroying Resource: AWS CLI
Destroying Resources: Terraform

Terraform Basics - Getting Started
Terraform Offerings
Terraform CLI
Terraform Paid Offerings
Terraform CLI
CLI: Basic Usage
Terraform CLI Version
CLI Versioning Best Practice
Installing Terraform CLI
Primary Workflow Commands
Terraform Project Structure
Terraform Working Directory
Terraform Configuration Files
Terraform Workflow
Write Code
Initialize Project
Validate
Plan
Apply
Modify
Destroy
Terraform HCL Configuration Files
HCL Components - Introduction
Providers - Introduction
Resources - Introduction
Provisioning Infrastructure
Terraform vs Providers
Using Terraform Provider Documentation

Terraform and AWS - Getting Started
Creating AWS Resources
Terraform Workflow for AWS Resources
AWS Resource Categories
A Simple Example
A Simple Example Continued
State Files - Reality Check

Terraform Architecture
Cloud Agnostic Architecture
Terraform is Cloud Agnostic
Visual Overview
Terraform State
Local vs. Remote State
HCP Terraform and Terraform Enterprise
CLI vs Cloud/Enterprise
Terraform Registry
Providers
Hashicorp Utility Providers
Modules
Modules - Getting Started
Version Constraints
Semantic Versioning Basics
Version Constraint Operators
CLI Versioning
Provider Versioning

AWS Provider Fundamentals
Provider Landscape
AWS Provider Authentication
Authentication Categories
Direct Credentialing Authentication
Role Based Authentication
Creating AWS resources:
Compute: EC2 Instances
Compute: EC2 with AMI Lookup
Compute: EC2 with AMI Lookup
Compute: Paas Applications
Compute: Lambda Function
Compute: Lambda Function
Compute: Lambda Function
Compute: Lambda Function
Compute: Lambda Function
Compute: Lambda Function
Storage: S3 Buckets
Provider Evolution for S3 Buckets
Provider Evolution for S3 Buckets
Provider Evolution for S3 Buckets
EBS Volumes
Databases: RDS
Databases: RDS
Databases: DynamoDB
Databases: DynamoDB
Databases: DynamoDB
Databases: DynamoDB
Network: VPC and Subnets
Network: VPC and Subnets
Network: Internet Gateway and Route Tables
Network: Internet Gateway and Route Tables
Identity: IAM Users, Roles, Policies and attachments
Identity: IAM Users, Roles, Policies and attachments
Identity: IAM Users, Roles, Policies and attachments
Identity: IAM Users, Roles, Policies and attachments
Terraform vs CloudFormation and CDK
Impact of Terraform

HCL Programming Basics
Terraform Console
HCL Language Structure
Variables and Outputs
Input Variables
Assigning Values to Input Variables
Variable Source Priority List
Sensitive Values
Local Variables
Output Variables
Output Variables
HCL Expressions Basics
Value Data Types
Value References using Dot Notation
Value References using Dot Notation
Strings
Conditionals
For
Splat
Operators
Using Functions in Terraform
Numeric Functions
String Functions
Collection Functions
Date and Time Functions
Type Conversion Functions
Encoding
Filesystem
Cryptographic and Hashing
IP Network

Resources Deep Dive
Resource Blocks
Resource Syntax
Resource Types
Resource Arguments
Custom Condition Checks
Operation Timeouts
Resource Behavior during Terraform Workflow
Reapplying a Configuration
Accessing Resource Attributes
Resource Dependencies
Implicit Resource Dependencies
Explicit Resource Dependencies
Local-only Resources
Meta Arguments
depends_on
count
for_each
provider
lifecycle

Data Sources
Data Sources
Data Source Example
Data Source Lifecycle
AWS Data Sources
Extract AWS AMI IDs
Obtain VPC Details
Fetch Subnet IDs
Get Instance Type Offerings
Build IAM Policy Document

Modules Deep Dive
Why Modules?
Modules Architectural Overview
Consuming Modules
Module Sources
Writing Custom Modules
Writing Modules
Module Structure
Module Structure
Modules and Providers
Modules vs IaC Projects
Modules Best Practices

Terraform State Deep Dive
Terraform State Architecture
Terraform State Visualized
State Locking
Terraform Backends
Using AWS S3 backend
Importing Existing Resources
Using CLI Import
Using import Blocks
Storing State Files
Isolating and Organizing State Files
Manipulating State File
State Drift
Convention over Control
State File Security

Best Practices and Troubleshooting
Troubleshooting
Terraform Log Levels
Troubleshooting Terraform Scripts
Audit Trails for Troubleshooting
Terraform State Best Practices
State Drift Issues
State Conflict Issues
State Security
Storing State Files
Isolating and Organizing State Files
Manipulating State File
State Drift
Convention over Control
State File Security
Infrastructure as Code Principles
Mutable vs Immutable
Declarative Code
Version Control
Automation
Sample Jenkins Pipeline
Resource Management Strategies
Naming Conventions
Modularization
Resource Dependencies
Lifecycle Management
Parallel Resource Creation
Effective Use of Data Sources
Security Best Practices
Secrets Management
Principle of Least Privileges
Use of Service Roles
AWS Best Practices
IaC Code Management
Compatibility and Security
Testing and Documentation
Resource Management
Environment and Automation

Advanced Concepts
Terraform in Organizational Context
Lift and Shift Scenario
Lift and Shift Scenario
Centralized vs. Distributed Infrastructure Management
Centralized Infrastructure Management
Centralized Workflow
Distributed Infrastructure Management
Distributed Workflow
Hybrid Infrastructure Management
DevOps Approach with Terraform
Using Managed Terraform Services
Team Roles and Responsibilities
Governance and Best Practices
Terraform, CI/CD Pipelines, GitOps
Overview of CI/CD
Terraform in CI/CD Context
GitOps with Terraform
GitOps with Terraform
Automated Testing of Terraform Code
Infrastructure Deployment Automation
Best Practices and Tools
Integration with Other Tools
Last Mile Configuration
AWS Secrets Manager for Secrets Management
AWS CloudWatch for Resource Monitoring
Secrets Management with Vault
Service Discovery with Consul
Image Creation with Packer
Development Environments with Vagrant
Application Deployment with Nomad

Prerequisites

  • Working knowledge of Linux and Windows-based systems including Bash or PowerShell
  • Basic understanding of AWS
  • Working experience with AWS Console and common resource types, including VPC, EC2, S3, IAM
  • Familiarity and some working experience with AWS CLI
  • Working experience with command line (PowerShell or Bash)
  • Understanding of file system operations and navigation
  • Familiarity with VS Code or similar code editor
  • Optional: Experience with Git version control