Управление виртуальным хостингом — это сложная, но интересная в реализации задача, которая постоянно сопряжена с различными трудностями.
Например, когда у вас сотни клиентов, приходится иметь дело с большим количеством доменных имен, которые обычно относятся к разным регистраторам и принадлежат разным людям. С этой ситуацией не всегда легко справиться.
Поэтому я хотел бы поделиться историей успеха одного из наших клиентов, демонстрирующей, как можно использовать 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/
Добавить комментарий