
Learn infrastructure as code with Terraform on AWS through theory and hands-on labs. Build scalable infrastructure, tear down and reuse scripts, and apply best practices via capstone projects.
The attachments/Resources include:
1) The PDF file for the course slides.
2) The Capstone project - you need to attempt solving this project before you look at the solution provided.
3) The code for the Capstone project in two versions:
a) without variables, for easier follow up, the configuration is just a main file
b) with vairables.tf file, terraform.tfvars file, and an output.tf file
4) Hands-On Labs files
Enjoy the course!
Build a multi-tier aws web app with terraform, creating vpc, public and private subnets, igw, two azs, nat gateways, and apache on auto scaling vms with target groups.
Define infrastructure as code with Terraform to automate provisioning across cloud providers, maintain state, detect drift, and apply or destroy changes via versioned configurations.
Master Terraform overview as an infrastructure as code tool that defines the desired state, detects drifts, and uses HashiCorp configuration language templates to manage multi-cloud resources.
Install Terraform on macOS, Windows, or Linux by downloading from HashiCorp and following platform-specific steps. Then install the HashiCorp extension in Visual Studio Code and verify the Terraform version.
Install Terraform on Windows using the Chocolatey package manager. Open an elevated PowerShell, install Chocolatey, then run choco install Terraform and verify the installation with Terraform --version.
Install and set up visual studio code on windows, enable the hashicorp terraform extension, and prepare to write and run terraform configurations in this course.
Explore Terraform configuration files, written in the HashiCorp configuration language, using .tf or .tf.json extensions and organized into provider and resource blocks across directory-based files.
Understand how terraform providers abstract cloud APIs to manage aws resources like ec2, security groups, and vpcs; define providers in configuration and use the registry for partner or community options.
Learn to authenticate Terraform on AWS using default profiles, environment variables, and shared credentials, and apply, plan, and destroy a VPC with the AWS provider.
Learn how to authenticate Terraform with AWS using a specified profile, environment variables, and credential files, and see how to apply changes to create VPCs securely.
Master the Terraform workflow from init to apply, including planning, validating syntax, and destroying infrastructure with plan files and auto-approve options.
Work through a hands-on lab to explore the Terraform workflow, from init and validate to plan, apply, refresh state, and destroy an S3 bucket using the AWS provider.
Master Terraform resources with resource blocks for AWS EC2, VPC, and providers, including mandatory and optional arguments, attributes, and local names. Learn to reference resource attributes across modules and configurations.
Learn how Terraform resolves implicit and explicit resource dependencies using a graph to order EC2, S3 bucket, and elastic IP creation, ensuring correct sequencing.
Explain how to enforce resource order in terraform with depends_on, ensuring the S3 bucket completes before the EC2 instance. Compare implicit and explicit dependencies with a hands-on lab.
Use Terraform output blocks to display resource attributes such as ARNs, IDs, and public IPs after apply, with optional descriptions and sensitive handling, reflected in the tf state.
Explore Terraform output blocks, view VPC ID and S3 ARN in TF state, and learn handling of sensitive data with the random password and output attributes.
This lecture demonstrates building a Terraform AWS VPC lab: main VPC, public subnet, HTTPS inbound, EC2 instance, and a depends-on output block showing the instance public IP.
Explore the resource lifecycle meta arguments in Terraform, including create before destroy, ignore changes, and prevent destroy, to control resource replacement, protect important resources, and ignore nonessential edits.
Learn how to comment in Terraform using block, hash, and line styles, and explore essential Terraform documentation and tutorials for AWS, CLI commands, and the registry for the latest version.
Learn how Terraform tracks infrastructure with the tf state file, compares current and desired states, and uses plan and apply with refresh options to reconcile changes.
Explore managing terraform state for an AWS S3 bucket, using plan, apply, and refresh to reconcile deployed resources with configuration and observe TF state changes and tags.
Configure and enforce Terraform and provider versions using the Terraform block and required_providers, configure the provider block with a local name, and manage the AWS plugin constraints for reliable infrastructure.
Explore Terraform data sources to fetch AWS region and availability zones, AMIs, and instance type offerings, using data blocks and filters to drive configurations.
Explore configuring the same provider across regions with aliases, using provider blocks and referencing alias in resources to deploy in us east one and us west two with different profiles.
Explore terraform provisioners, including local-exec, to run commands on the local machine or after resource creation, with examples like echoing the private IP to a local file.
Explore remote-exec and file provisioners in Terraform, which connect to a created AWS EC2 instance to run scripts or transfer files, installing nginx and configuring the host.
Launch an EC2 instance with Terraform, SSH in using a key, and install nginx via remote-exec provisioner; compare with using a user-data script to run inline commands.
Learn how Terraform variables act as boxes in memory to hold values, enabling you to reference them with var.name across a security group configuration to avoid repetitive updates.
Explore Terraform variable assignment approaches, including command line -var, -var-file, tfvars files, and environment variables, and follow best practices to keep static values out of the main configuration.
Master Terraform variable data types, including strings, numbers, booleans, lists, maps, and sets, and learn how to reference them while observing reserved names like count and depends_on.
Explore Terraform variable data types through hands-on labs, using lists and maps, tfvars, and output blocks to see how strings and numbers are interpreted, with practical AWS provider context.
Master string interpolation in Terraform to convert variables to strings and insert them into a string, and use the count parameter and count.index to create and name multiple resources.
Demonstrate string interpolation in Terraform by inputting variables, referencing elastic IPs, and configuring security group CIDR blocks with precise values.
Learn to use Terraform count and count.index to create multiple AWS IAM users with unique names and tags via string interpolation, and observe plan, apply, and potential destroy-recreate outcomes.
Explore Terraform conditionals that select values and resource counts based on variables, using boolean expressions to choose between dev or prod configurations and instance sizes.
Learn to use Terraform locals to create reusable tag maps for EC2 instances, reference locals in other locals and resources, and derive values from variables during plan and apply.
Explore the Terraform substring function, length function, and contains function with practical examples of offset, length, and containment checks for lists and strings.
Explore how to embed a validation block in variable definitions to constrain inputs with type checks, length and prefix rules, and clear error messages for server_ami and instance_type variables.
Explore how Terraform modules and workspaces enable code reuse, standardization, and faster troubleshooting across teams. Build and reference root and child modules, using local and remote sources to centralize configurations.
Explore how to call child modules from a root module in Terraform, pass input variables, and control sources, versions, and meta arguments like count, for_each, providers, and depends_on.
Use variables in child modules to support reusability across development, production, and other environments, and use locals in the root module to enforce fixed settings and governance.
Explore using variables and locals with Terraform modules, showing how to override child module inputs from the root module and compare variable versus local configurations for EC2 and security groups.
Navigate the Terraform registry modules, learn to browse by provider, assess reliability via downloads and versions, and specify module source and version for AWS, Azure, and community modules.
Start with modules in mind when configuring Terraform to boost portability and reusability. Use local modules and the public registry, fork and tailor existing modules.
Use Terraform workspaces to deploy the same configuration across production, development, and testing by maintaining separate state files, enabling concurrent, isolated environments from one machine.
This hands-on lab shows using Terraform workspaces to tailor AWS EC2 instance types and tags via workspace-based lookup maps, with per-workspace tf state and commands like workspace list and select.
You're now ready to begin your Capstone project.
To get started, download the PDF of the project from the resources provided.
For your convenience, we’ve also included the solution. However, we encourage you to try solving the project on your own first, before reviewing the solution.
Have fun and enjoy working on the project!
Explore your next learning steps with Dolphin Academy: from YAML and Git to cloud and DevOps, including AWS introduction, Azure Fundamentals, Docker, and Kubernetes, taking you from zero to advanced.
Build confidence using Terraform, explore documentation, and deploy and automate infrastructure as code on AWS, other clouds, or on premises. Share feedback and explore career programs and learning opportunities.
Why Learn Terraform Now?
In today’s fast-paced tech landscape, Cloud Engineering, Cloud Ops, and DevOps roles are in high demand, and expertise in Infrastructure as Code (IaC) is a must-have skill. Terraform is at the heart of this transformation, and companies are actively seeking professionals who can leverage it for scalable, efficient cloud infrastructure operations and management.
With the global IaC market projected to hit $3 billion by 2030, growing at an impressive 20-24% annually, the time to invest in Terraform is now.
This growing demand opens up exciting opportunities and career paths for skilled professionals. HashiCorp Terraform stands as the most popular IaC tool in the industry today—it's a game-changer for your career.
Course Overview
This course is your fast track to mastering Terraform on AWS. Starting from the fundamentals, you'll rapidly gain confidence with hands-on experience that will leave you prepared to tackle real-world challenges. The course balances theoretical knowledge with practical application, so you'll learn not just the "how," but also the "why" behind every Terraform command you execute.
Why Choose This Course?
Effortless Learning: The course is designed with a smooth learning curve, making complex Terraform concepts easy to grasp for absolute beginners.
35+ Hands-On Labs: Reinforce your knowledge with practical, real-world labs that give you the skills to tackle any Terraform project.
250+ Pages of Resources: Get a comprehensive PDF student book filled with course slides and additional reference material (as applicable)—your go-to guide for continued learning.
Ready-to-Use Code: Access all the code from hands-on labs, giving you a jump-start in your Terraform journey.
Section Quizzes: Stay engaged and test your understanding through regular quizzes after each section.
Capstone Project: Showcase your new skills by deploying a highly available architecture on AWS, complete with Apache, VPC, Routing, Load Balancing, EC2, NAT Gateways, Security Groups, Auto-Scaling, and more. It’s the ultimate hands-on experience!
Real-World Impact: You'll be amazed at what you can achieve with Terraform by the end of this course. The skills you acquire will have a direct, impactful effect on your career!
Learn from an Expert
This course is crafted and taught by an industry expert with over 25 years of experience in IT, cloud infrastructure, and DevOps. With more than a decade of teaching experience, he has helped over 120,000 students across 180 countries successfully master key technologies like AWS, Docker, Kubernetes, CI/CD, Ansible, and Terraform.
Why Wait?
When you learn from an AWS and Terraform expert, you’re setting yourself up for success. Don’t miss out on the chance to fast-track your Terraform mastery and step into the world of Infrastructure as Code with confidence.
Enroll now and get ready to transform your career—become a Terraform pro in record time!