Брэндированный DNS или white labeling на Amazon Route 53

от автора

Управление виртуальным хостингом — это сложная, но интересная в реализации задача, которая постоянно сопряжена с различными трудностями.

Например, когда у вас сотни клиентов, приходится иметь дело с большим количеством доменных имен, которые обычно относятся к разным регистраторам и принадлежат разным людям. С этой ситуацией не всегда легко справиться.

Поэтому я хотел бы поделиться историей успеха одного из наших клиентов, демонстрирующей, как можно использовать Amazon Route 53 в виртуальном хостинге.

Любой нормальный хостер предоставляет свои NS сервера для обслуживания клиентских доменов. Более того, очень желательно их реально использовать — в будущем это облегчит миграцию клиентских сайтов с сервера на сервер или восстановление из бэкапа. В этом случае хостеру не нужно участие клиента, чтобы установить новые IP для домена, поэтому в случае работ по обслуживанию или аварии сайты заработают на новом месте с минимальным простоем или вообще без него.
Обычно NS сервера выглядят следующим образом:

  • ns1.awesome-hoster.com
  • ns2.awesome-hoster.com

Если вы решили использовать сервис Amazon Route 53 в качестве хостинга DNS, то вы быстро заметите, что по умолчанию он предоставляет отдельный набор NS серверов для каждого домена:

  • ns-XXXX.awsdns-XX.org
  • ns-XXXX.awsdns-XX.co.uk
  • ns-XXXX.awsdns-XX.com
  • ns-XXXX.awsdns-XX.net

Вот как это выглядит из панели Route 53:

Как видно в секции под названием “Hosted Zone Details”, расположенной справа на скриншоте, сервера имен имеют адреса типа «ns-1072.awsdns-06.org». Это означает, что DNS не начнет свою работу до тех пор, пока эти адреса не будут указаны у регистратора этого доменного имени.

Как же получить один набор NS серверов для всех, да еще и white-label? Переключать домены по одному явно не вариант.

Выход есть — Route 53 API позволяет создать «reusable delegation set» или, если по-русски, переиспользуемый набор NS серверов. Интересно, что данный функционал не доступен из самой панели Route 53.

Однако, даже в этом случае новый набор серверов имеет все тот же “страшный” вид:

  • ns-XXXX.awsdns-XX.org
  • ns-XXXX.awsdns-XX.co.uk
  • ns-XXXX.awsdns-XX.com
  • ns-XXXX.awsdns-XX.net

На самом деле, ничего страшного в этом нет. Идея заключается в том, чтобы создать все доменные зоны с одним набором серверов имен, и в качестве IP-адресов для ns1.awesome-hoster.com и ns2.awesome-hoster.com указать амазоновские IP-адреса серверов имен. Да-да, IP тех самых ns-XXXX.awsdns-XX.org и ns-XXXX.awsdns-XX.co.uk, как пример.

Если вы пользуетесь контрольной панелью Plesk, то мы рекомендуем использовать наше расширение для интеграции c Route 53. Данное расширение автоматизирует создание доменных зон в Route 53 и поддерживает «reusable delegation set».

Расширение устанавливается в один клик из каталога в самом Plesk’e («Расширения» в главном меню и затем “Каталог расширений”).

Следуйте инструкциям расширения, чтобы получить пару секретных ключей на портале Amazon и включить синхронизацию. Каждый домен, созданный в Plesk, тут же получит доменную зону в Route 53.

Давайте вернемся к «reusable delegation set» и посмотрим на функционал, который дает нам расширение для управления этими наборами. С помощью расширения вы можете создать новый переиспользуемый набор серверов имен или сделать таким один из существующих наборов. Чтобы сделать это, необходимо открыть расширение, перейти во вкладку «Reusable Delegation Sets» и выбрать «Create Delegation Set». В результате появится новый набор из 4 серверов имен, который мы будем использовать по умолчанию.

Теперь все новые доменные зоны, созданные в Plesk, будут использовать один и тот же набор серверов имен. Стоит отметить, что Route 53 накладывает ограничение, не позволяющее изменить сервера имен в уже существующих зонах. Для изменения набора придется пересоздать каждую зону, с указанием правильного набора, а это та еще задача. Интерфейс панели Route 53 всеми способами препятствует удалению зоны: необходимо сначала удалить из нее все ресурсные записи, кроме NS, и только после этого можно удалить зону.

В своем расширении мы предлагаем инструменты для групповых операций (на вкладке “Mass Management”), которые позволяют в один клик удалять и создать заново в Route 53 все доменные зоны, зарегистрированные в Plesk, без сложностей, присущих панели Route 53.

Когда синхронизированные зоны будут содержать единый набор серверов, можно переключить A записи ns1.awesome-hoster.com и ns2.awesome-hoster.com на IP-адреса соответствующих серверов из набора (достаточно выбрать 2 из них). Нужно отметить, что запись CNAME в данном случае не будет работать по соображениям безопасности.

Чтобы удостовериться в правильности настройки, мы можем воспользоваться command line утилитой dig или онлайн сервисом от Google.

Следует учитывать следующие ограничения, которые накладывает на нас Route 53:

  • Субдомены не должны иметь отдельной зоны: по умолчанию Plesk создает A запись с именем субдомена в зоне родителя, однако делегирование субдомена в отдельной зоне закончится ошибкой: “A conflicting domain is already associated with the given VPC or Delegation Set”.
  • По умолчанию, максимальное количество зон, использующих один набор серверов — 100. Это число может быть увеличено по запросу.
  • Общее количество зон ограничено до 500, но также может быть увеличено.

Кроме высокой доступности, облачный провайдер предлагает возможности масштабирования: настроить проверки DNS для переключения на резервную копию сайта, иметь Geo-распределенный трафик и многое другое. Но это уже отдельная тема для будущих статей.

Нам было бы интересно узнать опыт других пользователей Amazon Route 53. Ждем ваших комментариев!

ссылка на оригинал статьи https://habrahabr.ru/post/280718/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *