Обзор Elastic Load Balance

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

_images/schm__images-elb.svg

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

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

_images/schm__images-load-balancer.svg

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

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

Поддерживаемые алгоритмы

Weighted round robin

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

Weighted least connection

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

Source IP hash

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

Тип балансировщика

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

  • Dedicated Load balancer (выделенный)

    Использует выделенные ресурсы, не зависящие от других балансировщиков нагрузки, поэтому они не влияют на его производительность.

    Подробнее о спецификациях выделенного балансировщика нагрузки.

  • Shared load balancer (общий)

    Использует ресурсы совместно с другими балансировщиками нагрузки, которые влияют на его производительность. Не рекомендуется применять этот тип балансировщика для продуктивных сред.

Подробнее о различиях выделенного и общего балансировщиков нагрузки.

Примечание

Тарификация балансировщика нагрузки зависит от его типа и трафика публичной сети. Подробнее в разделе Тарификация.

Масштабная конференция
GoCloud 2024:
облачные грани будущего