Расширенная балансировка нагрузки и кластеризация в веб-сервисах Amazon

СООБЩЕНИЕ ОТ Zevenet | 24 июля 2020 г.

Введение

В следующей статье описывается, как настроить расширенные службы балансировки нагрузки с помощью ZEVENET Load Balancer для обеспечения высокой доступности в Инфраструктура Amazon Web Services EC2, Мы опишем процедуру для настройки ZEVENET кластер и настроить профиль балансировки нагрузки TCP для служб HTTP балансировки нагрузки с 3 веб-серверами.

AWS и ZEVENET Инфраструктура

Следующая диаграмма описывает архитектуру, которую мы хотим реализовать для балансировки веб-нагрузки с помощью ZEVENET Application Delivery Controller в AWS.

Необходимо развернуть два контроллера доставки приложений ZEVENET, этот шаблон доступен на торговой площадке Amazon Web Services, и каждый контроллер доставки приложений ZEVENET настроен на тот же VPC, что и серверные веб-серверы, как показано на рисунке выше с подсетью. 17.32.16.0./20.

Каждый экземпляр ZEVENET ADC настроен с одним интерфейсом eth0и каждый экземпляр назначается одному Эластичный IPтакже один дополнительный эластичный IP назначается одному дополнительному IP через eth0 в ZLB1-прод экземпляр, который будет использоваться для балансировки нагрузки, как описано ниже:

ZLB1-прод назначен на 172.31.20.89 в eth0 этот экземпляр будет доступен напрямую одному Эластичный IP 34.225.30.206
ZLB2-прод назначен на 172.31.26.237 в eth0 этот экземпляр будет доступен напрямую одному Эластичный IP 54.161.240.226

Один дополнительный IP назначен ZLB1-прод и настроил в балансировщике нагрузки с именем eth0: VIP1 и IP 172.31.26.47этот IP-адрес используется для настройки здесь одной службы балансировки нагрузки и участия в служба кластеровтаким образом, этот IP будет работать только в одном из экземпляров ZEVENET одновременно, который управляет ACTIVE роль в кластере. Этот внутренний IP-адрес назначается одному Elastic IP-адресу, к которому клиенты обращаются для подключения к опубликованному реальному веб-сервису.

в заключение бэкенд01, бэкенд02 и бэкенд03 являются экземплярами EC2 с веб-серверами на основе Linux, эти экземпляры являются частью службы с балансировкой нагрузки, где клиент подключается по запросу http://54.144.190.17/ .

Развертывание двух экземпляров ZEVENET на AWS Marketplace

Позволяет развернуть два балансировщика нагрузки ZEVENET и настроить их, как описано ранее.

Перейдите в раздел экземпляров EC2 и нажмите Запустить экземпляр.

1. Найдите требуемый ZEVENET Load Balancer Enterprise Edition AMI. это AMI основан на лицензии BYOL модель. Этап оценки является бесплатным и помощь в течение одного месяца включена, по истечении этого периода времени для работы необходима определенная лицензия.

2. Выберите Тип экземпляра, Выберите здесь необходимый экземпляр на основе ресурсов, которые вы хотите загрузить баланс. Один т2.маленький Экземпляр хорош, чтобы начать работать с L4 профили, но если вы хотите использовать HTTP профили тогда мы бы рекомендовали хотя бы t2.средний пример. Но, t2.micro Экземпляр достаточно хорош для тестирования.

3. Настроить Детали экземпляра, Выберите здесь VPC, где запускаются новые экземпляры ZEVENET, в этом примере конфигурации мы представим экземпляры ZEVENET EC2 в том же VPC, что и уже настроенные реальные веб-серверы.

4. Добавить хранилище, По умолчанию для экземпляра ZEVENET EC2 требуется не менее 12 ГБ дискового пространства. Если вы хотите активировать журналы по умолчанию, мы рекомендуем увеличить этот размер как минимум до 20 ГБ. ZEVENET не требует доступа к диску, только для сохранения журналов, поэтому Тип тома для общих целей это хороший выбор.

5. Добавить теги, Настройте здесь некоторые теги описания, если это необходимо.

6. Настроить Группа безопасности, По умолчанию ZEVENET использует TCP-порт 444 для управления веб-интерфейсом HTTPS и TCP-порт 22 в SSH для управления из командной строки и кластеризации. Кроме того, каждый Виртуальный порт используемые в балансировщике нагрузки виртуальные службы должны будут быть включены в вашу группу безопасности. Мы настроили группу безопасности, которая используется для этих экземпляров ZEVENET EC2 в менее строгом режиме, следующим образом:

TYPE = All traffic
Protocol = ALL 
Port Range = All
Source = 0.0.0.0/0
Description = Allow all from all to all

