🧱
Модуль 1 · Основы
Переменные, зависимости, outputs, state
01
Введение в IaC + Terraform
Immutable Infrastructure
Immutable Infrastructure
Что такое IaC — Infrastructure as Code — и зачем он нужен? Первые
terraform init, plan, apply, destroy. Мини-проект: деплой статического веб-сайта на S3 с нуля.
02
Переменные и типы данных
Parameterized Config
Parameterized Config
Параметризация конфигурации: string, number, bool, list, map, object. Файлы
.tfvars, валидация. Проект: инстанс EC2, управляемый с помощью переменных.
03
Ресурсы и зависимости
Dependency Graph
Dependency Graph
Как Terraform строит граф зависимостей. Явные (
depends_on) и неявные зависимости. Проект: VPC + Subnet + Security Group + EC2 — полноценная сеть с нуля.
04
Outputs и Data Sources
Data-Driven Lookup
Data-Driven Lookup
Как получать данные из уже существующей инфраструктуры и передавать значения между конфигурациями. Проект: автоматический поиск самого свежего AMI + деплой EC2.
05
State — как Terraform всё запоминает
Remote State Locking
Remote State Locking
Файл state: зачем он нужен и чем грозит его потеря. Remote backend на S3, Locking для командной работы. Критически важная тема — ошибки в state обходятся дорого.
📈
Модуль 2 · Масштабирование
Модули, count/for_each, ALB, RDS, lifecycle
06
Модули — переиспользуемый код
Reusable Module Multi-AZ HA
Reusable Module Multi-AZ HA
Принцип DRY в Terraform: создание и использование модулей. Inputs, outputs, вложенные модули. Проект: модуль VPC с Multi-AZ NAT Gateway, который используется и на следующих занятиях.
07
Count и for_each
Fan-Out Pattern Multi-AZ HA
Fan-Out Pattern Multi-AZ HA
Динамическое создание ресурсов: N серверов в разных AZ одним блоком. Разница между count и for_each — когда что использовать. Индексация и обращение к ресурсам.
08
ALB + Auto Scaling Group
Load-Balanced Auto-Scaling Active-Active Multi-AZ HA
Load-Balanced Auto-Scaling Active-Active Multi-AZ HA
Отказоустойчивый веб-сервер: Application Load Balancer, Launch Template, Auto Scaling Group с проверками состояния (health checks). Паттерн, который применяется в 90% production-окружений.
09
RDS Multi-AZ
Active-Standby Failover Active-Passive Multi-AZ HA
Active-Standby Failover Active-Passive Multi-AZ HA
Управляемая база данных: PostgreSQL с автоматическим переключением при сбое (failover). Параметры, subnet groups, безопасность. Работа с чувствительными значениями и
prevent_destroy для защиты данных.
10
Lifecycle и Provisioners 📖 Самостоятельно
Blue-Green Lifecycle
Blue-Green Lifecycle
Правила жизненного цикла ресурсов:
create_before_destroy, ignore_changes, replace_triggered_by. Provisioners (local-exec, remote-exec) — когда они допустимы и почему их лучше избегать.
🏗️
Модуль 3 · Production Patterns
Dynamic blocks, функции, CDN, ECS, workspaces, Terragrunt
11
Dynamic Blocks и условия
Policy-as-Code
Policy-as-Code
Генерация повторяющихся блоков из переменных. Условные операторы (
count = var.enabled ? 1 : 0). Проект: гибкие Security Groups, управляемые переменными типа map.
12
Функции и выражения 📖 Самостоятельно
Computed Network Layout
Computed Network Layout
Встроенные функции Terraform: строковые, для работы с коллекциями, математические, файловые. Сложные выражения:
cidrsubnet(), merge(), lookup(). Справочное занятие с практическими примерами.
13
S3 + CloudFront CDN 🔴 YouTube Live
Edge-Cached Static Hosting Edge Caching
Edge-Cached Static Hosting Edge Caching
Глобальная доставка контента: S3 bucket в роли источника (origin), дистрибуция CloudFront, сертификат ACM для HTTPS. Origin Access Control (OAC), cache policies, привязка собственного домена (custom domain).
14
ECS Fargate
Serverless Containers Active-Active Serverless
Serverless Containers Active-Active Serverless
«Бессерверные» контейнеры на AWS (Serverless): Task Definition, Service, интеграция с ALB. IAM-роли для задач (tasks), репозиторий ECR.
jsonencode() для описания контейнеров.
15
Workspaces
Environment Isolation Multi-Environment
Environment Isolation Multi-Environment
Разделение окружений при единой кодовой базе: Dev / Staging / Prod. Переменные в зависимости от workspace, стратегии конфигурации. Когда достаточно workspaces, а когда нужен Terragrunt.
16
Terragrunt 📖 Самостоятельно
DRY Multi-Environment Multi-Environment
DRY Multi-Environment Multi-Environment
DRY-инфраструктура с несколькими окружениями:
terragrunt.hcl, наследование конфигурации, зависимости между модулями. Отдельный инструмент-надстройка над Terraform для сложных проектов.
⚡
Модуль 4 · Advanced Patterns
Lambda, event pipelines, IAM, Secrets, troubleshooting
17
Lambda + API Gateway
Serverless REST API Event-Driven Serverless
Serverless REST API Event-Driven Serverless
Serverless API: упаковка кода с помощью
archive_file, функция Lambda, сервис REST API Gateway. IAM-роли, CloudWatch Logs. Паттерн «бессерверной» архитектуры.
18
SNS + SQS + Lambda
Event-Driven Pipeline Event-Driven Fan-Out / Pub-Sub Serverless
Event-Driven Pipeline Event-Driven Fan-Out / Pub-Sub Serverless
Событийно-ориентированная (event-driven) архитектура: топики SNS, очереди SQS, обработчики Lambda. Resource policies, dead-letter queues. Построение пайплайна событий на сервисах AWS.
19
IAM Deep Dive 📖 Самостоятельно
Least-Privilege Access
Least-Privilege Access
Безопасная архитектура IAM: политики, роли, STS assume role, permission boundaries. Принцип минимальных привилегий. Тема, в которой ошибки = дыры в безопасности.
20
Secrets Manager + KMS
Encryption at Rest
Encryption at Rest
Управление секретами: Secrets Manager, SSM Parameter Store, шифрование с помощью KMS. Как не хранить пароли в коде. Ротация секретов, интеграция с RDS и Lambda.
21
Import, Drift, Troubleshooting 📖 Самостоятельно
Drift Detection & Recovery
Drift Detection & Recovery
Реальные проблемы: импорт существующих ресурсов в state, обнаружение дрейфа (drift), отладка (
TF_LOG). Восстановление после ошибок, terraform state mv/rm.
🌍
Модуль 5 · Enterprise Scale
Multi-region, CI/CD, мониторинг, финальный проект
22
Multi-Region
Active-Passive DR Active-Passive Multi-Region DR
Active-Passive DR Active-Passive Multi-Region DR
Disaster Recovery и репликация: несколько AWS-провайдеров, Route53 failover, S3 cross-region replication. Архитектура, которая переживёт «падение» целого региона.
23
CI/CD для Terraform
GitOps Pipeline GitOps / CI-CD
GitOps Pipeline GitOps / CI-CD
Автоматизация деплоя: GitHub Actions pipeline —
plan на PR и apply при merge. OIDC-аутентификация, approval gates, артефакты.
24
Мониторинг и оповещения
Observability Stack
Observability Stack
CloudWatch dashboards, метрики, алармы, уведомления SNS. Построение слоя observability для всей инфраструктуры. Цикл
for_each для шаблонизации алертов.
25
🎓 Финальный проект 📖 Самостоятельно
Production-Ready Architecture Active-Active Active-Passive Edge Caching Multi-AZ HA
Production-Ready Architecture Active-Active Active-Passive Edge Caching Multi-AZ HA
Всё вместе: production-grade стек с VPC, ECS, RDS, мониторингом, CI/CD и секретами. Несколько окружений, полная автоматизация. Защита проекта.