Балансировщик нагрузки

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

Тарифы и конфигурации

Тариф балансировщика нагрузки зависит от выбранной конфигурации балансировщика:

Базовый

Базовый с резервированием

Продвинутый с резервированием

Конфигурация

1GB RAM, 1 VCPU

1GB RAM, 1 VCPU

2GB RAM, 2 VCPU

Отказоустойчивость

Only Single-mode

Отказоустойчивый с резервированием

Отказоустойчивый с резервированием для более высоких нагрузок

Резервирование

Amph-single-standard

Amph-failover-standard

Amph-failover-advanced

Подходит для

Для тестовых окружений или проектов, которым не нужна доступность сервиса 24/7

Для небольших и средних проектов, которым важна доступность сервиса

Для проектов с высокой нагрузкой и требованием постоянной доступности сервиса

Рекомендуется выбирать тариф с учетом требований к производительности и отказоустойчивости балансировщика. Обратите внимание, что изменить его в будущем невозможно. Для перехода к другому тарифу надо будет создавать новый балансировщик.

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

Предварительно подготовьте инфраструктуру:

  • Активные виртуальные серверы с предустановленными приложениями (например, Nginx, Apache, API и т.д.), на которые предполагается распределять входящий трафик.

  • Общая виртуальная сеть (L2) - внутренняя или внешняя.

  • Если включен фаервол, то в его настройках должны быть разрешены входящие соединения на порт балансировщика.

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

  1. Перейдите в Панель управления в раздел Облако и нажмите кнопку +Создать.

  2. Укажите регион и зону доступности.

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

  4. Настройте правила маршрутизации трафика:

  1. Введите название обработчика целевой группы, укажите протокол и порт.

  2. На вкладке Серверы группы найдите нужные виртуальные серверы, выбрав из существующих. Все backend-сервера должны отвечать на один и тот же порт.

  3. Перейдите на вкладку Настройки и задайте метод балансировки - Round Robin или Least Connections.

  4. Подключите Sticky sessions, если для вашего приложения важно, чтобы запросы от одного и того же клиента направлялись на один и тот же сервер, позволяя сохранять состояние сессии. Привязка выполняется по IP адресу или cookie - HTTP или APP.

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

  1. Введите имя балансировщика и, при необходимости, его описание.

  2. Завершите создание балансировщика, нажав кнопку Создать балансировщик.

  3. Вернитесь на вкладку Балансировщики и включите нужный вам балансировщик, нажав кнопку .

Доступные комбинации протоколов

Доступны следующие комбинации протоколов для приема трафика на балансировщике и назначения трафика на целевую группу:

  • TCP–TCP

  • UDP–UDP

  • TCP–PROXY — данные о клиентском подключении (IP-адрес и порт) пересылаются на внутренние серверы в специальном заголовке. Это позволяет серверам видеть реальную информацию о клиенте.

  • HTTPS–HTTPS — балансировка с шифрованием и терминацией TLS на стороне конечного сервера.

Изменение балансировщика нагрузки

Для изменения балансировщика:

  1. Перейдите на вкладку Балансировщики.

  2. В карточке нужного балансировщика нажмите кнопку Подробнее.

  3. В открывшейся форме можно изменить название и описание самого балансировщика или добавить новое правило маршрутизации.

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

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

  1. Перейдите на вкладку Балансировщики.

  2. В карточке нужного балансировщика нажмите кнопку .

  3. В открывшейся форме нажмите кнопку Удалить.