Пару недель назад AWS анонсировали такую новую и весьма полезную функциональность в Route53 как DNS Failover. Это хорошая новость не только, для тех кто пользуется амазоновским облаком, но и для всех остальных, кто желает отказоустойчивости на уровне DNS. Разберемся как это работает, и сделаем тестовый пример в конфигурации Active-Passive, с бекапом вашего сайта на S3.
Немного деталей.
На конечную точку, доступность которой вы хотите проверять, настраивается health-check. Проверки идут из разных локаций по всему миру, и ваш хост признается не работоспособным, если не отвечал в течении 30 секунд: он автоматически убирается из выдачи IP клиентам. Чеки можно осуществлять по http и tcp, https не поддерживается. Также пока еще ведутся работы по интеграции с ELB. TTL советуют выставить в районе 60 секунд.
Рабочий пример с бекапом на S3.
Самый простой вариант как вы можете это использовать — держать Primary запись для своего основного сервера, а Secondary отправлять на S3 статический сайт, если первый упадет.
Итак, у вас обычная А запись для вашего домена.
Добавим для него health-check.
Увидим, что чек добавился.
Вернемся назад к Hosted Zones, выберем нашу запись и Routing Policy: Failover, Failover Record Type:Primary, и Health Check to Associate: 205.251.195.209:80/
Делаем Secondary запись, выбираем предварительно настроеный S3 bucket, Failover Record Type: Secondary, и на этом все.
Также проверки можно связать с LBR или Weighted политиками, делать Active-Passive-Passive, Active-Active и т.д. Мы в продакшне уже успешно используем Active-Active для внутренней балансировки.
Автор: astlock