Перейти к основному содержимому

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. 1

    Создавайте зоны через Terraform

    resource "nexdns_zone" "app" { name = "example.com" } – часть вашего основного Terraform-конфига, планируется и применяется вместе с VPC и кластерами Kubernetes.

  2. 2

    Описывайте записи как код

    Используйте ресурсы Terraform nexdns_record, YAML через nexdns apply или YAML OctoDNS. Что ближе к остальному пайплайну – то и подойдёт; все три варианта работают с одним и тем же бэкендом.

  3. 3

    Ревьюйте изменения DNS в PR-ах

    Изменения DNS – это диффы. Ревьюер видит, какие записи добавляются, меняются или удаляются. Больше не будет «кто-то поменял MX, и теперь не ходит почта».

  4. 4

    Подключите Certbot для wildcard-сертификатов

    certbot certonly --dns-nexdns --dns-nexdns-credentials /etc/letsencrypt/nexdns.ini -d '*.example.com' – проверка DNS-01 закрывается целиком, автопродление идёт по штатному cron Certbot.

  5. 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 – инструменты, которые вы уже используете, поддерживаются нативно.

Мы используем файлы cookie и метрические программы (Яндекс Метрика) для анализа посещаемости, улучшения работы сайта и оценки эффективности рекламы. Метрические программы собирают данные о вашем поведении на сайте, которые являются персональными данными. Обработка осуществляется в соответствии с законодательством о персональных данных (ФЗ-152).

Вы можете принять использование всех файлов cookie или ограничиться только необходимыми. Подробнее: Политика обработки персональных данных и Политика cookie.

Необходимые cookie (всегда активны)
Аналитические cookie (Яндекс Метрика)