Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Application Load Balancer
  • Начало работы
    • Обзор
    • Балансировщики нагрузки
    • HTTP-роутеры
    • Лимит на количество запросов
    • Группы бэкендов
    • Целевые группы
    • Квоты и лимиты
    • Рекомендации по настройке проверок состояния
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • История изменений
  • Обучающие курсы

В этой статье:

  • Особенности работы Global RateLimit
  • Маршрутизация запросов при использовании лимитов
  • Лимиты для отдельных маршрутов виртуального хоста
  • Лимиты по IP-адресам для отдельных маршрутов виртуального хоста
  • Лимиты для отдельных маршрутов и для виртуального хоста в целом
  • Рекомендации по настройке лимита
  • Мониторинг
  1. Концепции
  2. Лимит на количество запросов

Настройка лимитов на количество запросов с помощью модуля Global RateLimit

Статья создана
Yandex Cloud
Обновлена 27 мая 2025 г.
  • Особенности работы Global RateLimit
  • Маршрутизация запросов при использовании лимитов
    • Лимиты для отдельных маршрутов виртуального хоста
    • Лимиты по IP-адресам для отдельных маршрутов виртуального хоста
    • Лимиты для отдельных маршрутов и для виртуального хоста в целом
  • Рекомендации по настройке лимита
  • Мониторинг

Примечание

Global RateLimit находится на стадии Preview. Чтобы получить доступ к функциональности, обратитесь в техническую поддержку.

Global RateLimit позволяет задать лимит на количество запросов HTTP и gRPC к виртуальному хосту. Ограничение можно задать для виртуального хоста в целом или для отдельного маршрута на виртуальном хосте.

Примечание

Также ограничение запросов можно настроить в сервисе Yandex Smart Web Security. Рекомендуем настраивать ограничение запросов только в одном сервисе — либо в Application Load Balancer, либо в Smart Web Security. Дублирование настроек может усложнить мониторинг и поддержку ваших приложений.

Ограничение входящего трафика помогает:

  • Защитить хост от перегрузок, поскольку вы можете указать ограничение в соответствии с возможностями системы.
  • Более равномерно распределить ресурсы приложения среди клиентов, поскольку можно устанавливать ограничение на запросы по IP-адресу.

В Global RateLimit можно настроить:

  • Лимит на количество запросов в секунду (RPS) или в минуту (RPM).
  • Способ учета количества запросов:
    • all-requests — единый лимит на все входящие запросы.
    • requests-per-ip — лимит для каждого IP-адреса в отдельности. То есть в единицу времени для каждого IP-адреса разрешено принять указанное количество запросов.

Коды ответов, которые возвращает RateLimit при блокировке запросов:

  • Для HTTP — 429.
  • Для gRPC — UNAVAILABLE.

Особенности работы Global RateLimitОсобенности работы Global RateLimit

  • Когда модуль RateLimit недоступен, ограничения не действуют — режим Fail Open.
  • Если нагрузка резко возрастает или возникают задержки в синхронизации данных между узлами балансировщика, количество маршрутизируемых запросов может превысить лимиты. Запросы, разрешенные сверх лимита, будут учтены в следующих временных интервалах.

Например, установлен лимит на 50 запросов в секунду — 50 RPS. За первую секунду было маршрутизировано 52 запроса, что превышает лимит. Значит в следующую секунду будут маршрутизированы только 48 запросов.

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

В примерах ниже разрешенные запросы — это запросы, которые балансировщик маршрутизировал на виртуальный хост. Если у вас настроен профиль безопасности, запрос может быть заблокирован сервисом Yandex Smart Web Security.

Лимиты для отдельных маршрутов виртуального хостаЛимиты для отдельных маршрутов виртуального хоста

Рассмотрим пример, в котором настроены лимиты без учета IP-адреса для двух маршрутов виртуального хоста.

Виртуальный хостexample.com
IP 1.2.3.4  →example.com/foo
GET-запросы за 1 секунду
IP 1.2.3.5  →example.com/bar
IP 1.2.3.6  →example.com/foo
IP 1.2.3.7  →example.com/foo
200
1
2
3
4
Путь:/foo
Лимит:1 RPS
Путь:/bar
Лимит:1 RPS
Маршруты
200
429
429

