Почему?
Большинство провайдеров доменов не предлагают программного подхода к обновлению записей DNS.
Если вы уже приобрели домен вне AWS и не можете перенести его, но хотите управлять DNS-записями программно, эта статья для вас.
Шаги
Подготовка AWS Route 53
Сначала войдите в AWS и перейдите к Route53.
Там вы увидите раздел Hosted Zones. Нажмите на Create Hosted Zone.
После того как зона будет создана, вы увидите запись NS. Это запись Nameserver, которую вам нужно будет обновить у провайдера домена.
Примечание: Размещенная зона действует как менеджер домена для вашего домена.
Подготовка к работе с доменным провайдером
Войдите в систему провайдера домена и перейдите в раздел DNS.
Там вы увидите раздел Nameservers. Нажмите на Управление серверами имен.
По умолчанию поставщик домена будет иметь набор серверов имен для вашего домена.
Примечание: Сервер имен — это сервер, который хранит записи DNS для домена, как, например, IP-адрес.
Как проверить, работает ли он?
Способ CLI
> dig ns iusearchbtw.blog
; <<>> DiG 9.18.6 <<>> ns iusearchbtw.blog
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61482
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;iusearchbtw.blog. IN NS
;; ANSWER SECTION:
iusearchbtw.blog. 21600 IN NS ns-1210.awsdns-23.org.
iusearchbtw.blog. 21600 IN NS ns-1878.awsdns-42.co.uk.
iusearchbtw.blog. 21600 IN NS ns-396.awsdns-49.com.
iusearchbtw.blog. 21600 IN NS ns-825.awsdns-39.net.
;; Query time: 43 msec
;; SERVER: 192.168.1.107#53(192.168.1.107) (UDP)
;; WHEN: Sun Sep 11 19:55:18 BST 2022
;; MSG SIZE rcvd: 185
Онлайн способ
- https://dnschecker.org/ns-lookup.php
- https://www.whatsmydns.net/dns-lookup/ns-records?query=iusearchbtw.blog&server=google
- https://mxtoolbox.com/SuperTool.aspx?action=dns%3aiusearchbtw.blog&run=toolpage
Риски
Порядок выполнения
Перед обновлением серверов имен убедитесь, что записи DNS настроены правильно.
Это гарантирует, что ваш домен не будет отключен в течение некоторого времени.
Распространение DNS
При установке новых записей DNS может потребоваться до 24 часов, чтобы изменения распространились. Это связано с тем, что DNS-записи кэшируются вашим провайдером и другими DNS-серверами.
Установка низкого TTL (Time To Live) может помочь в решении этой проблемы.
Статические и динамические веб-сайты
- Для сайта со статическим контентом это относительно просто — в период смены сайта на новом и старом местах должен быть идентичный сайт. Загвоздка заключается в сертификатах HTTPS/SSL — особенно если вы используете что-то вроде certbot, вам нужно будет убедиться в валидности сертификата на обеих системах во время перехода.
- На динамическом сайте это гораздо сложнее. В зависимости от того, как вы работаете с сессиями, вы можете организовать репликацию или принять точку зрения, что вы можете отключить всех, если они могут немедленно подключиться снова (или другое решение). Хитрость здесь заключается в использовании обратного прокси/балансировщика нагрузки. Это можно сделать разными способами — например, перенести сайт на предварительно настроенный балансировщик нагрузки, направить балансировщик нагрузки на новый IP, снова обновить DNS и удалить балансировщик нагрузки. Существует множество вариаций на эту тему, включая превращение старой системы в обратный прокси-сервер для новой системы в промежуточный период.
Важное замечание — если короткий период простоя для текущих пользователей является приемлемым, вы можете уменьшить TTL в DNS до 60 секунд (меньшее значение не является хорошей идеей) — таким образом, подавляющее большинство пользователей будут переключены со старого сервера на новый за минуту или две.
Ссылки
- https://www.virtuallyboring.com/migrate-godaddy-domain-and-dns-to-aws-route-53/
- https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/migrate-dns-domain-in-use.html
- https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html