☁️ Практический курс

AWS + Terraform

От первого terraform apply до инфраструктуры уровня Production Ready. 25 тем (18 лекций, +6 тем для самостоятельного изучения, +1 тема в формате YouTube LIVE).

25тем
5модулей
L1→L5уровни
47K+строк кода
🧱

Модуль 1 · Основы

Переменные, зависимости, outputs, state

01
Введение в IaC + Terraform
Immutable Infrastructure
Что такое IaC — Infrastructure as Code — и зачем он нужен? Первые terraform init, plan, apply, destroy. Мини-проект: деплой статического веб-сайта на S3 с нуля.
S3initapply
02
Переменные и типы данных
Parameterized Config
Параметризация конфигурации: string, number, bool, list, map, object. Файлы .tfvars, валидация. Проект: инстанс EC2, управляемый с помощью переменных.
EC2variablestfvars
03
Ресурсы и зависимости
Dependency Graph
Как Terraform строит граф зависимостей. Явные (depends_on) и неявные зависимости. Проект: VPC + Subnet + Security Group + EC2 — полноценная сеть с нуля.
VPCEC2depends_on
04
Outputs и Data Sources
Data-Driven Lookup
Как получать данные из уже существующей инфраструктуры и передавать значения между конфигурациями. Проект: автоматический поиск самого свежего AMI + деплой EC2.
EC2outputsdata
05
State — как Terraform всё запоминает
Remote State Locking
Файл state: зачем он нужен и чем грозит его потеря. Remote backend на S3, Locking для командной работы. Критически важная тема — ошибки в state обходятся дорого.
S3DynamoDBstatebackends
📈

Модуль 2 · Масштабирование

Модули, count/for_each, ALB, RDS, lifecycle

06
Модули — переиспользуемый код
Reusable Module Multi-AZ HA
Принцип DRY в Terraform: создание и использование модулей. Inputs, outputs, вложенные модули. Проект: модуль VPC с Multi-AZ NAT Gateway, который используется и на следующих занятиях.
VPCNATmodules
07
Count и for_each
Fan-Out Pattern Multi-AZ HA
Динамическое создание ресурсов: N серверов в разных AZ одним блоком. Разница между count и for_each — когда что использовать. Индексация и обращение к ресурсам.
EC2countfor_each
08
ALB + Auto Scaling Group
Load-Balanced Auto-Scaling Active-Active Multi-AZ HA
Отказоустойчивый веб-сервер: Application Load Balancer, Launch Template, Auto Scaling Group с проверками состояния (health checks). Паттерн, который применяется в 90% production-окружений.
ALBASGlifecycletemplatefile
09
RDS Multi-AZ
Active-Standby Failover Active-Passive Multi-AZ HA
Управляемая база данных: PostgreSQL с автоматическим переключением при сбое (failover). Параметры, subnet groups, безопасность. Работа с чувствительными значениями и prevent_destroy для защиты данных.
RDSsensitiveprevent_destroy
10
Lifecycle и Provisioners 📖 Самостоятельно
Blue-Green Lifecycle
Правила жизненного цикла ресурсов: create_before_destroy, ignore_changes, replace_triggered_by. Provisioners (local-exec, remote-exec) — когда они допустимы и почему их лучше избегать.
EC2EBSlifecycleprovisioners
🏗️

Модуль 3 · Production Patterns

Dynamic blocks, функции, CDN, ECS, workspaces, Terragrunt