В этом примере запросы будут обработаны следующим образом:

  • Запрос 1 — разрешен, поскольку не превышает лимит для /foo.
  • Запрос 2 — разрешен, поскольку не превышает лимит для /bar.
  • Запросы 3 и 4 — отклонены, поскольку превышают ограничение для /foo.

Лимиты по IP-адресам для отдельных маршрутов виртуального хостаЛимиты по IP-адресам для отдельных маршрутов виртуального хоста

Рассмотрим пример, в котором настроены лимиты по IP-адресам для двух маршрутов виртуального хоста.

Виртуальный хостexample.com
IP 1.2.3.4  →example.com/foo
GET-запросы за 1 секунду
IP 1.2.3.4  →example.com/foo
IP 1.2.3.5  →example.com/foo
IP 1.2.3.4  →example.com/bar
200
1
2
3
4
Путь:/foo
Лимит для IP:1 RPS
Путь:/bar
Лимит для IP:1 RPS
Маршруты
429
200
200

В этом примере запросы будут обработаны следующим образом:

  • Запрос 1 — разрешен, поскольку не превышает лимит для /foo для IP 1.2.3.4.
  • Запрос 2 — отклонен, поскольку превышает лимит для /foo для IP 1.2.3.4.
  • Запрос 3 — разрешен, поскольку не превышает лимит для /foo для IP 1.2.3.5.
  • Запрос 4 — разрешен, поскольку не превышает лимит для /bar для IP 1.2.3.4.

Лимиты для отдельных маршрутов и для виртуального хоста в целомЛимиты для отдельных маршрутов и для виртуального хоста в целом

В этом примере настроены лимиты для виртуального хоста и отдельных маршрутов без учета IP-адреса. Аналогично работают лимиты для виртуального хоста и лимиты маршрутов с учетом IP-адреса.

Виртуальный хостexample.com
IP 1.2.3.4  →example.com/foo
GET-запросы за 1 секунду
IP 1.2.3.4  →example.com/foo
IP 1.2.3.4  →example.com/bar
IP 1.2.3.4  →example.com
200
1
2
3
4
Путь:/foo
Лимит для IP:1 RPS
Путь:/bar
Лимит для IP:1 RPS
Маршруты
429
200
429
Путь:/
Лимит:3 RPS

  • Запрос 1 — разрешен, поскольку не превышает лимит для /foo для IP 1.2.3.4.

    Счетчик запросов виртуального хоста — 1.

  • Запрос 2 — отклонен, поскольку превышает лимит для /foo для IP 1.2.3.4.

    Счетчик запросов виртуального хоста — 2.

  • Запрос 3 — разрешен, поскольку не превышает лимит для /bar для IP 1.2.3.4.

    Счетчик запросов виртуального хоста — 3.

  • Запрос 4 — отклонен, поскольку превышает лимит запросов для виртуального хоста.

Рекомендации по настройке лимитаРекомендации по настройке лимита

Чтобы определить оптимальную скорость запросов:

  1. Проанализируйте текущий объем трафика, возможности инфраструктуры и особенности приложения.
  2. Начните настройку RateLimit с минимального лимита, который не вызывает перегрузок.
  3. Постепенно увеличивайте лимит, отслеживая производительность и стабильность системы.

Так вы сможете настроить скорость запросов в соответствии с реальными потребностями и возможностями системы.

МониторингМониторинг

Отслеживать работу Global RateLimit можно в разделе Мониторинг соответствующего балансировщика или в сервисе Yandex Monitoring.

Для этого есть два преднастроенных графика:

  • RPS — количество запросов в секунду, которые маршрутизировал балансировщик.
  • 4XX — количество запросов, которым возвращен код ответа из класса 4XX.

В сервисе Monitoring можно настроить дополнительные графики с более подробной информацией. Например, чтобы настроить график с количеством запросов, которым возвращен код ответа 429, используйте такие настройки токенов:

  • service = Application Load Balancer.
  • name = load_balancer.requests_count_per_second.
  • load_balancer = <идентификатор_балансировщика>.
  • http_router = *.
  • virtual_host = *.
  • route = *.
  • backend_group = *.
  • backend = *.
  • zone = *.
  • code = 429.

Примечание

Выборка метрик по параметрам backend_group, virtual_host, route и другим недоступна для запросов, которые были отклонены модулем RateLimit.

Была ли статья полезна?

Предыдущая
HTTP-роутеры
Следующая
Группы бэкендов
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»