Terraform Course Complete Index & Guide
Course: Terraform for Beginners (ADV-IT)
YouTube Playlist: https://www.youtube.com/watch?v=R0CaxXhrfFE&list=PLg5SS_4L6LYujWDTYb-Zbofdl44Jxb2l8
Author: Denis Astahov (ADV-IT)
GitHub: https://github.com/adv4000/terraform-lessons
Language: Russian 🇷🇺
📚 Course Structure
Main Topics (8 files)
| # | File | Topics Covered | Level |
|---|---|---|---|
| 1 | 01-terraform-basics.md |
What is Terraform, Installation (Windows/Linux/macOS), First steps | Beginner |
| 2 | 02-atom-editor-aws-resources.md |
Atom editor setup, AWS credentials, Creating resources | Beginner |
| 3 | 03-managing-aws-resources.md |
Modifying, changing, destroying resources | Beginner |
| 4 | 04-variables-and-locals.md |
Variables, tfvars, locals, template files, file() function | Beginner |
| 5 | 05-advanced-features.md |
Dynamic blocks, lifecycle rules, outputs, dependencies, data sources | Intermediate |
| 6 | 06-loops-conditions-import.md |
Count, for_each, if conditions, local-exec, terraform import, taint | Intermediate |
| 7 | 07-modules-state-multicloud.md |
Creating modules, remote state (S3), workspaces, multi-region, multi-account, GCP | Advanced |
| 8 | terraform-commands-reference.md |
Complete command reference and troubleshooting guide | Reference |
Quick Index
| Reference | File | Description |
|---|---|---|
| Commands | terraform-commands-reference.md |
All terraform commands |
| Course Guide | terraform-course-index.md |
This file |
🎯 Course Overview
Урок 1-2: Основы и установка
Topics: Что такое Terraform, преимущества, установка Outcome: Установленный Terraform на вашей ОС
Урок 3-4: Редактор и первые ресурсы
Topics: Atom editor, AWS ключи, создание первого ресурса Outcome: Созданные ресурсы в AWS через Terraform
Урок 5-7: Управление ресурсами
Topics: Изменение, обновление, удаление ресурсов Outcome: Полное управление жизненным циклом ресурсов
Урок 8-10: Переменные и файлы
Topics: Переменные, tfvars файлы, внешние файлы, шаблоны Outcome: Параметризованные конфигурации
Урок 11-15: Продвинутые функции
Topics: Dynamic блоки, lifecycle, outputs, зависимости, data sources Outcome: Production-ready конфигурации
Урок 16-21: Циклы, условия, импорт
Topics: count, for_each, условия, import, taint Outcome: Гибкие и переиспользуемые конфигурации
Урок 22-27: Модули и multi-cloud
Topics: Создание модулей, remote state, workspaces, multi-region/account, GCP Outcome: Enterprise-level infrastructure as code
Урок 28-40: Дополнительно
Topics: Provisioners, conditions/lookups, Terraform Cloud, sertification prep Outcome: Production deployment и optimization
🚀 Learning Paths
Path 1: Quick Start (6-8 hours)
- 01-terraform-basics.md (1 hour)
- 02-atom-editor-aws-resources.md (1 hour)
- 04-variables-and-locals.md (1-2 hours)
- 03-managing-aws-resources.md (1 hour)
- 06-loops-conditions-import.md (2-3 hours)
Result: Можете создавать простую инфраструктуру на AWS
Path 2: Developer (15-20 hours)
- 01-terraform-basics.md
- 02-atom-editor-aws-resources.md
- 03-managing-aws-resources.md
- 04-variables-and-locals.md
- 05-advanced-features.md
- 06-loops-conditions-import.md
- 07-modules-state-multicloud.md (первая часть)
Result: Production-ready код с модулями и best practices
Path 3: Complete (25-35 hours)
Все файлы по порядку от начала до конца
Result: Enterprise-level infrastructure management
💡 Key Concepts
Terraform Workflow
Write → Plan → Apply → Destroy
↓ ↓ ↓ ↓
Code Preview Deploy Cleanup
File Types
| File | Purpose |
|---|---|
*.tf |
Основные конфигурационные файлы |
terraform.tfvars |
Значения переменных |
terraform.tfstate |
Состояние инфраструктуры (НЕ КОММИТИТЬ!) |
*.auto.tfvars |
Автоматически загружаемые переменные |
Core Objects
| Object | Description |
|---|---|
| Provider | Облачный провайдер (AWS, GCP, Azure) |
| Resource | Облачный ресурс (EC2, S3, VPC) |
| Variable | Входной параметр |
| Output | Выходное значение |
| Local | Локальная переменная |
| Module | Переиспользуемый блок кода |
| Data source | Информация о существующих ресурсах |
✅ Learning Checklist
Basics
- [ ] Установить Terraform
- [ ] Понимаете что такое IaC
- [ ] Знаете структуру HCL синтаксиса
- [ ] Можете создать простой ресурс
Variables & Configuration
- [ ] Объявляете переменные
- [ ] Используете tfvars файлы
- [ ] Работаете с локальными переменными
- [ ] Используете внешние файлы (file, templatefile)
Resource Management
- [ ] Создаете ресурсы
- [ ] Изменяете ресурсы
- [ ] Удаляете ресурсы
- [ ] Используете lifecycle правила
Advanced Features
- [ ] Создаете outputs
- [ ] Используете data sources
- [ ] Работаете с dependencies
- [ ] Создаете dynamic блоки
Control Flow
- [ ] Используете count циклы
- [ ] Используете for_each циклы
- [ ] Применяете условия
- [ ] Импортируете ресурсы
Modules & Organization
- [ ] Создаете модули
- [ ] Используете remote state (S3)
- [ ] Работаете с workspaces
- [ ] Развертываете в несколько регионов
Best Practices
- [ ] Структурируете код
- [ ] Используете version control (Git)
- [ ] Документируете конфигурацию
- [ ] Следуете best practices
📖 Recommended Study Order
1. Basics (01-02)
↓
2. First Resources (02-03)
↓
3. Variables (04)
↓
4. Advanced Features (05)
↓
5. Loops & Conditions (06)
↓
6. Modules & Organization (07)
↓
7. Master all concepts
↓
8. Build real projects
🔧 Common Use Cases
Case 1: Simple Web Server
Files needed: 01, 02, 03, 04 Time: 2-3 hours Result: EC2 instance with security group
Case 2: Multi-Environment (Dev/Prod)
Files needed: 01-04, 06 Time: 4-6 hours Result: Separate environments with variables
Case 3: Reusable VPC Module
Files needed: All + examples Time: 8-10 hours Result: Published module on Terraform Registry
Case 4: Multi-Cloud Setup
Files needed: 07 (GCP section) Time: 6-8 hours Result: AWS + GCP infrastructure
Case 5: Enterprise Infrastructure
Files needed: All files Time: 20-30 hours Result: Production-grade infrastructure
🎓 Project Ideas
Beginner Projects
- Single EC2 Instance - Simple web server
- VPC + Subnet - Networking basics
- S3 Bucket - Object storage
- Security Groups - Network security
Intermediate Projects
- Auto Scaling Group - Multi-instance setup
- RDS Database - Managed database
- Load Balancer - Traffic distribution
- Multi-Environment Setup - Dev, Staging, Prod
Advanced Projects
- Custom Module - Reusable VPC module
- Microservices - ECS/Kubernetes
- CI/CD Pipeline - CodePipeline integration
- Disaster Recovery - Multi-region setup
📚 Additional Resources
Official Documentation
- Terraform Docs: https://www.terraform.io/docs/
- AWS Provider: https://registry.terraform.io/providers/hashicorp/aws/latest/docs
- GCP Provider: https://registry.terraform.io/providers/hashicorp/google/latest/docs
- Registry: https://registry.terraform.io/
Learning Platforms
- HashiCorp Learn: https://learn.hashicorp.com/terraform
- Linux Academy: https://linuxacademy.com/
- A Cloud Guru: https://acloudguru.com/
Community
- Terraform Discuss: https://discuss.hashicorp.com/c/terraform/
- Reddit: https://reddit.com/r/terraform/
- GitHub Issues: https://github.com/hashicorp/terraform/issues
🔒 Best Practices Summary
Security
- ✅ Never commit state files to Git
- ✅ Use AWS IAM roles instead of keys
- ✅ Encrypt sensitive outputs
- ✅ Use remote state backend (S3 + DynamoDB)
Organization
- ✅ Use meaningful names
- ✅ Organize code in modules
- ✅ Document variables and outputs
- ✅ Use version control
Development
- ✅ Always run
terraform planbefore apply - ✅ Use variable files for different environments
- ✅ Test locally before production
- ✅ Keep state clean and organized
Maintenance
- ✅ Regular backups of state
- ✅ Monitor for state drift
- ✅ Keep Terraform updated
- ✅ Review and audit changes
📋 Quick Reference Commands
# Setup
terraform init
terraform validate
terraform fmt -recursive
# Plan & Apply
terraform plan -var-file="prod.tfvars"
terraform apply -var-file="prod.tfvars"
# State Management
terraform state list
terraform state show aws_instance.web
terraform import aws_instance.web <id>
# Debug
terraform plan -json > plan.json
export TF_LOG=DEBUG
# Destroy
terraform destroy -var-file="prod.tfvars"
📝 Document Information
- Created: November 26, 2025
- Version: 1.0
- Total Files: 8 lesson files + 2 reference files
- Estimated Study Time: 20-40 hours
- Last Updated: November 26, 2025
🎯 Goals After Course
You Will Be Able To:
- ✅ Create infrastructure as code
- ✅ Manage multiple environments
- ✅ Create reusable modules
- ✅ Deploy to AWS, GCP, Azure
- ✅ Manage state effectively
- ✅ Implement best practices
- ✅ Collaborate with teams
- ✅ Troubleshoot issues
Career Impact:
- 📈 DevOps/Infrastructure skills
- 📈 Cloud certifications
- 📈 Automation expertise
- 📈 Better job opportunities
Ready to master Terraform? Let's get started! 🚀
Start with 01-terraform-basics.md and follow the learning path that matches your goals.