Введение

Облачный балансировщик нагрузки Elastic Load Balance (ELB) автоматически распределяет входящий трафик между множеством серверов. Распределение происходит на основании настроенных правил. Балансировщик ELB расширяет возможности обслуживания серверов приложений и повышает их доступность за счет устранения единых точек отказа (SPOFs).

_images/s__elb.jpeg

Отслеживание нагрузки происходит с помощью «слушателей» (Listeners). «Слушатели» используют указанные вами сетевые протоколы и порты для проверки запросов от клиентов и маршрутизируют запросы к бэкенд серверам (Backend Servers) на основании определенных вами правил. Для HTTP и HTTPS «слушателей» можно добавить правила перенаправления запросов на основании доменного имени или URL.

Группа бекенд серверов (Backend Servers Group) направляет запросы на один или несколько бекенд серверов. Можно настроить проверку работоспособности (Health check) для каждой группы бекенд серверов. Когда при проверке работоспособности у сервера выявляется режим работы Abnormal, балансировщик нагрузки автоматически прекращает маршрутизацию новых запросов этому серверу до его восстановления.

_images/s__bsg.jpeg

Таким образом, после создания балансировщика нагрузок (Load Balancer) необходимо создать как минимум одного «слушателя» и группу бекенд серверов, которая содержит как минимум один сервер.

Алгоритм балансировки нагрузки, выбранный при добавлении «слушателя», определяет, каким образом распределяются запросы.

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

Weighted round robin

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

Weighted least connection

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

Source IP hash

Исходный IP-адрес для каждого запроса рассчитывается, используя алгоритм хэширования, для того, чтобы сформировать уникальный хэш-ключ. Все бекенд серверы нумеруются. По сформированному хэш-ключу запросы клиента распределяются по определенным бекенд серверам. Данный алгоритм гарантирует, что запросы от различных клиентов будут направлены к тому же серверу, к которому они обращались прежде. Алгоритм подходит для TCP-соединений, не использующих куки (cookies).