Всем привет! Курс стартует сегодня «AWS для разработчиков» , в связи с чем мы провели соответствующий тематический вебинар, посвященный обзору ELB. Мы рассмотрели типы балансировщиков и создали несколько экземпляров EC2 с балансировщиком.
Мы также изучили другие примеры использования.
После прослушивания вебинара , Вы будете:
- понять, что такое AWS Load Balancing;
- знать типы Elastic Load Balancer и его компоненты;
- используйте AWS ELB в своей практике.
- полезно, если вы планируете сдавать сертификационные экзамены AWS;
- это простой способ распределить нагрузку между серверами;
- Это простой способ добавить Lambda в ваш сервис (ALB).
Ришат Терегулов , системный инженер в маркетинговой компании по разработке и поддержке веб-сайтов.
Введение
Что такое Elastic Load Balancer, можно увидеть на диаграмме ниже, на которой показан простой пример:Load Balancer принимает запросы и распределяет их по экземплярам.
У нас есть один отдельный экземпляр, есть Lambda-функции и есть группа AutoScaling (группа серверов).
Типы AWS ELB
1. Давайте рассмотрим основные виды : Классический балансировщик нагрузки.Самый первый балансировщик нагрузки от AWS работает как на уровне 4, так и на уровне 7 OSI, поддерживая HTTP, HTTPS, TCP и SSL. Он обеспечивает базовую балансировку нагрузки между несколькими экземплярами Amazon EC2 и работает как на уровне запроса, так и на уровне соединения.
Откроем его (выделено серым):
Этот балансировщик считается устаревшим, поэтому его рекомендуется использовать только в определенных случаях.
Например, для приложений, созданных в сети EC2‑Classic. В принципе, нам никто не мешает его создать:
2. Балансировщик сетевой нагрузки.
Подходит для тяжелых рабочих нагрузок, работает на уровне OSI 4 (может использоваться в EKS и ECS), поддерживаются TCP, UDP и TLS. Network Load Balancer направляет трафик к целям в Amazon VPC и способен обрабатывать миллионы запросов в секунду со сверхнизкой задержкой.
Кроме того, он оптимизирован для обработки трафика с внезапными и меняющимися нагрузками.
3. Балансировщик нагрузки приложений .
Работает на уровне 7, имеет поддержку Lambda, поддерживает правила уровня заголовка и пути, поддерживает HTTP и HTTPS. Обеспечивает расширенную маршрутизацию запросов, ориентированную на доставку приложений, созданных на современных архитектурах, включая микросервисы и контейнеры.
Направляет трафик к целевым объектам в Amazon VPC на основе содержимого запроса.
Для многих пользователей Application Load Balancer был первым вариантом замены Classic Load Balancer, поскольку TCP не так распространен, как HTTP.
Создадим и его, в результате чего у нас уже будет два балансировщика нагрузки:
Компоненты балансировки нагрузки
Общие компоненты балансировки нагрузки (общее для всех балансиров):- Политика ведения журнала доступа
Затем указываем S3Bucket — объектное хранилище Amazon:
- Схема
Вопрос в том, должен ли ваш LoadBalancer получать внешние адреса, чтобы быть доступным извне, или это может быть ваш внутренний балансировщик нагрузки;
- Группы безопасности
По сути, это межсетевой экран высокого уровня.
- Подсети
Подсети указываются при создании.
Если VPC ограничены регионом, то подсети ограничены зонами доступности.
При создании балансировщика нагрузки лучше создать его как минимум в двух подсетях (помогает, если возникают проблемы с одной зоной доступности);
- Слушатели
Как говорилось ранее, для Classic Load Balancer это могут быть HTTP, HTTPS, TCP и SSL, для Network Load Balancer — TCP, UDP и TLS, для Application Load Balancer — HTTP и HTTPS.
Пример классического балансировщика нагрузки:
А вот в Application Load Balancer мы видим немного другой интерфейс и вообще другую логику:
Компоненты Load Balancer v2 (ALB и NLB)
Теперь давайте подробнее рассмотрим балансировщики версии 2 Application Load Balancer и Network Load Balancer. Эти балансиры имеют свои особенности компонентов.Например, появилось такое понятие, как Target Groups — экземпляры (и функции).
Благодаря этому компоненту у нас есть возможность указать, на какую из Целевых групп мы хотим направить трафик.
Говоря простым языком, в Target Groups мы указываем инстансы, куда будет приходить трафик.
Если в том же Classic Load Balancer вы просто сразу подключаете интенсивность к балансировщику, то в Application Load Balancer вы сначала:
- создать балансировщик нагрузки;
- создать Целевую группу;
- направлять через необходимые порты или правила балансировщика нагрузки в необходимые целевые группы;
- в целевых группах вы назначаете экземпляры.
Следующий компонент — Правила прослушивателя (правила маршрутизации).
Это относится только к Application Load Balancer. Если в Network Load Balancer вы просто создаете Listener, и он отправляет трафик в определенную Целевую группу, то в Application Load Balancer все веселее и удобнее .
Теперь скажем несколько слов о следующем компоненте – Эластичный IP (статические адреса для NLB).
Если правила маршрутизации прослушивателей влияли только на балансировщик нагрузки приложений, то Elastic IP влиял только на балансировщик сетевой нагрузки.
Давайте создадим балансировщик сетевой нагрузки:
И как раз в процессе создания мы увидим, что нам предоставлена возможность выбрать Elastic IP:
Elastic IP предоставляет единый IP-адрес, который со временем может быть связан с различными экземплярами EC2. Если экземпляр EC2 имеет эластичный IP-адрес и этот экземпляр прекращен или остановлен, вы можете немедленно связать новый экземпляр EC2 с эластичным IP-адресом.
Однако ваше текущее приложение не перестанет работать, поскольку приложения по-прежнему видят тот же IP-адрес, даже если реальный EC2 изменился.
Здесь другой вариант использования на тему, зачем нужен Elastic IP. Смотрите, мы видим 3 IP-адреса, но они не останутся здесь навсегда:
Amazon меняет их со временем, может быть, каждые 60 секунд (но на практике, конечно, реже).
Это означает, что IP-адреса могут меняться.
А в случае с Network Load Balancer вы можете просто привязать IP-адрес и указать его в своих правилах, политиках и т. д.
Делать выводы
ELB обеспечивает автоматическое распределение входящего трафика по нескольким целям (контейнерам, инстансам Amazon EC2, IP-адресам и функциям Lambda).ELB способен распределять трафик с различной нагрузкой как внутри одной зоны доступности, так и по нескольким зонам доступности.
Пользователь может выбрать один из трёх типов балансировщиков, обеспечивающих высокую доступность, автомасштабирование и хорошую защиту.
Все это важно для обеспечения отказоустойчивости ваших приложений.
Основные преимущества:
- высокая доступность .
Соглашение об обслуживании предполагает доступность балансировщика нагрузки на уровне 99,99%.
Например, наличие нескольких зон доступности гарантирует, что трафик обрабатывается только исправными объектами.
Фактически вы можете балансировать нагрузку по всему региону, перенаправляя трафик на работоспособные цели в разных зонах доступности;
- безопасность .
ELB работает с Amazon VPC, обеспечивая различные возможности безопасности — интегрированное управление сертификатами, аутентификацию пользователей и расшифровку SSL/TLS. Все вместе обеспечивает централизованное и гибкое управление настройками TLS;
- эластичность .
ELB может обрабатывать внезапные изменения сетевого трафика.
А глубокая интеграция с Auto Scaling дает приложению достаточно ресурсов при изменении нагрузки, не требуя ручного вмешательства;
- гибкость .
Вы можете использовать IP-адреса для маршрутизации запросов к целям ваших приложений.
Это обеспечивает гибкость при виртуализации целевых приложений и дает возможность размещать несколько приложений в одном экземпляре.
Поскольку приложения могут использовать один сетевой порт и иметь отдельные группы безопасности, связь между приложениями упрощается, когда мы имеем, скажем, архитектуру на основе микросервисов;
- мониторинг и аудит .
Вы можете отслеживать приложения в режиме реального времени с помощью функций Amazon CloudWatch. Речь идет о метриках, журналах, отслеживании запросов.
Проще говоря, вы сможете довольно точно выявлять проблемы и узкие места в производительности;
- гибридная балансировка нагрузки .
Возможность балансировать нагрузку между локальными ресурсами и AWS с помощью одного и того же балансировщика нагрузки упрощает миграцию или расширение локальных приложений в облако.
Обработка сбоев также упрощается с использованием облака.
-
Настройка Безопасности Свойств Корзины
19 Oct, 24 -
Не Все Люди Умеют Писать Код
19 Oct, 24 -
Хватит Терпеть Жару В Квартирах
19 Oct, 24 -
Avaya Ip Office Для Чайников
19 Oct, 24 -
Войти Или Написать По Электронной Почте
19 Oct, 24 -
Новый Дудл – Изобретение Штрих-Кода
19 Oct, 24