Эластичная балансировка нагрузки в AWS
Опубликовано: 2022-08-10Эластичная балансировка нагрузки — это сердце приложений в AWS. Узнайте все о ELB, его типах и функциях в этом посте.
В настоящее время большинству организаций требуется управление и повышение масштабируемости, доступности и отказоустойчивости своих приложений. AWS предлагает для этого отличное решение — сервис Elastic Load Balancing. Эта служба состоит из балансировщика нагрузки, который может распределять рабочие нагрузки между множеством вычислительных ресурсов, таких как виртуальные серверы.

Службы балансировки нагрузки позволяют настраивать проверки работоспособности для отслеживания работоспособности вычислительных ресурсов. Это также позволяет нам переложить работу по шифрованию и расшифровке на ваш балансировщик нагрузки, чтобы вычислительные ресурсы могли сосредоточиться на своей основной работе.
Эластичная балансировка нагрузки (ELB): обзор
ELB — это служба, которая автоматически распределяет входящий трафик между несколькими экземплярами EC2. Это помогает достичь более высокого уровня отказоустойчивости в ваших приложениях, предоставляя возможности балансировки нагрузки для распределения трафика приложений.

Кроме того, Elastic Load Balancing может обнаруживать неработоспособные инстансы EC2, и как только инстанс EC2 оказывается неработоспособным, ELB прекращает отправлять на него трафик до тех пор, пока он снова не станет работоспособным. Клиенты могут легко включить эластичную балансировку нагрузки в одной или нескольких зонах доступности для более стабильной производительности приложений.
Функции эластичной балансировки нагрузки
Безопасность
Вы можете управлять и создавать группы безопасности, связанные с Elastic Load Balancing, в Amazon Virtual Private Cloud (VPC), чтобы предоставить дополнительные параметры сети и безопасности для Application Load Balancer и Classic Load Balancer.
Высокая доступность
Elastic Load Balancer отличается высокой доступностью. Вы можете распределить входящий трафик вашего приложения на инстансы EC2 в одной или нескольких зонах доступности.
Высокая пропускная способность
Эластичные балансировщики нагрузки предназначены для обработки трафика по мере его роста и могут загружать и балансировать миллионы запросов в секунду. Он также может справляться с внезапными всплесками трафика.
Проверки здоровья
С помощью Elastic Load Balancing вы можете контролировать работоспособность своих инстансов EC2 и не рисковать отправкой трафика на неработоспособный инстанс.
Оперативный мониторинг и протоколирование
Amazon CloudWatch сообщает метрики Application и Classic Load Balancer, такие как количество ошибок, типы ошибок, задержка запросов, количество запросов и т. д.
Удалить защиту
Вы можете включить защиту от удаления на Elastic Load Balancer, чтобы предотвратить его случайное удаление.
Компоненты эластичных балансировщиков нагрузки
Слушатели
Вы должны настроить один или несколько прослушивателей для балансировщика нагрузки. Это процесс, который проверяет запросы на подключение. Он настроен с протоколом и портом для подключений для интерфейсных подключений (клиент к балансировщику нагрузки) и протокола для внутренних подключений (балансировщик нагрузки к серверному экземпляру).
Поддерживаемые протоколы эластичной балансировки нагрузки включают:
- HTTPS (безопасный HTTP)
- TCP
- SSL (защищенный TCP)
Балансировщик нагрузки
Балансировщик нагрузки выступает в роли «дорожного полицейского» перед вашими серверами, распределяя клиентские запросы по всем серверам, оборудованным для их обработки, таким образом, чтобы максимизировать скорость и использование емкости и гарантировать, что ни один сервер не будет перегружен, что может привести к снижению производительности.
Балансировщик нагрузки направляет трафик на активные серверы в случае, если один сервер отключается. Балансировщик нагрузки инициирует запросы к новому серверу, когда он добавляется в группу серверов.
Целевые группы
Запросы направляются к одной или нескольким зарегистрированным целям с использованием каждой целевой группы. Вы определяете целевую группу и условия при создании каждого правила прослушивателя. Когда условие правила выполняется, трафик направляется в соответствующую целевую группу.
Для разного рода запросов можно сделать отдельные целевые группы. Например, создайте разные целевые группы для запросов к микросервисам вашего приложения и общих запросов.
Типы балансировщиков нагрузки
Балансировщик нагрузки приложений
Application Load Balancer позволяет разработчикам настраивать и направлять входящий трафик конечных пользователей в приложения, работающие в общедоступном облаке AWS.
Балансировка нагрузки имеет решающее значение в облачной среде с многочисленными веб-приложениями. Балансировщик нагрузки гарантирует, что ни один сервер не будет перегружен, путем разделения сетевого трафика и информационных потоков между несколькими серверами. Это повышает удобство работы пользователей, повышает скорость отклика и доступность приложений, а также может защищать от распределенных атак типа «отказ в обслуживании» (DDoS).
Доступ к веб-приложениям значительно расширился за последние годы. Однако неожиданное увеличение трафика может замедлить работу онлайн-сервисов и снизить их доступность. Application Load Balancer эффективно распределяет сетевую нагрузку в общедоступном облаке для повышения стабильности и доступности.
Application Load Balancer будет направлять трафик на исправную цель внутри облачного ресурса только в том случае, если проблемное приложение достигает уровня 7. WebSocket — это еще один протокол, поддерживаемый Application Load Balancer для улучшения связи с базовым сервером.

