Отказоустойчивость и географическая маршрутизация
Настройте отказоустойчивое переключение по схеме active-passive с проверками работоспособности и ограничивайте или настраивайте ответы в зависимости от географического происхождения запросов.
«Отказоустойчивость и географическая маршрутизация» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.
Обзор маршрутизации Failover
Маршрутизация Failover реализует конфигурацию активный — пассивный: одна запись обозначается как Primary, а другая — как Secondary. Route 53 всегда возвращает запись Primary, пока её проверка работоспособности проходит успешно. Если запись Primary становится неработоспособной, Route 53 автоматически переключается на возврат записи Secondary.
Маршрутизация Failover — основной шаблон для сценариев аварийного восстановления, в которых есть рабочая среда (основная) и резервная среда (вторичная), которая должна получать трафик только при недоступности основной среды.
Настройка записей Failover
Чтобы настроить маршрутизацию Failover, создайте две записи с одним и тем же DNS-именем: одну с Failover=PRIMARY, а другую с Failover=SECONDARY. Добавьте проверку работоспособности к записи Primary. Для записи Secondary также следует добавить проверку работоспособности, если она указывает на ресурс, который может отказать независимо от основного.
Запись Secondary выполняет роль статического резервного варианта: она может указывать на статический веб-сайт S3, страницу технического обслуживания или уменьшенную резервную среду. Даже если для Secondary не настроена проверка работоспособности, Route 53 всегда переключается на неё при отказе Primary.
# Create primary failover record
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"SetIdentifier": "primary",
"Failover": "PRIMARY",
"TTL": 60,
"ResourceRecords": [{"Value": "54.100.1.1"}],
"HealthCheckId": "hc-primary-id"
}
}]
}'Активный — пассивный и активный — активный режимы
Маршрутизация Failover создаёт конфигурацию активный — пассивный: во время обычной работы трафик обслуживает только Primary, а Secondary бездействует в ожидании переключения. Это снижает стоимость резервной среды, но приводит к немного большему времени восстановления (времени, необходимого для истечения DNS TTL и переключения Route 53).
Для конфигураций активный — активный, в которых оба ресурса одновременно обслуживают трафик, используйте взвешенную маршрутизацию (с одинаковыми весами) или маршрутизацию по задержке. Если один ресурс откажет, его проверка работоспособности завершится ошибкой, и Route 53 автоматически удалит его из ответов DNS, обеспечив режим активный — активный со встроенным переключением при отказе.
Обзор географической маршрутизации
Географическая маршрутизация направляет DNS-запросы на основе географического местоположения DNS-распознавателя (обычно это распознаватель ISP пользователя или AWS Route 53 Resolver). Вы создаёте записи для определённых континентов, стран или штатов US, а Route 53 возвращает запись, местоположение которой наиболее точно соответствует источнику запроса.
Если ни одна запись для конкретного местоположения не подходит, Route 53 возвращает запись по умолчанию (если она настроена). Если записи по умолчанию нет, запросы из неподходящих местоположений получают NODATA. Всегда создавайте запись по умолчанию, чтобы обслуживать пользователей из местоположений, которые не были явно настроены.
# Create a geolocation record for Germany
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com",
"Type": "A",
"SetIdentifier": "germany",
"GeoLocation": {"CountryCode": "DE"},
"TTL": 60,
"ResourceRecords": [{"Value": "54.200.1.1"}]
}
}]
}'Варианты использования географической маршрутизации
Основные варианты использования географической маршрутизации:
- Содержимое на определённом языке: направляйте франкоговорящих пользователей к источнику CDN на французском языке, а немецкоговорящих — к источнику на немецком языке
- Соблюдение нормативных требований: обеспечивайте хранение данных пользователей из EU в регионах EU (GDPR) или блокируйте доступ из определённых стран
- Локализованные цены или доступность: показывайте цены для конкретного региона или ограничивайте услуги поддерживаемыми территориями
- Геоблокировка: возвращайте страницу блокировки или пустой ответ пользователям из ограниченных местоположений, направляя их географическую запись к конечной точке технического обслуживания
Точность географической маршрутизации и запись по умолчанию
Route 53 выбирает наиболее точное географическое соответствие: запись уровня штата имеет приоритет над записью уровня страны, запись уровня страны — над записью уровня континента, а запись уровня континента — над записью по умолчанию. Географическая маршрутизация на уровне штата доступна только для US.
Если запись по умолчанию отсутствует и местоположение пользователя не соответствует ни одной настроенной записи, Route 53 возвращает NXDOMAIN или NODATA, что незаметно нарушает доступ для пользователей из ненастроенных регионов. Всегда добавляйте географическую запись по умолчанию в качестве универсального варианта, чтобы избежать незаметных сбоев.
Маршрутизация по географической близости
Маршрутизация по географической близости направляет трафик на основе физического географического расстояния между пользователями и ресурсами, с необязательным параметром смещения, который увеличивает или уменьшает эффективный радиус маршрутизации каждого ресурса. Положительное смещение расширяет географическую область, обслуживаемую ресурсом, а отрицательное — сужает её.
Маршрутизация по географической близости доступна только через Traffic Flow (визуальный редактор политик маршрутизации Route 53) и поддерживает регионы AWS, координаты которых Route 53 определяет автоматически, а также пользовательские местоположения ресурсов, для которых Вы указываете широту и долготу.
Route 53 Traffic Flow
Route 53 Traffic Flow — это визуальный редактор политик, позволяющий создавать сложную логику маршрутизации, объединяя несколько политик в древовидной схеме. Например, сначала можно применить географическую маршрутизацию для отделения трафика EU, затем маршрутизацию по задержке внутри EU, чтобы выбрать регион с лучшей производительностью, и наконец взвешенную маршрутизацию внутри каждого региона для сине-зелёных развертываний.
Политики Traffic Flow версионируются, что позволяет безопасно тестировать изменения. Вы связываете политику Traffic Flow с одним или несколькими DNS-именами, а обновления политики распространяются мгновенно, без повторного создания отдельных записей.
Объединение Failover с другими политиками
Маршрутизацию Failover можно вкладывать в другие политики. Распространённый шаблон: используйте маршрутизацию по задержке, чтобы выбрать ближайший регион, а внутри каждого региона — запись Failover, чтобы при отказе основной конечной точки в этом регионе трафик автоматически переключался на вторичную конечную точку в том же регионе.
Другой шаблон — активный — пассивный режим в нескольких регионах с использованием маршрутизации по задержке для основной конечной точки. Если проверка работоспособности основного региона завершается ошибкой, Route 53 переходит к следующему работоспособному региону с наименьшей задержкой, фактически объединяя оптимизацию по задержке с аварийным переключением DR.
Требования к проверкам работоспособности для Failover
Чтобы маршрутизация Failover работала правильно, к записи Primary обязательно** должна быть прикреплена проверка работоспособности. Без проверки работоспособности Route 53 считает Primary всегда работоспособной и никогда не переключается на Secondary. Для записи Secondary можно дополнительно настроить собственную проверку работоспособности; если Secondary также откажет, Route 53 всё равно возвращает её адрес, поскольку это последний доступный вариант.
Типы проверок работоспособности, которые можно использовать с Failover: проверки конечных точек HTTP/HTTPS, проверки TCP и проверки сигналов CloudWatch (полезны для комплексных сигналов состояния приложения, объединяющих несколько показателей).
Географическая маршрутизация и маршрутизация по задержке: различие на экзамене
Это различие часто встречается на экзамене SAA-C03:
- Географическая маршрутизация: направляет трафик в зависимости от географического местоположения пользователя и всегда возвращает одну и ту же конечную точку для определённой страны или континента независимо от производительности; используется для локализации содержимого и соблюдения нормативных требований
- Маршрутизация по задержке: направляет трафик на основе производительности сети для пользователя и может направить пользователя из Европы в us-east-1, если в данный момент там быстрее, чем в eu-west-1; используется для оптимизации производительности
Ключевые слова в вопросах экзамена: «соблюсти требования к месту хранения данных», «содержимое для конкретной страны», «заблокировать пользователей из определённых регионов» → географическая маршрутизация. «ближайший регион», «наименьшая задержка», «лучшая производительность для пользователей по всему миру» → маршрутизация по задержке.
Быстрая проверка
Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали: маршрутизация с переключением при отказе создаёт активный и резервный контуры высокой доступности, переключаясь на Secondary, когда проверка работоспособности Primary завершается ошибкой; геолокационная маршрутизация направляет пользователей с учётом их географического происхождения для соблюдения требований и локализации; а маршрутизация по географической близости использует физическое расстояние с настраиваемым смещением через Traffic Flow. Всегда добавляйте запись геолокации по умолчанию, чтобы обрабатывать местоположения, для которых нет совпадений. Далее мы подробно рассмотрим проверки работоспособности и переключение DNS при отказе.
Часто задаваемые вопросы
Урок «Отказоустойчивость и географическая маршрутизация» бесплатный?
Да — полный текст урока «Отказоустойчивость и географическая маршрутизация» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.
Чему я научусь в уроке «Отказоустойчивость и географическая маршрутизация»?
Настройте отказоустойчивое переключение по схеме active-passive с проверками работоспособности и ограничивайте или настраивайте ответы в зависимости от географического происхождения запросов. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AWS Solutions Architect?
Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Отказоустойчивость и географическая маршрутизация»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AWS Solutions Architect?
Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Размещённые зоны и типы записей DNS
- Политики маршрутизации: простая, взвешенная и по задержке
- Отказоустойчивость и географическая маршрутизация
- Проверки работоспособности и отказоустойчивость DNS