Эта группа безопасности создана для целей тестирования, вы можете заблокировать все порты и разрешить только использование для балансировки нагрузки и управления.

Как только помощник по конфигурации вернется в список экземпляров EC2, новое устройство начнет развертываться, и Инициирование состояние будет показано. Затем настройте теперь описательное имя в поле Имя и фамилияв нашем случае наши развернутые балансировщики нагрузки в EC2 называются ZLB1-прод и ZLB2-прод.

Настройка сети для экземпляров ZEVENET EC2

После развертывания виртуальных устройств ZEVENET и Состояния экземпляра показывают Бег В режиме мы можем приступить к настройке сети.

Нажмите правую кнопку над ZLB1-прод прибор и выберите Сеть> Управление IP-адресами, В Управление IP-адресами нажмите всплывающее окно в Назначить новый IP и нажмите кнопку Да, обновитьсистема назначит новый IP для eth0 в том же ВПК. Запомните этот новый IP, в нашем примере этот новый IP будет 172.31.26.47, Системе назначен новый IP-адрес, который будет использоваться в целях балансировки нагрузки в будущей службе кластеризации.

Перейти в раздел Эластичные IP и назначить каждому экземпляру ZEVENET новый Эластичный IP, Они будут использоваться для целей управления, а не для распределения нагрузки.

В то же самое Эластичный IP раздел, назначьте новый IP для ZLB1-прод, но в этом случае выберите Частный IP адрес 172.31.26.47, После этой конфигурации ZLB1-прод будет доступен через web и ssh с IP 34.225.30.206, Но ZLB2-прод доступен через те же сервисы с IP 54.161.240.226 и Эластичный IP 54.144.190.17 назначен на IP 172.31.26.47.

Включение экземпляров ZEVENET EC2 с временными лицензиями

После настройки Elastic IP-адресов виртуальные балансировщики нагрузки будут доступны следующим образом:

ZLB1-prod будет доступен через https://34.225.30.206:444 пользователя root и пароль экземпляра id.
ZLB1-prod будет доступен через ssh в IP 34.225.30.226 с правами администратора и файлом личного сертификата, это настраивается во время развертывания EC2.
ZLB2-prod будет доступен через https://54.161.240.226:444 пользователя root и пароль экземпляра id.
ZLB2-prod будет доступен через ssh в IP 54.161.240.226 с правами администратора и файлом личного сертификата, это настраивается во время развертывания EC2.

Если вы решили изменить имя хоста, прежде чем продолжить, в таком случае перезагрузите экземпляр EC2, чтобы изменения вступили в силу.

Как только доступ к веб-интерфейсу будет выполнен успешно, вы увидите два важных значения: имя хоста и ключ сертификата. Обе эти данные уникальны для каждого балансировщика нагрузки и связаны с лицензией на активацию. Используйте эту информацию в следующем URL-адресе, как описано ниже: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

После заполнения формы система автоматически отправляет лицензию на указанный адрес электронной почты. Загрузите полученную лицензию активации PEM через веб-интерфейс пользователя в каждом устройстве балансировки нагрузки, как только это будет сделано, веб-интерфейс разблокирован и все функции полностью включены и работают.

Выполните одну и ту же процедуру активации в обоих узлах ZLB1-prod и ZLB2-prod.

Настройка виртуального IP для балансировки нагрузки

В предыдущем пункте мы уже присвоили дополнительный IP для eth0 172.31.26.47 в экземпляре ZLB1-pro, и этот IP был назначен одному Elastic IP 54.144.190.17сейчас он ожидает выполнения этой конфигурации в балансировщике нагрузки ZBL1-pro.

Перейдите к балансировщику нагрузки ZLB1-pro через веб-интерфейс, используя его Elastic IP https://34.225.30.206:444, как только вы вошли в систему, пожалуйста, перейдите в меню навигации Сеть> Виртуальные интерфейсы> Создать виртуальный интерфейси выполните следующую настройку:

Parent Interface = eth0 172.31.26.47

* Поскольку экземпляры EC2 ничего не знают о Elastic IP, нам необходимо настроить здесь физический IP-адрес экземпляра EC2, связанный с общедоступным Elastic IP, используемым для целей балансировки нагрузки 54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

Нажмите Создавай кнопка, чтобы применить конфигурацию.

Теперь новый IP 172.31.26.47 с именем eth0: VIP1 был настроен в ZLB1-pro EC2 ZEVENET Load Balancer и может пропинговать из любого экземпляра EC2 в этом VPC.

Настройка службы кластеров ZEVENET в Amazon Web Services

Кластер балансировки нагрузки ZEVENET работает в Stateful Active-пассивный режим означает, что ресурсы кластера настроены на обоих узлах, но доступны только в ACTIVE узел. Когда такой узел выходит из строя и эта роль запускается в другом члене, к ресурсам кластера необходимо получить доступ снова. Поскольку виртуальные IP-адреса также являются кластерными ресурсами, Amazon Web Service необходимо каким-то образом объявить, что виртуальный IP-адрес настроен для балансировки нагрузки. 172.31.26.47 теперь будет работать через ZLB2-prod.