Веб-сайты и мобильные приложения, работающие в контейнерах или на инстансах AWS EC2, получают наибольшую выгоду от использования балансировщика нагрузки приложений. В архитектуре микросервисов Application Load Balancer можно использовать в качестве внутреннего балансировщика нагрузки перед инстансами EC2 или контейнерами Docker, которые реализуют определенный сервис. Кроме того, его можно использовать перед приложением RESTful API.
Многочисленные сервисы AWS совместимы с балансировщиком нагрузки приложений, в том числе:
- Автоматическое масштабирование AWS
- Сервис эластичных контейнеров Amazon
- AWS CloudFormation
- AWS CodeDeploy
- Диспетчер сертификатов AWS
Классический балансировщик нагрузки
Трафик от входящих приложений распределяется по многочисленным инстансам EC2 в различные зоны доступности с помощью классического балансировщика нагрузки. Классический балансировщик нагрузки действует как единственная точка контакта клиента. Это делает ваше приложение более доступным. Не нарушая общий поток запросов к вашему приложению, вы можете добавлять или удалять экземпляры из своего классического балансировщика нагрузки по мере изменения ваших потребностей.
Прослушиватель использует протокол и порт, которые вы установили, для отслеживания клиентских запросов на подключение. Затем прослушиватель передает запросы одному или нескольким зарегистрированным экземплярам, используя настроенный протокол и порт. Вы изменяете свой балансировщик нагрузки, добавляя одного или нескольких слушателей.
Чтобы гарантировать, что балансировщик нагрузки направляет запросы только к работоспособным экземплярам, вы можете настроить проверки работоспособности, которые используются для отслеживания состояния зарегистрированных экземпляров.
Классический балансировщик нагрузки по умолчанию равномерно распределяет трафик между зонами доступности, которые вы включили для своего балансировщика нагрузки. Включите межзональную балансировку нагрузки на балансировщике нагрузки, чтобы распределить трафик между всеми зарегистрированными экземплярами во всех активированных зонах доступности.

Типы классического балансировщика нагрузки:
- Классические балансировщики нагрузки с выходом в Интернет. Балансировщик нагрузки с выходом в Интернет может направлять запросы от клиентов к инстансам EC2, зарегистрированным в балансировщике нагрузки, через Интернет благодаря общедоступному DNS-домену. При создании балансировщику нагрузки присваивается общедоступное DNS-имя, которое клиенты могут использовать для выполнения запросов. DNS-серверы преобразуют DNS-имя вашего балансировщика нагрузки в общедоступные IP-адреса узлов балансировщика нагрузки. Частные IP-адреса соединяют каждый узел балансировки нагрузки с внутренними экземплярами.
- Внутренние классические балансировщики нагрузки : узлы внутреннего балансировщика нагрузки имеют только личные IP-адреса. DNS-имя внутреннего балансировщика нагрузки может быть общедоступно преобразовано в IP-адреса узлов. В результате запросы могут направляться внутренними балансировщиками нагрузки только от клиентов, у которых есть доступ к VPC балансировщика нагрузки.
Балансировщик сетевой нагрузки
Балансировщик сетевой нагрузки работает на четвертом уровне модели OSI. Он может обрабатывать миллионы запросов в секунду.
Балансировщик нагрузки выбирает цель из целевой группы для правила по умолчанию после получения запроса на подключение. Он пытается установить TCP-соединение с выбранной целью на порту, указанном в настройках прослушивателя.
Чтобы повысить отказоустойчивость вашего приложения, вы можете включить несколько зон доступности — платную услугу в AWS для балансировщиков сетевой нагрузки. Если одна зона доступности выйдет из строя, ваше приложение не перестанет работать.
Для TCP-трафика цель выбирается с использованием алгоритма хэширования потока на основе протокола, исходного порта, исходного IP-адреса, целевого порта, конечного IP-адреса и порядкового номера TCP.
TCP-соединения клиентов имеют разные порядковые номера и исходные порты, поэтому соединения направляются к другим целям. Каждое уникальное TCP-соединение направляется к одной цели на время соединения.
Балансировщик нагрузки шлюза
Ваши сторонние виртуальные устройства можно легко развертывать, масштабировать и управлять ими с помощью Gateway Load Balancer. Он предоставляет единый шлюз для разделения трафика между многочисленными виртуальными устройствами и увеличения или уменьшения их масштаба в зависимости от потребности. Это устраняет потенциальные точки отказа в вашей сети и повышает доступность.
Виртуальные устройства независимых производителей можно найти, протестировать и приобрести непосредственно через AWS Marketplace. Независимо от того, хотите ли вы продолжить работу с вашими текущими поставщиками или попробовать что-то новое, этот интегрированный интерфейс ускорит процесс развертывания, чтобы вы могли быстрее воспользоваться преимуществами своих виртуальных устройств.
Преимущества балансировщика нагрузки шлюза:
- Более быстрое развертывание сторонних виртуальных устройств.
- Масштабирование виртуальных устройств при управлении затратами.
- Повышение доступности виртуального устройства
Заключительные слова
Эластичные балансировщики нагрузки являются важной частью многих инфраструктур, созданных на AWS. Функции, которые мы получаем от ELB, упрощают управление вашей инфраструктурой. Эластичная балансировка нагрузки — это проверенный метод распределения запросов приложений и веб-трафика по нескольким целям или экземплярам.
Вы можете автоматически масштабировать различные рабочие нагрузки с помощью Elastic Load Balancer. Мы рассмотрели все типы балансировщиков нагрузки, предоставляемых AWS, и вы можете использовать их в соответствии с требованиями вашего приложения.




