Есть ли у вас опыт работы с Terraform?

«Есть ли у вас опыт работы с Terraform?» — вопрос из категории Terraform, который задают на 36% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я использовал Terraform для управления инфраструктурой как код (IaC) в нескольких проектах. Основной опыт связан с провайдерами AWS и GCP.

Примеры задач:

  • Создание модульных конфигураций для виртуальных машин, сетей (VPC, подсети, security groups), балансировщиков нагрузки и баз данных (RDS, Cloud SQL).
  • Рефакторинг монолитных конфигураций в переиспользуемые модули для командной работы.
  • Управление состоянием (state) через Terraform Cloud с блокировками и историей изменений.
  • Интеграция с CI/CD (GitLab CI) для автоматического планирования и применения изменений после code review.

Пример создания EC2-инстанса в AWS:

resource "aws_instance" "app_server" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"
  subnet_id     = module.vpc.public_subnets[0]

  tags = {
    Name        = "AppServer-${var.environment}"
    Environment = var.environment
  }
}

Используемые практики: модульная структура, remote state в S3 с блокировкой через DynamoDB, использование workspaces для разделения сред (dev/stage/prod), валидация кода с terraform validate и tflint.