0Pricing
AWS Solutions Architect · Урок

Политики маршрутизации: простая, взвешенная и по задержке

Используйте простую маршрутизацию для отдельных ресурсов, взвешенную — для разделения трафика A/B, а маршрутизацию по задержке — для обслуживания пользователей из ближайшего региона.

«Политики маршрутизации: простая, взвешенная и по задержке» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Обзор политик маршрутизации Route 53

Политики маршрутизации Route 53 определяют, как отвечать на DNS-запросы, когда несколько наборов записей ресурсов имеют одно и то же имя DNS. Политика указывает Route 53, какой IP-адрес или имя DNS возвращать и при каких условиях. Выбор подходящей политики маршрутизации — одна из наиболее часто проверяемых тем на экзамене SAA-C03.

Доступные политики маршрутизации: простая, на основе весов, на основе задержки, переключение при сбое, геолокация, географическая близость и ответ с несколькими значениями. Каждая предназначена для своего сценария. Большинство из них можно комбинировать с проверками работоспособности для автоматического переключения при сбое.

Простая политика маршрутизации

Простая маршрутизация сопоставляет имя DNS с одним или несколькими IP-адресами (для записей A) или с другим именем хоста (для CNAME/ALIAS). Если настроено одно значение, Route 53 всегда возвращает его. Если настроено несколько значений, Route 53 возвращает все значения в случайном порядке, а клиент выбирает одно из них.

Простая маршрутизация является политикой по умолчанию и лучше всего подходит для конфигураций с одним ресурсом, когда Вам не нужны проверки работоспособности, разделение трафика или географическая дифференциация. Она не поддерживает проверки работоспособности: если ресурс неисправен, Route 53 всё равно возвращает его адрес.

# Create a simple routing record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "api.example.com",
        "Type": "A",
        "TTL": 60,
        "ResourceRecords": [
          {"Value": "10.0.0.1"},
          {"Value": "10.0.0.2"}
        ]
      }
    }]
  }'

Политика маршрутизации на основе весов

Маршрутизация на основе весов распределяет DNS-запросы между несколькими ресурсами в соответствии с назначенными Вами весами. Каждой записи присваивается числовой вес от 0 до 255. Route 53 возвращает каждую запись с вероятностью, пропорциональной отношению её веса к сумме всех весов.

Пример: три записи с весами 70, 20 и 10 получают примерно 70%, 20% и 10% трафика соответственно. Вес 0 означает, что запись исключена из маршрутизации, но не удалена — это удобно, чтобы временно остановить трафик без удаления записи. Маршрутизация на основе весов обычно используется для A/B-тестирования, поэтапных выпусков и переключения между средами blue-green.

# Create two weighted records: 90% to v1, 10% to v2
# Record 1 (v1)
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "v1",
        "Weight": 90,
        "TTL": 60,
        "ResourceRecords": [{"Value": "1.2.3.4"}]
      }
    }]
  }'

Сценарии использования маршрутизации на основе весов

Маршрутизация на основе весов особенно полезна при развёртывании и тестировании:

  • Канареечный выпуск: направьте 5% трафика на новую версию (вес 5), а 95% — на стабильную версию (вес 95); по мере роста уверенности постепенно изменяйте веса
  • Развёртывание blue-green: начните с соотношения 100/0 (весь трафик направляется на green), постепенно перейдите к 50/50, затем к 0/100 (весь трафик направляется на blue) и удалите запись green
  • Нагрузочное тестирование: направьте небольшую долю рабочего трафика в тестовую среду, чтобы проверить производительность под реальной нагрузкой

Маршрутизация на основе весов работает с проверками работоспособности. Если проверка работоспособности записи с весом завершается неуспешно, Route 53 перестаёт включать эту запись в ответы и перераспределяет её вес между работоспособными записями.

Политика маршрутизации на основе задержки

Маршрутизация на основе задержки направляет каждый DNS-запрос в тот Region AWS, который обеспечивает наименьшую сетевую задержку для конечного пользователя. Route 53 измеряет задержку между глобальными преобразователями DNS и Region AWS и направляет запросы в Region с наилучшим измеренным показателем задержки.

Вы создаёте по одной записи для каждого Region, в котором размещены Ваши ресурсы, задавая для неё тип LATENCY и указывая Region. Route 53 выбирает вариант с наименьшей задержкой для каждого запроса, не сравнивая фактические ресурсы: используются измерения задержки AWS, а не результаты измерений в реальном времени из местоположения пользователя.

# Create latency records for us-east-1 and eu-west-1
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "api.example.com",
        "Type": "A",
        "SetIdentifier": "us-east-1",
        "Region": "us-east-1",
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}]
      }
    }]
  }'

Маршрутизация по задержке и географическая маршрутизация

