
Explore how Terraform enables infrastructure as code to create cloud resources across AWS, Azure, and Google Cloud by writing code, enabling automated, repeatable deployments with versioning and change tracking.
Learn how to create an AWS vpc using Terraform by selecting a provider, region, and resource name, then run Terraform init and apply to deploy infrastructure as code.
Identify the drawbacks of raw Terraform across multiple environments, accounts, and dependencies, and learn how Terragrunt enables DRY, reusable infrastructure.
Terragrunt extends Terraform to manage multi-environment infrastructure, reduce code duplication, and centralize configuration. It enables sharing code, defining environment specifics, and controlling dependencies across dev, staging, and production.
Download Terraform from the official site for your OS, extract the zip to C:\Terraform, and add the folder to PATH. Verify the installation by running terraform version.
Download Terragrunt from the release page, install the 64-bit Windows file, update the path, restart, and verify the version; then install and configure Terraform in Visual Studio.
download and install VS code on windows, launch the editor, and install the ashikov terraform extension to begin building reusable terraform workflows.
Execute terraform code from VS Code by creating main.tf in a demo folder, initializing with terraform init, and applying with terraform apply to display a welcome message.
Initialize and run Terragrunt with a basic configuration, connect Terragrunt to Terraform code via Terragon.HCL, pass a message variable from Terragrunt to Terraform, and troubleshoot caching by clearing it.
Install and verify aws cli v2 on windows, then access and test it from vs code to prepare to deploy aws infrastructure with terraform.
Create an IAM user with administrator access and generate access keys. Configure AWS credentials in VS Code using aws configure and verify access with get-caller-identity.
Create an AWS VPC using Terraform IaC by defining provider, VPC, and output files, initializing, planning, and applying changes, with VPC ID output and CIDR updates that replace the VPC.
Explore a Terraform and Terragrunt workflow to deploy resources across dev, uat, and prod, using reusable infrastructure modules and environment-specific configurations.
Organize infrastructure by environment and component with a modular terraform setup using main.tf, variable.tf, and output.tf to define a VPC, using variables for CIDR blocks across prod and UAT environments.
Define a reusable AWS VPC and subnet in Terraform using variables for CIDR and tags. Expose VPC ID and subnet ID as outputs.
Learn how to dynamically generate Terraform files with Terragrunt's generate feature, defining a root.hcl with provider and remote state configuration, and creating backend.tf and provider.tf for environment-specific infrastructure.
Define a root hcl to reuse common configurations and avoid duplication; use environment-specific tarragon.hcl for vpc, include provider and state, and specify cidr and tags.
Explore Terragrunt with Terraform to manage shared modules and remote backends, initialize and validate plans, and apply changes that create a dev VPC and subnet.
Learn to pass variables across modules and deploy resources to a uat environment using terragrunt and terraform, including copying the dev vpc to uat and prod.
Demonstrate environment isolation for prod by configuring prod Taragon HCL, initializing and planning, then applying to create a prod VPC and subnet with outputs for VPC ID and subnet ID.
Perform an end-to-end terragrunt demo to build AWS infrastructure across environments, establishing dependencies from IAM to VPC, subnet, and EKS. Set up shared configuration and module files to coordinate resources.
Build a real-world multi-environment infrastructure with terragrunt and terraform by organizing vpc, subnet, iam, and eks into modules, each with main.tf, variable.tf, and output.tf, across dev and uat environments.
Create an iam role for eks, configure vpc and subnet cidr blocks, and expose arns and vpc ids outputs to support a multi-stack Terragrunt Terraform workflow.
Update the root to define remote state and provider details for shared use across environments, using Terragrunt to generate back-end.tf and provider.tf with an s3 backend.
Configure Terragrunt and Terraform to build reusable, DRY infrastructure by defining root files, modules, and environment-specific inputs for IAM, VPC, subnets, and EKS, with mock outputs for plan and validate.
Deploy dev infrastructure with Terragrunt by initializing, validating, and planning in the dev folder, including VPC, IAM, and subnet dependencies.
Learn to use Terragrunt init all, plan all, apply all, and destroy all to run multi-directory infrastructure, managing dependencies and state files for IAM, VPC, subnet, and EKS.
Terragrunt apply-all validates vpc, iam, and subnet configurations before provisioning. It creates two subnets and an eks cluster, which becomes up and running in the portal.
Run Terragrunt destroy --all to delete all resources across VPC, subnet, IAM, and ekz, and verify cleanup by refreshing the cluster and confirming no resources remain.
This course contains the use of artificial intelligence.
Are you ready to move beyond basic Terraform and build scalable, secure, production-ready infrastructure on AWS?
This course is a complete, practical guide to Terraform fundamentals and Terragrunt orchestration, designed for DevOps engineers, cloud engineers, and infrastructure architects who want to manage AWS infrastructure efficiently and professionally.
We start with the core basics of Terraform, then move into Terragrunt architecture, remote state management, dependency handling, provider configuration, security best practices, and scalable infrastructure design.
Throughout the course, we use:
Real-world AWS examples
Hands-on demos
VS Code for development
Step-by-step configuration walkthroughs
Practical command-line execution
By the end of this course, you’ll understand not just how to use Terragrunt — but why and when to use it in production environments.
What You Will Learn
Terraform Foundations
What is Infrastructure as Code (IaC)
Terraform installation & setup
Provider configuration (AWS)
Resources, variables, outputs
State file concepts
Plan vs Apply
Core Terraform commands
Terragrunt Fundamentals
Why Terragrunt is needed
Terragrunt installation & configuration
HCL structure and important components
terraform block
inputs block
include block
locals block
generate block
remote_state block
dependency block
Remote State Management
Local vs remote state
S3 backend configuration
DynamoDB state locking
Encrypted state best practices
State separation per module
Dependency Management
Managing VPC → Subnet → EKS flow
dependency blocks explained
Output referencing
run-all command usage
Provider Configuration & AWS Connectivity
AWS CLI profiles
Environment variables
Security Best Practices
Avoiding hardcoded credentials
IAM least privilege model
Secure remote state configuration
Encryption strategies
Environment separation (dev / stage / prod)
Scalability & Enterprise Design
Modular architecture
DRY principle with include
Centralized root.hcl
Multi-environment structure
Production-ready folder design
Error Handling & Debugging
Common Terragrunt errors
Debug logging
Cache handling
Dependency troubleshooting
Important Commands Covered
terragrunt init
terragrunt plan
terragrunt apply
terragrunt run-all
terragrunt validate
terragrunt output
terragrunt graph-dependencies
terragrunt hclfmt