DNS, встроенный в ваши пайплайны
Terraform, OctoDNS, Certbot, REST API и полноценный CLI – DNS-as-Code на управляемом бэкенде с фиксированной ценой по тарифу.
Почему DNS – последнее ручное звено в вашем стеке
Infrastructure-as-Code покрывает всё, кроме DNS – потому что DNS обычно лежит у провайдера с устаревшим API.
Terraform-провайдеры, которые «почти работают»
Полусопровождаемые провайдеры от сообщества, отсутствующие типы записей, раз в квартал ломающаяся авторизация. DNS становится тем шагом terraform apply, на котором всё падает.
Нет нормального CLI
Вы хотите заскриптовать изменение зоны. Провайдер предлагает веб-интерфейс, устаревший Python-SDK и больше ничего.
Сюрпризы от оплаты за запросы
Оплата за запрос делает стоимость трудно предсказуемой из плана развёртывания – всплеск трафика повышает счёт без предупреждения.
ACME DNS-01 требует плагин, которого нет
Wildcard-сертификаты через DNS-01 означают написание собственного Certbot-хука под текущего DNS-провайдера.
Что вы получаете с NexDNS
Инструменты, которые исходят из того, что DNS лежит в том же репозитории, что и ваш Terraform.
- Официальный Terraform-провайдер
nexdns/nexdnsв Terraform Registry. Ресурсыnexdns_zoneиnexdns_record, полный жизненный цикл, поддерживается синхронно с платформой.- Go-CLI с DNS-as-Code
nexdns apply -f nexdns.yaml– применяйте декларативное YAML-описание зон. Идемпотентно, с поддержкой dry-run и CI-дружественными кодами выхода.- OctoDNS-провайдер
- Синхронизируйте зоны из любого провайдера, который поддерживает OctoDNS (BIND, Route 53, Cloudflare, Hetzner и т. д.), в NexDNS одним запуском
octodns-sync. - Плагин Certbot для Let's Encrypt
certbot-dns-nexdns– официальный плагин для DNS-01. Wildcard-сертификаты выпускаются и продлеваются автоматически – без собственных хук-скриптов и webhook-прокси.- REST API с ограниченными по правам ключами
- Каждое действие в панели имеет задокументированный эндпоинт API. API-ключи ограничиваются конкретными операциями (
zones.read,records.write,dnssec.manage). Лимиты запросов видны заранее, а не по факту. - Фиксированные тарифы, без оплаты за запросы
- Старт, Про, Бизнес, Корпоративный – тариф выбирается по лимитам зон и записей, а не по объёму обслуживаемого трафика. Стоимость предсказуема уже на этапе плана деплоя.
Типичная DevOps-сборка
Изменения в DNS проходят git-ревью, как и всё остальное.
-
1
Создавайте зоны через Terraform
resource "nexdns_zone" "app" { name = "example.com" }– часть вашего основного Terraform-конфига, планируется и применяется вместе с VPC и кластерами Kubernetes. -
2
Описывайте записи как код
Используйте ресурсы Terraform
nexdns_record, YAML черезnexdns applyили YAML OctoDNS. Что ближе к остальному пайплайну – то и подойдёт; все три варианта работают с одним и тем же бэкендом. -
3
Ревьюйте изменения DNS в PR-ах
Изменения DNS – это диффы. Ревьюер видит, какие записи добавляются, меняются или удаляются. Больше не будет «кто-то поменял MX, и теперь не ходит почта».
-
4
Подключите Certbot для wildcard-сертификатов
certbot certonly --dns-nexdns --dns-nexdns-credentials /etc/letsencrypt/nexdns.ini -d '*.example.com'– проверка DNS-01 закрывается целиком, автопродление идёт по штатному cron Certbot. -
5
Мониторьте и алертите квоты API
Заголовки лимитов запросов NexDNS показывают остаток квоты. Снимайте их своим привычным мониторингом (Prometheus, Datadog) и алертите до того, как запросы начнут падать в развёртываниях.
-
Да – это официальный first-party провайдер, опубликованный в Terraform Registry. Форма ресурсов стабильна, версионирование по semver; ломающие изменения – только при смене мажорной версии. Управление state работает как ожидается: Terraform строит план, применяет идемпотентно, распознаёт дрейф.
-
Terraform уместен, когда DNS – часть более крупного стейта инфраструктуры (смешанные ресурсы, дисциплина plan-and-apply). YAML через
nexdns applyлегче – он удобнее, когда DNS – основная забота (команда управляет 50 доменами и больше ничего). Оба варианта можно использовать в одном аккаунте. -
Плагин отвечает за проверку DNS-01; всё остальное Certbot делает сам. Используйте DNS-01 для wildcard (где он обязателен) и HTTP-01 для обычных имён (где это проще). Плагин включается только тогда, когда Certbot ждёт DNS-01.
-
REST API допускает 60 запросов в минуту – на аккаунт (или на IP для неаутентифицированных запросов). Лимит одинаков на всех тарифах, без тарифных ступеней. В каждом ответе есть заголовки
X-RateLimit-Limit,X-RateLimit-RemainingиX-RateLimit-Reset, а при 429 –Retry-After, так что можно снизить нагрузку до того, как запросы начнут отклоняться. -
Да. CLI – это один бинарник Go (устанавливается в раннере командой
curl -sL https://get.nexdns.ru/cli | sh), а Terraform-провайдерnexdnsработает со стандартными CI-паттернами Terraform. API-ключи кладите в секреты CI и ограничивайте минимально необходимыми правами.
Используйте инструменты DNS, которые у вас уже есть
Terraform, CLI, OctoDNS, Certbot – инструменты, которые вы уже используете, поддерживаются нативно.