Что такое Terraform

22 November 2025

Terraform — это инструмент Infrastructure as Code (IaC), который позволяет описывать инфраструктуру в виде читаемых конфигов, версионировать её и управлять её жизненным циклом: создавать, изменять, удалять ресурсы как код. Такой подход делает деплой детерминированным, отзывчивым и повторяемым.


Зачем он нужен? (примеры по-жизни)

  • Развернуть одинаковые окружения (dev/stage/prod) без ручного клика в консоли.
  • Версионировать инфраструктуру в git и откатываться при проблемах.
  • Автоматизировать сеть, виртуалки, DNS, облачные сервисы и даже SaaS-объекты.

Основные концепции

  1. Конфигурация — файлы .tf с описанием ресурсов.
  2. Провайдеры — плагины для облаков и сервисов (AWS, GCP, Azure, VMware и т.д.).
  3. State — файл состояния (локально или в удалённом бэкенде), где Terraform хранит актуальное представление инфраструктуры.
  4. Планирование — команда terraform plan показывает, что изменится до применения.
  5. Модули — переиспользуемые блоки конфигурации (как функции для инфры).

Эти штуки — базовые и почти всегда упоминаются в любом вводном видео/уроке. Видео, на которое мы опирались, как раз прохватывает эти темы в простом стиле.

Типичный рабочий цикл (команды)

# инициализация (скачивает провайдеры)
terraform init

# показывает изменения (без применения)
terraform plan

# применяет конфигурацию
terraform apply

# удаляет инфраструктуру
terraform destroy

Всегда делай plan перед apply — и храни стейт в надежном бэкенде (S3 + DynamoDB, GCS, Terraform Cloud и т.п.) для командной работы.

Простой пример: AWS EC2 (мини-файл)

Копипаст для теста — не забудь подставить свои креды/профиль и регион.

# providers.tf
provider "aws" {
  region = "eu-central-1"
}

# main.tf
resource "aws_instance" "demo" {
  ami           = "ami-0abcdef1234567890" # заменить на актуальную AMI
  instance_type = "t3.micro"
  tags = {
    Name = "devopz-demo"
  }
}

Процесс: terraform initterraform planterraform apply. После — terraform destroy, когда тесты закончены.

Лучшие практики (коротко)

  • Храни стейт удалённо для командной работы и блокировок (S3+DynamoDB, GCS, Terraform Cloud).
  • Используй модули для повторяемых кусочков (vpc, ec2, rds и т.д.).
  • Ограничь секреты: не ложи креды в .tf; используй переменные и секретные хранилища (Vault/SSM/etc.).
  • Пиши небольшие коммиты/PR с plan в CI для ревью infra-изменений.
  • Документируй модули и входные/выходные переменные — через README внутри модуля.

К чему готовиться при изучении

Поначалу придётся понять:

  • Как устроены провайдеры и ресурсы конкретного облака.
  • Как безопасно хранить стейт и секреты.
  • Как строить модули и организовывать код infra.

Официальные туториалы и документация — лучшие места для practice labs и примеров.

More in this category: TF на WIN »

Leave a comment

Popular Posts

Headlines