11
Dynamic Blocks и условия
Policy-as-Code
Генерация повторяющихся блоков из переменных. Условные операторы (count = var.enabled ? 1 : 0). Проект: гибкие Security Groups, управляемые переменными типа map.
SGdynamicconditionals
12
Функции и выражения 📖 Самостоятельно
Computed Network Layout
Встроенные функции Terraform: строковые, для работы с коллекциями, математические, файловые. Сложные выражения: cidrsubnet(), merge(), lookup(). Справочное занятие с практическими примерами.
VPCfunctions
13
S3 + CloudFront CDN 🔴 YouTube Live
Edge-Cached Static Hosting Edge Caching
Глобальная доставка контента: S3 bucket в роли источника (origin), дистрибуция CloudFront, сертификат ACM для HTTPS. Origin Access Control (OAC), cache policies, привязка собственного домена (custom domain).
S3CloudFrontACM
14
ECS Fargate
Serverless Containers Active-Active Serverless
«Бессерверные» контейнеры на AWS (Serverless): Task Definition, Service, интеграция с ALB. IAM-роли для задач (tasks), репозиторий ECR. jsonencode() для описания контейнеров.
ECSECRjsonencode
15
Workspaces
Environment Isolation Multi-Environment
Разделение окружений при единой кодовой базе: Dev / Staging / Prod. Переменные в зависимости от workspace, стратегии конфигурации. Когда достаточно workspaces, а когда нужен Terragrunt.
workspaces
16
Terragrunt 📖 Самостоятельно
DRY Multi-Environment Multi-Environment
DRY-инфраструктура с несколькими окружениями: terragrunt.hcl, наследование конфигурации, зависимости между модулями. Отдельный инструмент-надстройка над Terraform для сложных проектов.
terragruntDRY
⚡

Модуль 4 · Advanced Patterns

Lambda, event pipelines, IAM, Secrets, troubleshooting

17
Lambda + API Gateway
Serverless REST API Event-Driven Serverless
Serverless API: упаковка кода с помощью archive_file, функция Lambda, сервис REST API Gateway. IAM-роли, CloudWatch Logs. Паттерн «бессерверной» архитектуры.
LambdaAPI GW
18
SNS + SQS + Lambda
Event-Driven Pipeline Event-Driven Fan-Out / Pub-Sub Serverless
Событийно-ориентированная (event-driven) архитектура: топики SNS, очереди SQS, обработчики Lambda. Resource policies, dead-letter queues. Построение пайплайна событий на сервисах AWS.
SNSSQSpolicies
19
IAM Deep Dive 📖 Самостоятельно
Least-Privilege Access
Безопасная архитектура IAM: политики, роли, STS assume role, permission boundaries. Принцип минимальных привилегий. Тема, в которой ошибки = дыры в безопасности.
IAMSTSpolicies
20
Secrets Manager + KMS
Encryption at Rest
Управление секретами: Secrets Manager, SSM Parameter Store, шифрование с помощью KMS. Как не хранить пароли в коде. Ротация секретов, интеграция с RDS и Lambda.
KMSSecretssensitive
21
Import, Drift, Troubleshooting 📖 Самостоятельно
Drift Detection & Recovery
Реальные проблемы: импорт существующих ресурсов в state, обнаружение дрейфа (drift), отладка (TF_LOG). Восстановление после ошибок, terraform state mv/rm.
importstatedebug
🌍

Модуль 5 · Enterprise Scale

Multi-region, CI/CD, мониторинг, финальный проект

22
Multi-Region
Active-Passive DR Active-Passive Multi-Region DR
Disaster Recovery и репликация: несколько AWS-провайдеров, Route53 failover, S3 cross-region replication. Архитектура, которая переживёт «падение» целого региона.
Route53multi-provider
23
CI/CD для Terraform
GitOps Pipeline GitOps / CI-CD
Автоматизация деплоя: GitHub Actions pipeline — plan на PR и apply при merge. OIDC-аутентификация, approval gates, артефакты.
IAMautomation
24
Мониторинг и оповещения
Observability Stack
CloudWatch dashboards, метрики, алармы, уведомления SNS. Построение слоя observability для всей инфраструктуры. Цикл for_each для шаблонизации алертов.
CloudWatchSNSfor_each
25
🎓 Финальный проект 📖 Самостоятельно
Production-Ready Architecture Active-Active Active-Passive Edge Caching Multi-AZ HA
Всё вместе: production-grade стек с VPC, ECS, RDS, мониторингом, CI/CD и секретами. Несколько окружений, полная автоматизация. Защита проекта.
Full stackвсё вместе