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

Просмотр категорий

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

11 min read

Введение #

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

Инфраструктура AWS и Relianoid #

На следующей схеме представлена ​​архитектура, которую мы хотим реализовать с помощью Relianoid Application Delivery Controller в AWS.

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

Каждый экземпляр Relianoid 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 будет работать только в одном из экземпляров Relianoid одновременно, который управляет ДЕЛАТЬ роль в кластере. Этот внутренний IP-адрес назначается одному Elastic IP-адресу, к которому клиенты обращаются для подключения к опубликованному реальному веб-сервису.

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

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

Давайте развернем два балансировщика нагрузки Relianoid и настроим их, как описано ранее.

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

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

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

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

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

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

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

ТИП = Весь трафик Протокол = ВСЕ Диапазон портов = Все Источник = 0.0.0.0/0 Описание = Разрешить все от всех ко всем

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

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

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

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

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

Перейти в раздел Эластичные IP и назначить каждому экземпляру Relianoid новый Эластичный 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.

Включение экземпляров Relianoid 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.relianoid.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, как только вы вошли в систему, пожалуйста, перейдите в меню навигации Сеть> Виртуальные интерфейсы> Создать виртуальный интерфейси выполните следующую настройку:

Родительский интерфейс = eth0 172.31.26.47

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

Имя виртуального интерфейса = vip1
IP-адрес = 172.31.26.47

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

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

Настройка сервиса Relianoid Cluster в Amazon Web Services #

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

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

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

Настройте описательное имя пользователя = aws-for-zlb.

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

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

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

Учетные данные AWS: Access Key и Secret key — это уже сгенерированные значения в предыдущих строках. Регион, выберите здесь регион, где развернут ваш контроллер Relianoid Application Delivery.

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

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

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

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

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

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

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

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

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

Используйте Постоянство 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 и перенаправлен на один из доступных бэкэндов.

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

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

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

 

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

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs