Создание балансировщика нагрузки

Создание балансировщика в панели управления

Для создания балансировщика нагрузки в панели управления:

  1. Перейдите в раздел Балансировщики в проекте.
  2. Нажмите кнопку Создать балансировщик.
  3. Введите имя балансировщика или оставьте автоматически сгенерированное имя.
  4. Выберите необходимый регион.
  5. Выберите тип балансировщика в зависимости от нагрузки на проект – по умолчанию будет выбран тип Базовый с резервированием.
  6. Укажите адрес балансировщика, выбрав подсеть. Поле IP-балансировщика по умолчанию будет заполнено одним из свободных адресов подсети. При необходимости подключите плавающий IP.
  7. Добавьте настройки правила для балансировщика. Подробнее об основных настройках правила.

    Примечание: для создания балансировщика достаточно выбрать в правиле протокол и порт балансировщика и серверов, а также выбрать хотя бы один сервер. Все остальные настройки правил будут заполнены по умолчанию — их можно изменить после создания балансировщика.

  8. В блоке с правилом на вкладке Серверы выберите те серверы, на которые будет отправляться трафик правила.

  9. При необходимости добавьте другие правила для балансировщика, нажав Добавить правило.

  10. Проверьте стоимость и нажмите кнопку Создать балансировщик нагрузки.

Основные настройки правила

Протокол и порт

В каждом правиле можно выбрать протокол и порт для балансировщика и для серверов. Доступны:

  • протоколы HTTP, HTTPS, UDP, TCP для балансировщика;
  • протоколы HTTP, HTTPS, UDP, TCP, PROXY для серверов.

Не все протоколы стыкуются друг с другом, это учтено в интерфейсе — невозможно указать неподходящие протоколы.

Для выбранного протокола автоматически проставляются стандартные порты.

Установленное значение порта является общим для всех серверов.

Примечание: в работающем балансировщике нельзя поменять протоколы и порты правила, можно только пересоздать правило с нужными настройками.

SSL-сертификат

Для балансировки HTTPS-трафика рекомендуется добавить в правило SSL-сертификат, чтобы трафик корректно распознавался и распределялся на серверы.

Для настройки потока HTTPS → HTTP добавление SSL-сертификата обязательно.

Если выбран поток HTTPS → HTTPS и не загружен SSL-сертификат, то передача данных будет осуществляться по протоколу PROXY, без расшифровки.

В случае удаления балансировщика SSL-сертификат будет удален вместе с ним.

Серверы

При создании балансировщика выберите серверы, которые нужно добавить в правило. Укажите нужный IP, если у сервера несколько портов, и установите вес сервера.

После создания балансировщика можно будет:

  • назначить серверу роль резервного — сервер не будет получать подключения, пока не выйдут из строя все остальные серверы правила;
  • приостановить — сервер не будет получать подключения, пока не будет вручную возвращен в работу;
  • убрать из правила — сервер перестанет участвовать в балансировании, но при этом продолжит работать.

Можно добавлять новые серверы в правило уже работающего балансировщика по кнопке Добавить сервер.

Алгоритм балансировки

Можно выбрать один из двух алгоритмов балансировки:

  • Round Robin — алгоритм кругового обслуживания, который представляет собой перебор по круговому циклу: первый запрос передается одному серверу, затем следующий запрос передается другому и так до достижения последнего сервера, а затем цикл начинается сначала;
  • Least connections — алгоритм учитывает количество подключений, поддерживаемых серверами в текущий момент времени. Каждый следующий запрос передается серверу с наименьшим количеством активных подключений.

Можно включить опцию Sticky Sessions — метод распределения входящих запросов, при котором соединения передаются на один и тот же сервер группы. Благодаря использованию этого метода запросы распределяются по серверам с использованием:

  • * APP-cookie — уже существующая cookie, которая задана в самом коде приложения;
  • * HTTP-cookie — cookie, которую создает и прикрепляет к сессии балансировщик;
    • Source IP — IP-адрес клиента хешируется и делится на вес каждого сервера в правиле, чтобы определить сервер, который будет обрабатывать запросы.

    Запросы одного и того же клиента будут передаваться на один и тот же сервер. Если закрепленный за конкретным адресом сервер недоступен, запрос будет перенаправлен на другой сервер.

Проверки доступности

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

Проверки доступности используются балансировщиком для того чтобы понять, что какой-то из серверов вышел из строя и его нельзя использовать. В случае недоступности одного сервера соединения будут перенаправлены на работающий сервер.

По умолчанию проверки доступности включены, но их можно отключить на соответствующей вкладке. Примечание: если проверки отключены, серверы будут в статусе NO MONITOR.

Настроить можно следующие параметры проверки:

  • тип проверки: HTTP, HTTPS, PING, TCP, TLS-HELLO, UDP-CONNECT;
  • интервал в секундах, с которым балансировщик отправляет проверяющие запросы серверам;
  • таймаут соединения — время в секундах, при котором ожидается ответ от адресата. Если не было ответа, соединение прерывается, как только это время истекло;
  • для протоколов проверки HTTP и HTTPS можно настроить URL и ожидаемые коды ответа;
  • порог успеха — количество успешных обращений подряд, после которых сервер переводится в рабочее состояние;
  • порог неуспеха — количество неуспешных обращений подряд, после которых работа сервера приостанавливается.

Соединения

Можно задавать настройки времени соединения между:

  • входящими запросами и балансировщиком – укажите таймаут соединения, а также ограничено или нет количество соединений. При ограниченном количестве соединений необходимо указать максимум количества запросов.
  • балансировщиком и серверами — укажите таймаут соединения, таймаут неактивности и таймаут ожидания TCP-пакетов.

Заголовки HTTP-запросов

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

  • X-Forwarded-For
  • X-Forwarded-Port
  • X-Forwarded-Proto