Обзор Elastic Load Balance
Облачный балансировщик нагрузки Elastic Load Balance (ELB) автоматически распределяет входящий трафик между множеством серверов. Распределение происходит на основании настроенных правил. Балансировщик ELB расширяет возможности обслуживания серверов приложений и повышает их доступность за счет устранения единых точек отказа (SPOFs).
Отслеживание нагрузки происходит с помощью «слушателей» (Listeners). «Слушатели» используют указанные вами сетевые протоколы и порты для проверки запросов от клиентов и маршрутизируют запросы к Backend Servers на основании определенных вами правил. Для HTTP и HTTPS «слушателей» можно добавить правила перенаправления запросов (Forwarding policy) на основании доменного имени или URL.
Backend Server Group направляет запросы на один или несколько бэкенд-серверов. Можно настроить проверку работоспособности (Health check) для каждой группы бэкенд-серверов. Когда при проверке работоспособности у сервера выявляется режим работы Abnormal, балансировщик нагрузки автоматически прекращает маршрутизацию новых запросов этому серверу до его восстановления.
Таким образом, после создания балансировщика нагрузок (Load Balancer) необходимо создать как минимум одного «слушателя» и группу бэкенд-серверов, которая содержит как минимум один сервер.
Алгоритм балансировки нагрузки, выбранный при добавлении «слушателя», определяет, каким образом распределяются запросы.
Поддерживаемые алгоритмы
- Weighted round robin
- Weighted least connection
- Source IP hash
Каждому серверу присваивается весовой коэффициент, в соответствии с которым распределяются запросы. Бэкенд-серверы с более высоким коэффициентом получают, относительно других, большее количество запросов. Этот алгоритм часто используется для коротких подключений, например, в HTTP-сервисах.
Использует активные соединения для каждого бэкенд-сервера, чтобы сделать решение по балансировке нагрузки. Этот алгоритм учитывает количество подключений у серверов и каждый следующий запрос передает тому серверу, у которого нагрузка наименьшая.
Исходный IP-адрес для каждого запроса рассчитывается, используя алгоритм хеширования, для того, чтобы сформировать уникальный хеш-ключ. Все бэкенд-серверы нумеруются. По сформированному хеш-ключу запросы клиента распределяются по определенным бэкенд-серверам. Этот алгоритм гарантирует, что запросы от различных клиентов будут направлены к тому же серверу, к которому они обращались прежде. Алгоритм подходит для TCP-соединений, не использующих cookie.
Тип балансировщика
ELB предоставляет два типа балансировщика нагрузки:
- Dedicated Load balancer (выделенный)
Использует выделенные ресурсы, не зависящие от других балансировщиков нагрузки, поэтому они не влияют на его производительность.
Подробнее о спецификациях выделенного балансировщика нагрузки.
- Shared load balancer (общий)
Использует ресурсы совместно с другими балансировщиками нагрузки, которые влияют на его производительность. Не рекомендуется применять этот тип балансировщика для продуктивных сред.
Подробнее о различиях Dedicated и Shared Load balancer (en).
Знакомство с сервисом Elastic Load Balance
Пошаговые инструкции по работе с Elastic Load Balance
Ответы на часто задаваемые вопросы о Elastic Load Balance
Правила расчета стоимости использования Elastic Load Balance
Документация Elastic Load Balance на английском языке
Спецификация публичного API для управления Elastic Load Balance