Маршрутизацию по задержке и географическую маршрутизацию часто путают на экзамене:

  • Маршрутизация по задержке: выбор маршрута выполняется на основе производительности сети, чтобы минимизировать время кругового обмена данными — пользователь в Японии может быть направлен в us-west-2, если в данный момент задержка там ниже, чем в ap-northeast-1
  • Географическая маршрутизация: выбор маршрута выполняется на основе географического источника DNS-запроса — пользователь в Японии всегда направляется к записи для Японии независимо от задержки

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

Маршрутизация с несколькими значениями ответа

Маршрутизация с несколькими значениями ответа возвращает до 8 работоспособных записей в ответ на каждый DNS-запрос, позволяя клиенту случайным образом выбрать одну из них. В отличие от простой маршрутизации, которая может возвращать IP-адреса неработоспособных ресурсов, маршрутизация с несколькими значениями ответа интегрируется с проверками работоспособности и возвращает только IP-адреса работоспособных ресурсов.

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

Политики маршрутизации и проверки работоспособности

Большинство политик маршрутизации (все, кроме простой) можно связать с проверками работоспособности. Если проверка работоспособности завершается ошибкой, Route 53 прекращает возвращать эту запись в ответах DNS. При взвешенной маршрутизации трафик исключённой записи перераспределяется между работоспособными записями с весами. При маршрутизации по задержке используется следующий работоспособный регион с наименьшей задержкой.

Проверки работоспособности выполняются независимо от политик маршрутизации и настраиваются для конечных точек HTTP, HTTPS и TCP. Вычисляемые проверки работоспособности объединяют результаты нескольких проверок работоспособности (логика AND/OR) для комплексной оценки состояния.

# Associate a health check with a weighted record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "primary-us",
        "Weight": 100,
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}],
        "HealthCheckId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }]
  }'

Выбор подходящей политики: советы для экзамена

Краткое руководство по выбору политики маршрутизации на экзамене:

  • «A/B-тестирование», «канареечный выпуск», «сине-зелёное развертывание» → взвешенная
  • «наименьшая задержка», «ближайший регион», «лучшая производительность» → по задержке
  • «один ресурс», «простая настройка» → простая
  • «несколько IP-адресов, все работоспособны» → с несколькими значениями ответа
  • «активно-пассивное переключение при отказе» → Failover
  • «содержимое для конкретной страны», «нормативное ограничение» → географическая
  • «маршрутизация по близости к ресурсам» → геоблизость

Взвешенная маршрутизация для поэтапной миграции

Взвешенная маршрутизация — рекомендуемая стратегия для постепенного переключения трафика во время миграции. Типичная последовательность:

  1. Начало: вес старой инфраструктуры — 100, новой — 0
  2. Включение новой инфраструктуры: изменить соотношение на 95/5 и отслеживать частоту ошибок и задержку
  3. Увеличение доли: 80/20 → 50/50 → 20/80 → 5/95 в течение нескольких часов или дней
  4. Завершение: 0/100; вывести старую инфраструктуру из эксплуатации
  5. Откат: если возникли проблемы, немедленно установить для новой инфраструктуры вес 0, чтобы остановить трафик

Этот подход снижает риск по сравнению с немедленным переключением и позволяет быстро выполнить откат, изменив вес DNS, а не развертывая систему заново.

Объединение политик маршрутизации по задержке и взвешенной маршрутизации

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

Однако одна запись может иметь только одну политику маршрутизации. Для комбинированных схем используйте один уровень записей для маршрутизации по задержке и отдельный набор записей в каждом регионе с взвешенной маршрутизацией, указывающих на разные ALB или эластичные IP-адреса.

Быстрая проверка

Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке Вы узнали, что простая маршрутизация возвращает одно или несколько значений без проверки работоспособности, взвешенная маршрутизация распределяет трафик по процентам для A/B-тестирования и постепенных миграций, а маршрутизация по задержке направляет пользователей в регион с наименьшей задержкой для оптимизации производительности. Большинство политик интегрируется с проверками работоспособности для автоматического переключения при отказе. Далее мы рассмотрим политики маршрутизации Failover и географическую маршрутизацию.

Часто задаваемые вопросы

Урок «Политики маршрутизации: простая, взвешенная и по задержке» бесплатный?

Да — полный текст урока «Политики маршрутизации: простая, взвешенная и по задержке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «Политики маршрутизации: простая, взвешенная и по задержке»?

Используйте простую маршрутизацию для отдельных ресурсов, взвешенную — для разделения трафика A/B, а маршрутизацию по задержке — для обслуживания пользователей из ближайшего региона. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Политики маршрутизации: простая, взвешенная и по задержке»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Размещённые зоны и типы записей DNS
  2. Политики маршрутизации: простая, взвешенная и по задержке
  3. Отказоустойчивость и географическая маршрутизация
  4. Проверки работоспособности и отказоустойчивость DNS
← Назад к AWS Solutions Architect