Terraform: как управлять платформой NGENIX по принципу Infrastructure as Code
Раньше управлять ресурсами платформы можно через клиентский портал NGENIX Multidesk или API. В этом году появился еще один способ — инструмент Terraform. Эту функциональность попросили наши действующие клиенты, которым нужно было управлять инфраструктурой по принципу Infrastructure as Code (IaC). Мы уже опубликовали Terraform provider NGENIX. Его можно самостоятельно скачать с Github.
Но сначала давайте разберемся:
➡️ что такое Terraform и принцип Infrastructure as Code;
➡️ как работать в Terraform;
➡️ зачем использовать Terraform provider NGENIX;
➡️ как управлять DNS-зонами и пользовательскими списками на платформе NGENIX.
Что такое Terraform и принцип Infrastructure as Code
Terraform — это инструмент с открытым исходным кодом, разработанный HashiCorp. Он нужен для создания и управления инфраструктурой безопасным и эффективным способом.
Современные команды стали часто использовать Terraform для управления облачными провайдерами, что обусловлено удобством подхода Infrastructure as a Code. Эта методология позволяет автоматизировать управление: описывать целевое состояние инфраструктуры как код, хранить его в Git и версионировать.
Как работать в Terraform
Типичный процесс работы с Terraform выглядит так.

Написание конфигурации. Описываем с нуля желаемое состояние инфраструктуры, либо импортируем из инфраструктуры ее текущее состояние, чтобы в дальнейшем управлять им через Terraform.
Валидация применяемых изменений. Делаем предварительный просмотр изменений перед их применением. Видим все диффы и четко понимаем, что нужно применить.
Применение конфигурации. Применяем в реальную инфраструктуру изменения.
Уничтожение конфигурации. Все созданные объекты или ресурсы можно при необходимости быстро удалить.
Топ-5 причин, зачем использовать Terraform provider NGENIX
Причина № 1 — Infrastructure as Code (инфраструктура — это код)
Terraform дает возможность описывать DNS-зоны и записи в виде кода, что упрощает создание, редактирование и удаление зон и записей. Конечному специалисту, который сидит на стороне заказчика и работает в Terraform, удобнее управлять облачными ресурсами, версионировать в git’е состояния DNS-зоны или списков.
Причина № 2 — сокращение ручных ошибок
Использование Terraform автоматизирует процесс управления DNS-зонами, что существенно снижает риск ошибок, связанных с ручным вмешательством. Все изменения можно проводить через код — это упрощает внесение правок. Управление ресурсами — интуитивно понятное. Перед внесением изменений Terraform генерирует план. Там можно просмотреть все диффы и убедиться, что изменения соответствуют ожиданиям.
Причина № 3 — масштабируемость
Здесь можно одновременно добавлять или убирать большое количество записей, что в ручную будет достаточно рутинной и трудоемкой задачей. Также с помощью Terraform легко воспроизводить идентичные среды. Например, если у вас есть тестовая, stage, production-среды, то теперь управлять состоянием этих сред будет намного проще. Все текущие состояния уже описаны на одном декларативном языке.
Причина № 4 — версионный контроль
Git позволяет отслеживать изменения и откатывать их при необходимости. Это важно для критической инфраструктуры, а также для веб-ресурсов, которые являются кор-частью бизнеса. Так можно быстро поднять инфраструктуру и откатить неправильные изменения.
Причина № 5 — автоматизация
С использованием Terraform открывается возможность удобной автоматизации. Например, Terraform можно встроить в CI-CD пайплайн. Предположим, такой пайплайн автоматически разворачивает ресурсы на стороне клиента. А так он при этом сможет еще автоматически добавлять новые записи в DNS-зону на стороне облачного провайдера NGENIX.
Как управлять DNS-зонами и пользовательскими списками на платформе NGENIX через Terraform
Предлагаем вам посмотреть демонстрацию, где Антон Апряткин показывает четыре самых популярных сценария использования Terraform.
➡️ импорт DNS-зоны;
➡️ изменение записи в зоне;
➡️ создание пользовательского списка по гео-признаку (страны);
➡️ удаление списка.
🧑💻 Больше полезного — в других наших материалах:
«Бот-атака ≠ DDoS-атака: что такое паразитный бот-трафик и почему умные боты опасны», где мы рассказали, что такое бот-атака и умные боты; чем бот-атаки отличаются от DDoS-атак; почему умные боты опасны для сайта; кто в зоне риска и как именно паразитный бот-трафик вредит сайту.
«А-запись и геоDNS: какой подход выбрать», где мы рассказали, почему компании боятся делегировать DNS-зону; как работает перевод трафика через А-запись; как работает геоDNS и зачем делегировать зону; какие преимущества и недостатки есть у каждого подхода; как устроен сервис DNS на платформе NGENIX.
«Защита от взлома: как WAF помогает защитить сайт», где мы рассказали, откуда появляются уязвимости; чем опасны атаки на веб-приложения; что такое WAF и зачем он нужен; как устроен WAF и какие угрозы предотвращает.