МК

Terraform

Terraform — это инструмент для управления инфраструктурой через код (Infrastructure as Code). Вместо того чтобы кликать по консоли AWS и вручную настраивать серверы, базы данных и сети, вы описываете всё это в текстовых файлах. Terraform читает эти файлы и создаёт инфраструктуру автоматически.

Зачем это нужно? Представьте: у вас 3 окружения — dev, staging, production. Без Terraform вы настраиваете каждое вручную, и через полгода они неизбежно расходятся: «на проде работает, а на стейджинге — нет». С Terraform все окружения создаются из одного и того же кода. Одинаковые, воспроизводимые, версионируемые.

Terraform работает с любым облаком: AWS, Google Cloud, Azure, Yandex Cloud, DigitalOcean. Он создаёт серверы, базы данных, DNS-записи, балансировщики, VPN — всё, что предоставляет облачный провайдер. При этом Terraform отслеживает текущее состояние и применяет только разницу: если нужно добавить один сервер — он добавит один, не трогая остальные.

Terraform хранит состояние инфраструктуры в state-файле. Это критичный файл — он позволяет Terraform понимать, что уже создано, а что нужно создать или удалить. Команды хранят state в облаке (S3, GCS) для совместной работы.

Ключевые преимущества

  • Инфраструктура описывается кодом — версионируется в Git
  • Поддержка всех облаков: AWS, GCP, Azure, Yandex Cloud
  • Воспроизводимые окружения: dev = staging = production
  • Применяет только разницу — не пересоздаёт всё заново
  • State-файл отслеживает текущее состояние инфраструктуры

Примеры

Создание production-окружения для SaaS: 3 сервера, PostgreSQL RDS, Redis, S3-бакет, CloudFront CDN — всё одной командой terraform apply. Клонирование окружения для нового клиента за 10 минут вместо 2 дней ручной настройки. Аудит инфраструктуры: вся конфигурация в Git, видно кто и когда что менял.

Когда это нужно

Terraform нужен, когда: инфраструктура в облаке (AWS, GCP, YC), больше 2-3 серверов, несколько окружений (dev/staging/prod), команда из нескольких DevOps-инженеров, нужно быстро воспроизводить инфраструктуру для новых клиентов или проектов.

Связанные термины

Частые вопросы

Terraform vs Ansible — в чём разница?

Terraform создаёт инфраструктуру: серверы, сети, базы данных. Ansible настраивает то, что уже создано: устанавливает пакеты, копирует конфиги, запускает сервисы. Они не конкурируют, а дополняют друг друга: Terraform создал сервер → Ansible настроил его.

Можно ли использовать Terraform для небольших проектов?

Можно, но для одного сервера с Docker — overkill. Terraform начинает окупаться при 3+ серверах или когда нужно несколько окружений. Для маленьких проектов проще Docker Compose + ручная настройка VPS.

Готовы начать проект?

Расскажите о задаче — мы предложим решение, сроки и стоимость. Первая консультация бесплатна.

30 минут · Бесплатно · Без обязательств