Я надеюсь, что все соблюдают меры безопасности и остаются дома, чтобы быть здоровыми. Прошедшее время и настоящее долгое время оставались незнакомыми, заставляя всех нас искать способы сосредоточиться на различных областях.

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

Помогая разрабатывать высокопроизводительную инфраструктуру и услуги в DLT Labs ™, я многое узнал о роли балансировщиков нагрузки, делая их масштабируемыми.

Один из облачных провайдеров, с которым мы работаем, - это Amazon Web Services, и сегодня я подумал, что немного расскажу о том, что они называют Application Load Balancer (ALB ), и что нужно для его настройки.

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

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

#Эта проблема

Перед тем, как погрузиться в решение, приведу контекст:

Например, предположим, что существует три домена: «testprac1.example.com», «testprac2.example.com» и «testprac3.example.com. », и все эти домены необходимы для обслуживания запросов HTTP / HTTPS.

Запросы любого характера - HTTP или HTTPS для каждого из указанных выше доменов - должны быть включены в один и тот же запрос, т. Е. Запрос к «testprac2.example.com» должен быть перенаправлен на «testprac1. example.com ». Аналогичным образом, запрос к «testprac3.example.com» должен быть перенаправлен на «testprac1.example.com».

Если вы размещаете статические данные, На помощь придут Amazon S3 и Amazon Route53, или вы можете создать несколько доменов для каждой обслуживаемой записи.

Это не самое простое решение, потому что это не то, что мы называем подходящим решением!

Несомненно, я тоже чувствовал то же самое и в конце концов нашел жемчужину источника. Все, что я нашел, я собираюсь изложить для вас в следующем решении.

Решение

Здесь мы собираемся использовать «балансировщик нагрузки уровня 7». Уровень 7 - это термин для уровня приложения, на котором происходит взаимодействие человека с компьютером, из широко используемой модели компьютерных систем OSI.

Это позволит нам диктовать набор правил. Эти правила могут заставить его либо перенаправить, либо перенаправить входящий запрос (-ы) в соответствующий пункт (-ы), используя форму механизма сопоставления.

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

›› Поиск опции ALB в AWS

  • Чтобы начать подготовку балансировщика нагрузки приложения, мы просмотрим сервисы на консоли AWS и выбираем EC2.

  • В EC2 с помощью панели навигации служб найдите Балансировка нагрузки и выберите Балансировщики нагрузки.

  • Щелкните Create Load Balancer, как показано на рисунке, после чего откроется отрывок с несколькими шагами для описания и создания Load Balancer.

  • Выберите здесь Application Load Balancer.

Примечание. Для простоты выполнения дальнейшие подробности настройки, конфигурации и т. Д. Были описаны в следующем наборе шагов.

›› Создание балансировщика нагрузки приложений

1. Для создания балансировщика нагрузки приложения требуется некоторая базовая информация.

  1. LB Имя
  2. Выход в Интернет / внутренний *
  3. Тип адреса IPv4

* Примечание: для схемы с выходом в Интернет будут использоваться общедоступные подсети, а для внутренней LB будут использоваться частные подсети.

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

* Примечание: для схемы с выходом в Интернет будут использоваться общедоступные подсети, а для внутренней LB будут использоваться частные подсети.

Нажмите Далее на консоли.

2. Выберите сертификат и соответствующую политику безопасности.

Нажмите Далее на консоли.

3. Назначьте группу безопасности.

Группа безопасности - это набор правил брандмауэра, которые контролируют трафик к вашему балансировщику нагрузки. Вы можете добавить правила, позволяющие определенному трафику достигать вашего балансировщика нагрузки. Во-первых, вы должны решить, создавать ли новую группу безопасности или найти существующую.

Нажмите Далее на консоли.

4. Выберите оптимальные настройки проверки работоспособности также для вашей цели.

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

Целевые группы используют добавленные порты и протокол в соответствующем VPC с указанным экземпляром.

