Создание балансировщика нагрузки
Создание балансировщика в панели управления
Для создания балансировщика нагрузки в панели управления:
- Перейдите в раздел Балансировщики в проекте.
- Нажмите кнопку Создать балансировщик.
- Введите имя балансировщика или оставьте автоматически сгенерированное имя.
- Выберите необходимый регион.
- Выберите тип балансировщика в зависимости от нагрузки на проект – по умолчанию будет выбран тип Базовый с резервированием.
- Укажите адрес балансировщика, выбрав подсеть. Поле IP-балансировщика по умолчанию будет заполнено одним из свободных адресов подсети. При необходимости подключите плавающий IP.
Добавьте настройки правила для балансировщика. Подробнее об основных настройках правила.
Примечание: для создания балансировщика достаточно выбрать в правиле протокол и порт балансировщика и серверов, а также выбрать хотя бы один сервер. Все остальные настройки правил будут заполнены по умолчанию — их можно изменить после создания балансировщика.
В блоке с правилом на вкладке Серверы выберите те серверы, на которые будет отправляться трафик правила.
При необходимости добавьте другие правила для балансировщика, нажав Добавить правило.
Проверьте стоимость и нажмите кнопку Создать балансировщик нагрузки.
Основные настройки правила
Протокол и порт
В каждом правиле можно выбрать протокол и порт для балансировщика и для серверов. Доступны:
- протоколы 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