
Explore the conceptual foundations of Terraform and OpenTofu, including resources, modules, data sources, provisioners, providers, and input/output variables, and compare Terraform with Ansible and CloudFormation.
Understand why Terraform and OpenTofu are essential for provisioning, scaling, and collaborating on multi-region, multi-cloud infrastructure as code with a single source of truth.
Provision infrastructure across cloud providers and services using Terraform providers. Define resources with the declarative HashiCorp Configuration Language, plan and apply via a state file, modules, and policy libraries.
Discover how Terraform core interprets tf configurations and calls providers from the registry. Write main.tf, generate a plan, apply changes, or destroy resources, and manage the state to track drift.
Compare Terraform and Ansible, highlighting Terraform as a specialized cloud provisioning tool with multi-cloud support, plan before apply, state locking, and DAG-based parallelism, contrasted with Ansible's general configuration management.
Automate AWS web app with Terraform, building a VPC with public and private subnets across availability zones, EC2 and RDS for high availability, using modules, variables, data sources, and provisioners.
Begin with an introduction to Terraform and OpenTofu, then dive into infrastructure as code and cloud provisioning using these tools.
Download the Course Outline attached.
Sign up for the AWS free tier by creating a new account, validating payment and phone, then log in and create a limited-access IAM user on the basic free plan.
Sign up for Google Cloud with a $300 free credit, explore the free tier, activate the account using a Google account and payment method, and run five instances.
Create an AWS IAM user in the console with programmatic access, assign policy-based permissions (including S3 and Dynamo), and securely manage credentials for Terraform workflows.
Install terraform on macOS by downloading the macOS zip from the provider, unzip it, move the terraform binary to /usr/local/bin, and verify the version 0.11.7.
Install terraform on Ubuntu by downloading the Linux static binary from the official page, unzip it, move the binary to /usr/local/bin for system-wide access, and verify the version (0.11.7).
Launch an EC2 instance from the AWS console, using the Ubuntu 18.04 image in the default VPC with a key pair, then explore Terraform providers and resources for automation.
Initialize the AWS provider with Terraform, validate your setup, and configure credentials in the environment to plan and apply infrastructure changes.
Learn to add your first Terraform resource to create an AWS instance, using provider configurations, resource properties like AMI and instance_type, and tags, then validate, plan, and apply the deployment.
Explore how Terraform applies modify resources by comparing current and desired state, distinguishing mutable and immutable properties, and choosing in-place updates or recreation with create before deletion.
Learn how to delete resources with terraform, including terminating instances from the console, running terraform destroy, targeting specific resources with -target, and using auto-approve for quick destruction.
Learn to control resource instances with count, timeouts, and lifecycle metaparameters in Terraform and OpenTofu. Compare resource-specific arguments with global metaparameters, and use plan and apply to create multiple instances.
Discover how to protect an EC2 instance from destruction using a lifecycle prevent_destroy setting, override with per-resource properties, and selectively destroy one instance with targeted Terraform commands.
Learn to launch infrastructure across multiple regions by configuring multiple providers and region-specific provider blocks, then attach resources to the appropriate provider to deploy in Singapore and Virginia.
Define explicit dependencies between resources by creating a keeper key pair and linking it to an instance, ensuring the keeper is created first with depends_on.
Define a security group for the front-end app, specify ingress rules (port 22, tcp, cidr blocks), and use plan and apply to attach it to the instance.
Associate the security group with the instance by updating its properties and referencing the security group IDs, then verify access via port 22 using the created key pair.
Learn how to clean up infrastructure by automatically destroying all created resources with terraform destroy, including instances and security groups, leaving a clean default state.
Explore why defining variables and attribute references matters for VPC security group IDs, enabling in-place upgrades and avoiding hardcoding by parametrizing infrastructure with automatic variables.
Learn how attribute references and variable interpolation let you dynamically fetch a security group's id from state, avoiding hard coded values and enabling implicit resource dependencies.
Explore how attribute references enable dynamic configuration and reveal implicit and explicit dependencies in a resource dependency graph for security groups and instances.
Define and use input variables in terraform and OpenTofu, specifying type, default values, and descriptions, and reference them with var.name to configure instances, tags, and timeouts.
Define variables to drive infrastructure with reusable maps and properties, reference them across resources, and validate changes with a plan to update tags, instance types, and keys efficiently.
Master variable precedence in Terraform by overriding with environment variables, files, or command line arguments, and preview changes with a plan before applying, including how overrides can trigger resource recreation.
Define output variables to display instance details such as public DNS, public IP, hostname, and key pair after plan and apply, including multiple instances when using count.
The lecture demonstrates cleaning up by listing existing resources with Terraform state list, then deleting all resources, including two instances and a security group, to restore a clean original state.
Learn provisioners theory by using file, directory, and remote exec to copy files, run scripts, and configure a provisioned instance at creation time and destroy time with triggers.
Learn how to use the Terraform file provisioner to copy a user data script, install Apache, and deploy the BHB application through provisioning a server and configuring SSH connections.
Add a security group resource with ingress rules using terraform. Debug remote execution and file provisioners by ensuring script permissions and outbound internet access.
learn how to taint and untaint Terraform resources to control recreations, trigger plan-driven repairs, and provision apps with remote exec and proper security group rules.
Delete the state and all created resources, list resources with terraform state list, and use auto-approve to safely recreate from a clean slate.
Explore data sources and learn how to fetch and reference information from configurations and external resources, filter by tags and state, and dynamically configure database connections.
Provision an RDS database manually via the AWS console, set the engine and credentials, retrieve the endpoint, and use data sources to fetch dynamic details for app configuration.
Discover and reference RDS properties using Terraform data sources to fetch endpoint, database name, and credentials from an externally created database, then apply these values to configure the web app.
Learn how to use a null resource with local-exec to update server configuration files with dynamically discovered database credentials, replacing placeholders, and apply changes via terraform plan and apply.
Learn how to update null resources with triggers to run only when necessary, using data sources to reference ideas configurations and automatically refresh connection strings and endpoints.
Learn how to clean up cloud resources after a Terraform and OpenTofu project, resolve dependency issues, manage resource references, and troubleshoot security group deletions.
Explore state management in Terraform and why the state is stored. Learn how state maps the real resources and enables plan, apply, and backups.
Transition from local to remote state with backends to enable collaboration and locking among multiple developers, and configure remote storage for a shared state.
Configure s3 as the backend for Terraform, creating a uniquely named bucket, enabling versioning, and defining the bucket, region, and key in the backend configuration.
Explore how state locking with a remote S3 backend enforces a single source of truth, preventing concurrent Terraform changes by multiple developers and avoiding inconsistent deployments.
Lock your terraform state with a dynamodb table using a lock id as the primary key to prevent race conditions and ensure a single source of truth.
Destroy resources with terraform destroy to clean up what you created in this section, while the S3 backend locks the state and keeps the bucket, files, and the DynamoDB table.
Learn to prune and delete previous state file versions after seven days by applying a lifecycle rule to a bucket prefix, preserving the latest version.
Create a custom VPC with a public subnet, configure security groups, launch an instance, attach an elastic IP, and prepare for Terraform automation.
Explore modules theory, organizing code with models and submodules, and learn to call modules from local, registry, or hub sources using inputs and outputs.
Invoke the VPC module from the reform registry with custom variables to create or manage a VPC, including subnets and tags, and initialize to fetch the version and view outputs.
Configure providers for modules and launch a VPC by validating, planning, and applying changes; examine region settings, subnets, route tables, and the internet gateway.
Master Terraform from the ground up and confidently prepare for the HashiCorp Certified: Terraform Associate (003) exam.
This is the only course you need to build strong hands-on skills in Infrastructure as Code using Terraform and lay the foundation to become a certified Terraform Associate.
Designed for cloud and DevOps professionals, this bootcamp goes beyond theory. You will start automating real-world infrastructure from the first module using Terraform on AWS and Azure. Along the way, you’ll learn every essential Terraform concept, build reusable infrastructure modules, and manage state and secrets securely.
This course is also your launchpad to certification. We’ve aligned the entire structure of the course with the official Terraform Associate exam objectives (version 003). You’ll be exam-ready by the time you complete the course.
What you'll learn:
Understand core concepts of Infrastructure as Code (IaC)
Install and configure Terraform on your local environment
Work with providers, provisioners, data sources, variables, and outputs
Use the core Terraform workflow: write, plan, apply, destroy
Manage Terraform state, including remote backends and state locking
Secure secrets and sensitive variables
Build and use reusable Terraform modules
Automate infrastructure provisioning on AWS and Azure
Understand HCP Terraform features and capabilities
Who this course is for:
DevOps engineers, system administrators, cloud engineers
Anyone preparing for the HashiCorp Certified: Terraform Associate (003) exam
Professionals seeking to automate cloud provisioning using Terraform
Learners interested in mastering Infrastructure as Code
Why choose this course:
Built by an industry expert with 70K+ DevOps students
Maps directly to the official certification objectives
Packed with real-world automation labs and hands-on projects
Lifetime access with continuous updates as the exam evolves
Note: Practice exams, exam blueprinting guide, and additional certification resources will be added shortly.
If you want to gain real Terraform expertise while getting ready to pass the exam, this is the course for you.