Нажмите Далее на консоли.

5. Зарегистрируйте целевой экземпляр.

Целевой экземпляр регистрируется здесь с использованием идентификатора экземпляра. Нам нужно будет убедиться, что экземпляр активен, чтобы зарегистрировать его.

Нажмите Далее на консоли.

6. Проверьте свои данные.

В окне обзора проверьте порты, политику безопасности и схему, чтобы убедиться, что данные верны.

Нажмите "Создать".

Мы создали балансировщик нагрузки с учетом предпринятых шагов, Superb!

›› Точная настройка нашего балансировщика нагрузки для обработки нескольких перенаправлений домена

Мы почти у цели. Теперь это часть перенаправления, в которой мы будем использовать правила для пересылки / перенаправления запросов. Вот почему мы создали ALB, так что давайте готовиться!

* Примечание. Предполагая, что вы выбрали протокол HTTP при создании ALB, шаги будут включать прослушиватель HTTP.

1. Настройка слушателя

Сначала перейдите к созданному ALB, затем щелкните вкладку Listeners:

Табличный формат слушателей содержит детали в нескольких столбцах. Здесь вы увидите столбец «Правила».

2. Установите правила для HTTP-прослушивателя.

Для прослушивателя HTTP щелкните Просмотр / изменение правил. Первоначально это должно выглядеть так:

Обратите внимание: правила используют конструкцию IF-THEN, которая соответствует условиям-действиям.

Теперь приступим к добавлению условий и действий.

3. Настройте прослушиватель, HTTP, просмотр / редактирование и вставку правил.

Перейдите к кнопке «Добавить правило» и нажмите «Вставить правило».

В столбце IF щелкните Добавить условие, затем выберите Заголовок хоста. Вы должны увидеть это:

Установите для заголовка Host значение «testprac2.example.com» и щелкните синюю галочку.

В столбце ЕСЛИ снова щелкните Добавить условие, затем выберите Путь. S и путь к "*", например:

Примечание. Вы можете настроить путь в соответствии со сценарием использования.

Теперь для столбца Действие выберите Перенаправить на.

Укажите здесь свой выбор для протокола и номера порта. В раскрывающемся меню выберите "Пользовательский хост, путь, запрос (необязательно)" и укажите новый домен и путь. как показано ниже с кодом 301-постоянно перемещено.

Когда все необходимые детали будут уложены, он должен выглядеть так:

Чтобы лучше понять, что мы только что сделали, на этом последнем шаге HTTP-запрос «testprac2.example.com» перенаправляется на «testprac1.example.com» в форме HTTPS-запроса.

Для других доменов мы можем повторить шаги пункта 3 с соответствующими узлами, заголовками и т. Д.

В итоге это должно выглядеть так:

Пока что перенаправление выполнено для HTTP-порта 80. Точно так же вы можете добавлять прослушиватели, используя HTTP / HTTPS. Все, что вам нужно сделать, это повторить шаги с 1 по 3 в этом разделе с соответствующими деталями.

Хорошая работа! Мы завершили настройку Application Load Balancer, и ваш мотив был достигнут в соответствии с вариантом использования - обработкой нескольких перенаправлений домена. Вы можете дополнительно настроить ALB по своему вкусу и требованиям.

Продолжайте учиться и делиться!

Amazon, Amazon Web Services, AWS, Amazon S3, Amazon Route 53 и Amazon EC2 являются товарными знаками Amazon.com, Inc. или ее дочерних компаний в США и / или других странах. DLT Labs является товарным знаком DLT Global, Inc.

Автор - Аман Гупта, DLT Labs

Об авторе: Аман входит в состав основной группы DevOps & Infrastructure в DLT Labs и имеет опыт работы с AWS, C ++, DS-A и инструментами с открытым исходным кодом. Он любит играть в бадминтон и любит электронные игры.

Ссылки

Https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html

Https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html