Что такое Terraform

«Что такое Terraform» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Terraform — это инструмент для управления инфраструктурой как код (IaC). Он позволяет декларативно описывать облачные ресурсы (серверы, сети, базы данных и т. д.) в конфигурационных файлах, а затем развертывать их с помощью провайдеров (AWS, GCP, Azure и др.).

Ключевые особенности:

  • Декларативный подход: описываешь желаемое состояние, а Terraform сам определяет, как его достичь.
  • Идемпотентность: повторное применение конфигурации не меняет уже развернутые ресурсы, если они соответствуют описанию.
  • План изменений: перед применением можно увидеть, какие изменения будут внесены (terraform plan).

Пример (развертывание EC2 в AWS):

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

Запуск:

terraform init   # Инициализация провайдера
terraform plan   # Просмотр плана
terraform apply  # Развертывание