
Explore the power of Terraform by comparing manual AWS provisioning with a single Terraform apply, demonstrating infrastructure as code to create a VPC, subnets, gateways, routes, and an EC2 instance.
Explore how infrastructure as code with Terraform automates provisioning of dev, test, and production environments, creating five EC2 instances with Apache and MySQL from a single, version-controlled codebase.
Learn infrastructure as code with Terraform for AWS resources by exploring eight IaC patterns that enable reusable, reliable, repeatable, and scalable configurations through templates and organized files.
Explore IaC patterns with Terraform, focusing on reusability through modules and consistency across environments. Learn to write reusable templates, use modules, and maintain standard naming with version control.
Explore scalability and automation in infrastructure as code with Terraform, scaling EC2 instances via a count change and deploying with a single Terraform apply in CI/CD for zero manual intervention.
Learn how easy rollbacks with version control restore Terraform infrastructure to a previous working state, and how infrastructure as code doubles as readable documentation.
Collaborate on reusable Terraform code via centralized repositories like GitHub or GitLab, then run Terraform validate and Terraform plan, and use Checkov or Terraform linter for pre-deployment checks.
Explore Terraform, a free and open source infrastructure as code tool by HashiCorp that lets you provision cloud resources with code across AWS, Azure, and Google Cloud.
Explore Terraform's multi-cloud and provider-agnostic capabilities, showing how a single tool supports 170 providers, enables hybrid deployments, and avoids vendor lock-in, with cloud-specific providers and resources.
Explore Terraform's declarative, human readable language that describes the final state (like an EC2 in a subnet) and uses a dependency graph with plan and apply for AWS.
Explore Terraform's execution plan to preview what will be added, changed, or destroyed before applying, and use plan and apply with approvals for auditing and compliance.
Explore how Terraform uses a state file to track resources, detect drift, and apply targeted changes, enabling fast plans, precise updates, and secure remote state collaboration.
Set up a complete working environment for writing and running Terraform code on Windows, including Terraform CLI, AWS CLI, and Visual Studio Code with the Terraform and AWS Toolkit extensions.
Install and configure the Terraform CLI on windows by downloading the terraform zip, extracting it to a dedicated folder, setting the system path, and verifying installation with terraform version.
Set up a Terraform environment on Windows by installing the AWS CLI, validating its version, and preparing access key and secret key for Terraform use.
Set up Visual Studio Code with the HashiCorp Terraform extension on Windows to enable syntax highlighting, IntelliSense, and a built-in terminal for Terraform.
Set up a Windows Terraform environment with the AWS Toolkit extension in VS Code, enabling resource browsing, authentication via AWS credentials, and deployment from the editor.
Set up a complete macOS Terraform environment by installing Terraform, AWS CLI, and Visual Studio Code, enabling local development and real-world infrastructure as code workflows.
Install the Terraform CLI on macOS by downloading the binary, moving it to the bin folder, and verifying with Terraform version; upcoming steps cover AWS CLI and Visual Studio Code.
Install the AWS CLI on macOS to enable AWS infrastructure work with Terraform. Download installer, run the GUI installer, verify the version, and prepare for AWS login with access keys.
Install Visual Studio Code on macOS and add the HashiCorp Terraform extension to enable syntax highlighting, autocomplete, and error detection for Terraform files, with Terraform CLI and AWS CLI prepared.
Install the AWS toolkit extension in VS Code to browse AWS services and regions. Connect with AWS CLI credentials and use the AWS explorer to manage resources.
Set up a Linux-based Terraform environment on an AWS EC2 Ubuntu instance to enable centralized, cloud-based infrastructure management for labs and automation.
Launch an Ubuntu 24.04 LTS EC2 instance in AWS, connect via SSH or VS Code, and prepare the environment to install Terraform for a local development workflow.
Install Terraform on an Ubuntu virtual machine by following official Linux commands, verify with Terraform version showing 1.1, and prepare for remote management with Visual Studio Code in next video.
Install remote ssh extension in Visual Studio Code, connect to a linux machine, and run terraform apply or plan from the vscode terminal after the remote server is set up.
Master the core Terraform workflow: write code in Terraform's HCL, plan changes, and apply to provision resources. Explore optional stages, drift detection, and version control to ensure predictable, auditable infrastructure.
This lecture introduces the first stage of the Terraform workflow, showing how to define infrastructure as code with a Terraform configuration file (main.tf) using HashiCorp configuration language and proper syntax.
Explore Terraform's plugin-based architecture, core–provider collaboration, and configure AWS provider, backends and state storage with S3, plus an overview of provisioners and authenticators.
Explore how Terraform uses plugins by downloading provider plugins during init, planning with AWS to manage S3 resources, and applying changes that create resources and update the state.
Discover how to create your own Terraform provider using Go and the official plugin sdk, and why a custom plugin enables automating internal systems with plugin based architecture.
Learn how Terraform uses provider plugins to talk to specific platforms, with the AWS provider shown to create EC2 resources; explore installing and versioning Terraform providers.
Explore how Terraform finds and fetches the AWS provider by reading the configuration, checking the local cache, and initializing the provider from the Terraform registry.
Learn how required provider blocks ensure portable, predictable Terraform configurations, especially for AWS, and how version constraints guide init in selecting provider versions.
Learn how to configure Terraform with multiple providers—AWS, Azure, GCP, Docker, and GitHub—and manage infrastructure from a single template. Explore centralized automation, multi-cloud strategies, and reusable modules for deployments.
Launch an EC2 instance on AWS using a simple single-file Terraform project with a provider for ap-south-1, and learn secure credential practices with IAM users and aws configure.
Launch an AWS ec2 instance with terraform by defining the provider and resource blocks, selecting the ami and instance type, adding tags, and exploring the core terraform workflow and state.
Use terraform fmt to automatically format terraform configuration files, fix indentation and spacing, and rewrite in place for clean, readable code before init or sharing.
Initialize your Terraform project with Terraform init to download provider plugins, set up the backend, and create the .terraform folder for AWS interaction.
Validate your Terraform code to catch syntax and logical errors, and verify required arguments are present. Run Terraform validate offline after init to confirm the configuration is valid before planning.
Explore how the Terraform plan command previews changes before applying by comparing code with existing infrastructure, showing what would be added, changed, or destroyed in AWS resources, using dry-run concepts.
Learn how the Terraform apply command creates, updates, and deletes cloud resources from your tf files, and how the plan shown is applied with the tf state tracking AWS instances.
Learn how to use Terraform destroy to tear down all resources managed by your project, update the Terraform state file, and clean up cloud resources after testing.
Discover how Terraform output reveals values after apply, verifies the EC2 instance id and private IP, and shares these attributes with subsequent code and modules.
Learn to add and use Terraform output blocks to display resource attributes such as ID and public IP after apply, including single and multiple outputs for AWS instance.
Understand level one default AWS setup in Terraform, where omitting VPC, subnet, or security group places the EC2 in the default VPC with the default security group and subnet.
Attach an existing VPC and security group to an EC2 instance with Terraform, specifying subnet ID and security group IDs, and avoid hard coding values for reusability.
Learn how to automate Terraform deployments by using resource references to create a VPC, subnet, security group, and EC2 instance without manual ID handling.
Master terraform resource referencing to create aws vpc, subnet, security group, and ec2 instances. Reference vpc id, subnet id, and security group id, and grasp implicit dependencies including creation order.
Learn how Terraform variables make infrastructure reusable and easy to manage by replacing hard-coded values with input variables, enabling reusable VPC configurations across environments.
Learn to declare and use Terraform variables for reusable vpc configs across dev and prod. Compare main.tf vs variables.tf and cover default values, descriptions, validation, and passing values.
Learn how to set optional Terraform variables with default values to create a cloud VPC using AWS, including VPC Cidr and VPC name, and run init, apply, and destroy.
Assign values to Terraform variables via the three common ways: inline CLI, a Terraform file, or module inputs. Understand how default values affect prompts during Terraform apply and CI/CD automation.
Discover how to assign Terraform variables with inline CLI values and with a terraform.tfvars file, set VPC CIDR blocks, and preview module inputs for future automation.
Explore how Terraform handles variables by declaring them, passing values with tfvars or module input, and resolving these values during plan and apply.
Create multiple terraform tfvars files for each environment (dev, prod, staging) and apply with the matching file to avoid editing tfvars; split variables by components and store sensitive data separately.
Discover how dot auto tf files automatically load in Terraform, enabling split by purpose configurations and environment-based management, then run terraform init and apply without dash flags.
Learn Terraform variable types, including primitive (string, number, boolean), collection (list, set, map), and structural (object, tuple), and how defaults, descriptions, and validate input improve readability and reusability.
Explore primitive variable types in Terraform, including string, number, and boolean, and learn to declare, reference, and pass values in main.tf and tfvars while provisioning AWS EC2 instances.
Explore Terraform collection types, focusing on lists as ordered, index-accessible values. Learn to define list variables and use them to create subnets, with sets and maps to follow.
Explore set as an unordered collection of unique values in Terraform, with no duplicates. Unlike lists, sets cannot be indexed and are useful with count or for_each to avoid duplicates.
Explore map collections in terraform using key-value lookups for environment-specific instance types. Dev maps to t2 micro, prod maps to t3 medium, with region ami and tag usage.
learn about structural types in terraform, with a focus on tuple as a fixed-length, ordered container of mixed types. use tuple in variables.tf to define and access values by index.
Learn how to model fixed-structure objects in Terraform to define instance type, count, and monitoring, and compare them with maps for flexible key-value pairs.
Compare tuple and object in Terraform, contrasting fixed-order tuples with named-field objects and access by position versus field name to manage key-value pairs, readability, and validation.
Explore Terraform type conversion, focusing on primitive conversions with tostring(), two string, two number, and two bool, plus list, set, and map conversions, illustrated by a practical S3 bucket example.
Learn how the tonumber() function converts strings to numbers in Terraform, enabling numeric counts in maps and EC2 configurations, and understand Terraform's auto convert facility.
Convert string to boolean in terraform with tobool, using a string variable for monitoring, and applying and destroying an EC2 instance to illustrate primitive conversion.
Learn how to convert collections in Terraform using tolist(), including converting a set to a list to access values by index, preserve order, and remove duplicates.
Learn how to convert a list to a set in Terraform to remove duplicates and leverage foreach with sets for scalable AWS examples.
Explore the two map function in Terraform to convert structured values into a map of key-value pairs and access data by keys like project and environment.
Explore how to enforce value restrictions in Terraform with the custom variable validation block, to restrict numbers and strings and prevent unintended resource creation.
Explore the syntax and structure of Terraform's custom variable validation block, define rules using or logic and contains to catch invalid inputs before applying resources.
Master string validation in Terraform by enforcing allowed values, length, and start with rules. Apply examples that limit environment to dev, test, or prod and begin with dev.
Learn how to mark Terraform variables as sensitive to hide values from logs and outputs, using sensitive = true for variables and outputs with password and key examples.
Learn secure secret injection practices in Terraform, including avoiding hard-coded credentials, using sensitive variables, secret management tools, secure state storage, and cautious output handling.
Explore Terraform loops and iterations to reuse configurations with lists, maps, and sets. Learn count, for_each, dynamic blocks, and how to apply these patterns using AWS examples.
Learn to use Terraform's count to repeat a resource a fixed number of times and assign unique tags with count.index for each EC2 instance.
Learn how to use Terraform count to create multiple subnets in a VPC from a CIDR list within a single resource block, using count.index to assign unique subnets.
Explore how Terraform's for_each lets you create multiple resources from a list or map, such as subnets, users, and buckets, including AWS examples, without copying code.
Explore the Terraform foreach loop with a map variable in non-aws example, using a null resource and local-exec to run a command four times and print each key and value.
Create two AWS subnets in a VPC using for_each with a map variable to automate multiple subnets, each with its own CIDR block and tags.
Learn how for expressions in Terraform extend foreach to filter, transform, and reshape data in lists and maps and convert data structures.
Use Terraform's for expression to filter data from a list, selecting items for AWS resources, with or without locals, by evaluating each item and forming a new filtered list.
Explore Terraform expressions to transform data by adding values to each item in a list or map, with practical AWS examples and guidance on using output and locals.
Reshape data with Terraform expressions by converting a list to a map, creating key-value pairs such as student rolls to marks, using for expression and index-based keys.
Explore transforming environment names into unique s3 bucket names with terraform using for_each and lowercase, generating dev, test, and prod buckets in ap south one.
Discover how dynamic blocks in Terraform create multiple nested blocks within a resource using foreach. Understand the syntax: dynamic block name, foreach, and content, with examples, ingress rules and routes.
Use dynamic blocks in Terraform to build AWS security group ingress rules from a ports variable. This avoids copy-paste and supports easy updates.
Explore Terraform blocks, including data blocks and forEach usage, and see how resource, data, module, and provider blocks organize main.tf and variables.tf into declarative, modular configurations.
Use Terraform data blocks to read existing cloud resources, fetch the latest AWS AMI ID, and provision an EC2 in a chosen VPC without hard coding.
Learn to fetch the latest Amazon Linux 2 AMI with a Terraform data block, then use the resulting AMI ID to launch an EC2 instance on AWS.
Learn to fetch dynamic AWS details with Terraform data blocks, including account id, region, availability zones, IAM role, default VPC id, and AMI id, using data blocks for dynamic resources.
Learn how to use Terraform functions to write smarter, reusable and dynamic configurations that automatically format data, apply conditions, and manipulate strings, lists, and maps.
Learn to build dynamic, environment-aware Terraform names using format and join, with practical examples for dev and prod, and constructing S3 keys with joined paths.
Use Terraform's lookup function to fetch environment-specific ami ids from a map, with a default when the key is missing, demonstrated for dev, qa, and prod.
Use the Terraform file function to load a separate user data script for an EC2 instance, enabling apache setup and a hosted page, with default VPC and security group checks.
Explore the functions covered, with a ready AWS example solution, enabling you to copy and paste code into a project folder and run labs for quick mastery.
Explore the modular approach to terraform with reusable modules for VPC, EC2, and S3, replacing monolithic main.tf and enabling root module reuse across environments.
Compare non-modular and modular Terraform code to learn how modularity improves readability, reusability, and maintainability of AWS infrastructure like VPC, EC2, S3, and RDS.
Explore how Terraform uses root and child modules to organize tasks like VPC, EC2, and S3, with local and remote child modules referenced by module blocks, GitHub or Terraform registry.
Compare local and remote Terraform modules, where local modules live in the project folder for easy customization. Use remote modules off-site for reuse across projects, while acknowledging limited per-project customization.
Explore creating and using Terraform modules step by step, starting with local module structure, passing variables, and referencing root and child resources, then moving to remote modules.
Set up a root and child module structure so Terraform can locate and load local modules, with a modules directory containing the VPC module.
Explore building a Terraform VPC module by creating main.tf, variables.tf, and outputs.tf inside the VPC module, defining an AWS VPC resource with a CIDR block and name tag.
Create a variables.tf for a Terraform module, declare cidr block and name, and demonstrate passing values in modular vs non-modular setups using root and module blocks.
Learn how to export the VPC ID from a child module to the root module using outputs.tf and resource referencing in a modular Terraform setup.
Learn to initialize and apply a Terraform project with root and child modules, verify VPC resources, and explore local versus remote module deployment.
Convert a local Terraform module to a remote module on GitHub, update the source, run terraform init upgrade, and deploy a VPC with two subnets.
Learn how Terraform state tracks infrastructure with the tf state file, guiding plan and apply by comparing the desired state to reality and detecting drift.
Understand how the Terraform tfstate file records the actual state of resources, whether local or remote, and how plan, apply, and drift detection keep resource IDs and outputs in sync.
Learn how to import existing resources into Terraform using the import command, linking manually created resources like EC2 instances to Terraform state and updating configurations.
Explore how the Terraform 1.5 import block declaratively brings existing resources into the tf state, enabling multi-resource imports in a single file and boosting version control and CI/CD workflows.
Learn how to move Terraform state from local to remote with Amazon S3, enabling centralized collaboration through backend configurations and init, and understanding state locking.
Learn how state locking with DynamoDB prevents concurrent writes to a remote Terraform state on S3, with setup steps and the option to use Terraform Cloud.
Terraform Associate 003/4 – AWS Edition (in English)
Master Infrastructure as Code (IaC) on AWS with 100% Hands-On Labs
If you want to build, automate, and manage AWS infrastructure with confidence, this course is for you.
Terraform is the most powerful Infrastructure-as-Code tool, and learning it will completely transform the way you work with the cloud.
At CloudFolks HUB, we make learning simple, practical, and career-oriented. You won’t just watch — you’ll build real AWS Cloud projects step by step, gaining skills that you can immediately apply in your job or certification journey.
What Makes This Course Different
100% Hands-On Labs: 30+ real-world Terraform projects on AWS Cloud aligned with Terraform Associate 003/4.
Concepts Made Simple: Every topic explained with real-world examples — no theory overload.
Complete Terraform Workflow: Learn init, plan, apply, destroy, and state management end to end.
Deep-Dive Topics: Variables, loops, modules, data blocks, functions, and Terraform Cloud (HCP).
Multi-Platform Setup: Installation and configuration on Windows, macOS, and Linux.
Real Automation Scenarios: Build EC2 instances, VPCs, subnets, and reusable modules.
Practical Knowledge with Unique Features: Learn by doing — every lecture connects theory with practical implementation and real AWS use cases.
Logical Structure: Course content is arranged in milestones, making it easy to follow, revise, and master each Terraform concept step by step.
Fast-Paced and Focused: The course is designed to keep you engaged, with short, to-the-point explanations for maximum learning efficiency.
Downloadable Resources: Includes Terraform code files, project examples, and reference materials to support your practice.
What You’ll Learn (And Why This Course Will Change Your Career)
This is not just another Terraform course.
This is a step-by-step journey designed to help you become confident in real-world DevOps projects.
From Confusion to Clarity
Understand Infrastructure as Code (IaC) in a simple and practical way
Clear your confusion between manual vs automated infrastructure
You will not just learn concepts — you will understand them deeply
Build Real Cloud Infrastructure (Hands-On)
Launch real resources like EC2, VPC, and Security Groups using Terraform
Learn how infrastructure is deployed in real production environments
No unnecessary theory — everything is practical and job-oriented
Master Terraform Like a DevOps Engineer
Use Terraform commands with confidence
Understand how Terraform works internally (state, plan, execution)
Avoid common mistakes beginners usually make
You will start thinking like a real DevOps Engineer
Automate Like a Professional
Handle complex configurations using Terraform variables
Automate repetitive tasks using count, for_each, and dynamic blocks
Solve real-world problems using Terraform functions
This helps you work efficiently and scale your infrastructure
Write Clean, Reusable and Scalable Code
Create and use Terraform modules like real organizations
Build reusable infrastructure (write once, use anywhere)
This is where you move from beginner to professional level
Work with Real Industry Concepts
Understand Terraform state and remote state clearly
Learn how teams collaborate using Terraform
Handle secrets and sensitive data securely
These are critical skills expected in real job roles
Work with Terraform Cloud (Real DevOps Workflow)
Understand CLI-driven and VCS-driven workflows
Learn how Terraform integrates with CI/CD pipelines
This reflects how real DevOps teams operate in organizations
Build Confidence with Real Projects
Follow a structured learning path from beginner to advanced
Complete hands-on labs designed for real-world scenarios
By the end of this course, you will be able to
design, deploy, and manage infrastructure independently
After This Course, You Will Be Able To:
Work on real DevOps and Cloud projects
Add Terraform projects to your resume
Prepare confidently for interviews
Move towards DevOps and Cloud Engineer roles
Learn from the Best
Taught by Bhavesh Atara, a Cloud Architect and Corporate Trainer with 22+ years of industry experience, this course is designed to turn beginners into confident engineers capable of deploying and managing real AWS infrastructure using Terraform.
What Will Students Learn in This Course
Understand the fundamentals of Infrastructure as Code (IaC) and how Terraform automates AWS infrastructure deployment.
Install and configure Terraform CLI and AWS CLI on Windows, macOS, and Linux.
Write Terraform configuration files to create and manage AWS resources such as EC2 instances, VPCs, subnets, and security groups.
Work confidently with Terraform variables, loops, dynamic blocks, and data sources to build flexible and reusable code.
Create and use Terraform modules to organize and scale complex cloud environments efficiently.
Manage Terraform state files, perform drift detection, and use import blocks to track existing AWS resources.
Use Terraform Cloud (HCP Terraform) for remote state management, collaboration, and version-controlled infrastructure automation.
Prepare for the HashiCorp Certified: Terraform Associate (003/4) exam with hands-on AWS-based labs and real-world practice.
This Course Also Includes
Lifetime Access to All Future Updates: Stay up-to-date with the latest Terraform features and improvements.
Responsive Instructor Support: Get your questions answered promptly by a knowledgeable instructor in the Q&A section.
Udemy Certificate of Completion: Download your certificate upon completing the course to showcase your achievement.
30-Day Money-Back Guarantee: Enjoy a risk-free learning experience with our 30-day “no questions asked” refund policy.
Your Cloud Journey Starts Here
Every lab brings you closer to becoming a Terraform-certified, job-ready Cloud Engineer.
Enroll today and start building your future — one Terraform command at a time.
Learn Practically. Build Confidently. Deploy Smartly — with CloudFolks HUB.