Для этого служба ZEVENET Cluster использует клиента AWS, который должен быть настроен с разрешениями в модуле EC2 для управления интерфейсами, поэтому перед запуском службы ZEVENET Cluster нам необходимо подготовить ее. Итак, давайте настроим КЛЮЧ AWS в вашей учетной записи с правами на управление IP-адресами в EC2 для использования в интерфейсе командной строки AWS.

Перейти к консоли Amazon https://console.aws.amazon.com/iam/ , затем в меню навигации выберите Информация о пользователе, Нажмите на кнопку Добавить пользователя.

Configure a descriptive User name = aws-for-zlb

In Выберите тип доступа AWS укажите Программный доступ и нажмите кнопку Далее: разрешения, Теперь в Установить разрешения раздел нажмите в Создать группу а затем в новом окне заполните поле Имя группы с описательным именем, например, AmazonEC2и, наконец, в поле Политики фильтра найдите и выберите политику с именем AmazonEC2Полный доступ который дает разрешения на изменение назначенных IP-адресов между экземплярами EC2 среди других.

Нажмите в Далее: теги и Далее: Обзор, Наконец нажмите в Создать пользователя, последнее окно покажет вам Идентификатор ключа доступа и Секретный ключ доступа для этого пользователя, пожалуйста, сохраните их для будущего использования.

Теперь мы готовы к настройке службы кластера ZEVENET, поэтому перейдите на веб-панель в ZLB1-pro через назначенный общедоступный IP-адрес https://34.225.30.206:444, раздел Система> Кластер и заполните форму, следуя примеру:

Учетные данные AWS: Ключ доступа и Секретный ключ - это уже созданные значения в предыдущих строках. Регион, выберите здесь регион, в котором развернут ваш контроллер доставки приложений ZEVENET.

Настроить кластер:

Локальный IP: выберите IP и NIC для eth0.
Удаленный IP: введите здесь IP eth0 в узле ZLB2-pro.
Пароль удаленного узла и Подтвердите пароль: введите здесь пароль root для ssh на другом узле, по умолчанию идентификатор экземпляра ZLB2-pro.

Нажмите на Порождать и подождите несколько секунд, пока узел, на котором вы запускаете конфигурацию, ACTIVE роль (ZLB1-про) и другой (ZLB2-про) собирается взять на себя Пассивная Роль.

На этом этапе кластер ZEVENET настроен в AWS и готов к работе, давайте настроим нашу первую кластерную службу с балансировкой нагрузки.

Настройка простой балансировки нагрузки L4 для веб-сервисов

Перейдите в LSLB> Фермы> Создать ферму со следующими параметрами.

Учтите, что используемый Виртуальный IP 172.31.26.47 настроен ли ранее виртуальный IP-адрес и является ли ресурс кластера доступным всегда из ACTIVE узел. Нажмите Создавай и продолжай.

Теперь в новом окне настройте Глобальный раздел как показано ниже:

И наконец, настройте раздел Услуги как описано:

Используйте Постоянство IP с тайм-аутом 60 секунд на тот случай, если вам нужно гарантировать, что один и тот же IP-адрес клиента будет подключен к одному и тому же бэкэнду в течение определенного периода времени. Настройте расширенные проверки работоспособности с FarmGuardian. Используйте check_tcp в качестве простой проверки работоспособности, чтобы убедиться, что бэкэнд-порт TCP 80 открыт в каждом бэкэнде Затем добавьте внутренние IP-адреса внутренних серверов и порт, на котором работают настоящие веб-службы.

Теперь проверьте соединение с Эластичный IP http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0: VIP1 и перенаправлен на один из доступных бэкэндов.

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

Добавление новых интерфейсов в Load Balancer

В целях балансировки или для чего бы то ни было, можно настроить дополнительные интерфейсы для балансировщика нагрузки. Для этого достаточно выполнить шаги, описанные AWS, чтобы добавить новые интерфейсы в экземпляр EC2. Пожалуйста, ознакомьтесь со статьей, которую предоставляет AWS, чтобы лучше понять лучшие практики для этого. https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html. При добавлении новых интерфейсов в экземпляр EC2 ZEVENET автоматически обнаружит эти новые интерфейсы, поэтому теперь вы можете использовать его для настройки по своему усмотрению.

 

Наслаждайтесь расширенной балансировкой нагрузки и кластеризацией в AWS с ZEVENET!

Поделись:

Документация в соответствии с условиями GNU Free Documentation License.

Была ли эта статья полезна?

Статьи по теме