> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Course: Terraform Basics Training Course

> This article introduces a comprehensive course on Terraform and Infrastructure as Code, covering installation, HCL basics, core concepts, and advanced functionalities.

Notes for the **Terraform Basics Training Course** course: 57 lessons across 12 sections.

## Introduction

* [Course Introduction](/docs/Terraform-Basics-Training-Course/Introduction/Course-Introduction/page.md)

## Introduction to Infrastructure as Code

* [Challenges with Traditional IT Infrastructure](/docs/Terraform-Basics-Training-Course/Introduction-to-Infrastructure-as-Code/Challenges-with-Traditional-IT-Infrastructure/page.md)
* [Types of IAC Tools](/docs/Terraform-Basics-Training-Course/Introduction-to-Infrastructure-as-Code/Types-of-IAC-Tools/page.md)
* [Why Terraform](/docs/Terraform-Basics-Training-Course/Introduction-to-Infrastructure-as-Code/Why-Terraform/page.md)

## Getting Started with Terraform

* [Installing Terraform](/docs/Terraform-Basics-Training-Course/Getting-Started-with-Terraform/Installing-Terraform/page.md)
* [HashiCorp Configuration Language HCL Basics](/docs/Terraform-Basics-Training-Course/Getting-Started-with-Terraform/HashiCorp-Configuration-Language-HCL-Basics/page.md)
* [Update and Destroy Infrastructure](/docs/Terraform-Basics-Training-Course/Getting-Started-with-Terraform/Update-and-Destroy-Infrastructure/page.md)

## Terraform Basics

* [Using Terraform Providers](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Using-Terraform-Providers/page.md)
* [Configuration Directory](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Configuration-Directory/page.md)
* [Multiple Providers](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Multiple-Providers/page.md)
* [Using Input Variables](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Using-Input-Variables/page.md)
* [Understanding the Variable Block](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Understanding-the-Variable-Block/page.md)
* [Using Variables in Terraform](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Using-Variables-in-Terraform/page.md)
* [Resource Attributes](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Resource-Attributes/page.md)
* [Resource Dependencies](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Resource-Dependencies/page.md)
* [Output Variables](/docs/Terraform-Basics-Training-Course/Terraform-Basics/Output-Variables/page.md)

## Terraform State

* [Introduction to Terraform State](/docs/Terraform-Basics-Training-Course/Terraform-State/Introduction-to-Terraform-State/page.md)
* [Purpose of State](/docs/Terraform-Basics-Training-Course/Terraform-State/Purpose-of-State/page.md)
* [Terraform State Considerations](/docs/Terraform-Basics-Training-Course/Terraform-State/Terraform-State-Considerations/page.md)

## Working with Terraform

* [Terraform Commands](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/Terraform-Commands/page.md)
* [Mutable vs Immutable Infrastructure](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/Mutable-vs-Immutable-Infrastructure/page.md)
* [LifeCycle Rules](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/LifeCycle-Rules/page.md)
* [Datasources](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/Datasources/page.md)
* [Meta Arguments](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/Meta-Arguments/page.md)
* [Count](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/Count/page.md)
* [for each](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/for-each/page.md)
* [Version Constraints](/docs/Terraform-Basics-Training-Course/Working-with-Terraform/Version-Constraints/page.md)

## Terraform with AWS

* [Getting Started with AWS](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Getting-Started-with-AWS/page.md)
* [Demo Setup an AWS Account](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Demo-Setup-an-AWS-Account/page.md)
* [Introduction to IAM](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Introduction-to-IAM/page.md)
* [Demo IAM](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Demo-IAM/page.md)
* [Programmatic Access](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Programmatic-Access/page.md)
* [AWS IAM with Terraform](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/AWS-IAM-with-Terraform/page.md)
* [IAM Policies with Terraform](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/IAM-Policies-with-Terraform/page.md)
* [Introduction to AWS S3](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Introduction-to-AWS-S3/page.md)
* [S3 with Terraform](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/S3-with-Terraform/page.md)
* [Introduction to DynamoDB](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Introduction-to-DynamoDB/page.md)
* [Demo Dynamodb](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/Demo-Dynamodb/page.md)
* [DynamoDB with Terraform](/docs/Terraform-Basics-Training-Course/Terraform-with-AWS/DynamoDB-with-Terraform/page.md)

## Remote State

* [What is Remote State and State Locking](/docs/Terraform-Basics-Training-Course/Remote-State/What-is-Remote-State-and-State-Locking/page.md)
* [Remote Backends with S3](/docs/Terraform-Basics-Training-Course/Remote-State/Remote-Backends-with-S3/page.md)
* [Terraform State Commands](/docs/Terraform-Basics-Training-Course/Remote-State/Terraform-State-Commands/page.md)

## Terraform Provisioners

* [Introduction to AWS EC2 optional](/docs/Terraform-Basics-Training-Course/Terraform-Provisioners/Introduction-to-AWS-EC2-optional/page.md)
* [Demo Deploying an EC2 Instance optional](/docs/Terraform-Basics-Training-Course/Terraform-Provisioners/Demo-Deploying-an-EC2-Instance-optional/page.md)
* [AWS EC2 with Terraform](/docs/Terraform-Basics-Training-Course/Terraform-Provisioners/AWS-EC2-with-Terraform/page.md)
* [Terraform Provisioners](/docs/Terraform-Basics-Training-Course/Terraform-Provisioners/Terraform-Provisioners/page.md)
* [Provisioner Behaviour](/docs/Terraform-Basics-Training-Course/Terraform-Provisioners/Provisioner-Behaviour/page.md)
* [Considerations with Provisioners](/docs/Terraform-Basics-Training-Course/Terraform-Provisioners/Considerations-with-Provisioners/page.md)

## Terraform Import, Tainting Resources and Debugging

* [Terraform Taint](/docs/Terraform-Basics-Training-Course/Terraform-Import-Tainting-Resources-and-Debugging/Terraform-Taint/page.md)
* [Debugging](/docs/Terraform-Basics-Training-Course/Terraform-Import-Tainting-Resources-and-Debugging/Debugging/page.md)
* [Terraform Import](/docs/Terraform-Basics-Training-Course/Terraform-Import-Tainting-Resources-and-Debugging/Terraform-Import/page.md)

## Terraform Modules

* [What are modules](/docs/Terraform-Basics-Training-Course/Terraform-Modules/What-are-modules/page.md)
* [Creating and Using a Module](/docs/Terraform-Basics-Training-Course/Terraform-Modules/Creating-and-Using-a-Module/page.md)
* [Using Modules from the Registry](/docs/Terraform-Basics-Training-Course/Terraform-Modules/Using-Modules-from-the-Registry/page.md)

## Terraform Functions and Conditional Expressions

* [More Terraform Functions](/docs/Terraform-Basics-Training-Course/Terraform-Functions-and-Conditional-Expressions/More-Terraform-Functions/page.md)
* [Conditional Expressions](/docs/Terraform-Basics-Training-Course/Terraform-Functions-and-Conditional-Expressions/Conditional-Expressions/page.md)
* [Terraform Workspaces OSS](/docs/Terraform-Basics-Training-Course/Terraform-Functions-and-Conditional-Expressions/Terraform-Workspaces-OSS/page.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.