- tocdepth
2
Обзор 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
Каждому серверу присваивается весовой коэффициент, в соответствии с которым распределяются запросы. Бэкенд-серверы с более высоким коэффициентом получают, относительно других, большее количество запросов. Этот алгоритм часто используется для коротких подключений, например, в HTTP-сервисах.
- Weighted least connection
Использует активные соединения для каждого бэкенд-сервера, чтобы сделать решение по балансировке нагрузки. Этот алгоритм учитывает количество подключений у серверов и каждый следующий запрос передает тому серверу, у которого нагрузка наименьшая.
- Source IP hash
Исходный IP-адрес для каждого запроса рассчитывается, используя алгоритм хеширования, для того, чтобы сформировать уникальный хеш-ключ. Все бэкенд-серверы нумеруются. По сформированному хеш-ключу запросы клиента распределяются по определенным бэкенд-серверам. Этот алгоритм гарантирует, что запросы от различных клиентов будут направлены к тому же серверу, к которому они обращались прежде. Алгоритм подходит для TCP-соединений, не использующих cookie.
Тип балансировщика
ELB предоставляет два типа балансировщика нагрузки:
- Dedicated Load balancer (выделенный)
Использует выделенные ресурсы, не зависящие от других балансировщиков нагрузки, поэтому они не влияют на его производительность.
Подробнее о спецификациях выделенного балансировщика нагрузки.
- Shared load balancer (общий)
Использует ресурсы совместно с другими балансировщиками нагрузки, которые влияют на его производительность. Не рекомендуется применять этот тип балансировщика для продуктивных сред.
Подробнее о различиях выделенного и общего балансировщиков нагрузки.
Спецификация публичного API для управления Elastic Load Balance
для Dev & Test