Настройка балансировки входящих сообщений в GCP¶
Теперь, когда у вас есть настроенная группа автоматического масштабирования нод Вебмониторэкс, необходимо создать и настроить балансировщик нагрузки (Load Balancer), который будет распределять входящий трафик по нескольким нодам Вебмониторэкс в группе масштабирования.
Вы можете настроить несколько типов балансировщиков нагрузки на Google Cloud Platform:
-
HTTP(S) Load Balancer
-
TCP Load Balancer
-
UDP Load Balancer
Сравнение балансировщиков нагрузки
Подробная информация о различиях балансировщиков доступна здесь.
В этом документе в качестве примера будут продемонстрированы настройка и использование TCP Load Balancer, который занимается балансировкой на транспортном уровне сетевой модели OSI\ISO.
Чтобы создать TCP‑балансировщик нагрузки для созданной вами группы масштабирования, выполните следующие действия:
-
Перейдите на страницу Load balancing в разделе Network services навигационного меню и нажмите на кнопку Create load balancer.
-
Нажмите на кнопку Start configuration на карточке TCP load balancing.
-
В появившемся окне выберите необходимые настройки:
-
В пункте Internet facing or internal only выберите вариант From Internet to my VMs для того, чтобы балансировщик регулировал входящие запросы от клиентов к вашему серверу.
-
В пункте Multiple regions or single region выберите вариант Single region only.
Балансировка трафика для ресурсов в разных регионах
В рамках этого документа будет настроена балансировка входящего трафика для одной группы инстансов, расположенных в одном регионе.
В случае необходимости балансировки трафика для нескольких ресурсов, расположенных в разных регионах, выберите вариант Multiple regions (or not sure yet).
Нажмите на кнопку Continue.
-
-
Введите имя создаваемого балансировщика нагрузки в поле Name.
-
Нажмите на кнопку Backend configuration, чтобы настроить использование созданной ранее группы инстансов (далее — группа инстансов, если не указано иное) в качестве бэкенда, на который будут распределяться входящие запросы балансировщиком нагрузки.
-
Заполните появившуюся форму необходимыми данными:
-
Выберите регион, в котором расположена группа инстансов из выпадающего списка Region.
-
В пункте Backends выберите вкладку Select existing instance groups и выберите имя группы инстансов из выпадающего списка Add an instance group.
-
При необходимости выберите резервный ресурс, выбрав пункт Create a backup pool из выпадающего списка Backup Pool.
Использование резервного ресурса
Резервный ресурс будет обрабатывать запросы в случае недоступности группы инстансов, выбранной в предыдущем пункте. Подробная информация о настройке резервного ресурса доступна по ссылке.
В рамках текущего документа резервный ресурс настроен не будет.
-
При необходимости настройте проверку доступности инстансов в группе, выбрав пункт Create a health check в выпадающем списке Health check. Подробная информация о настройке проверки доступности виртуальной машины доступна по ссылке.
Проверка доступности инстансов в группе
В рамках текущего документа проверка доступности настроена не будет. Поэтому, если вы следуете инструкциям, приведенным в документе, выберите пункт No health check в выпадающем списке Health check.
-
При необходимости настройте метод выбора инстанса для обработки запросов от клиентов, выбрав соответствующий пункт в выпадающем списке Session affinity. Подробная информация о настройке метода выбора инстанса для обработки запросов доступна по ссылке.
Настройка метода выбора инстанса
В рамках текущего документа в выпадающем списке Session affinity метод выбора инстанса настроен не будет. Поэтому, если вы следуете инструкциям, приведенным в документе, выберите пункт None в выпадающем списке Session affinity.
-
-
Нажмите на кнопку Frontend configuration, чтобы задать IP‑адреса и порты, на которые клиенты будут отправлять запросы.
-
Заполните форму создания новых IP‑адресов и портов для фронтенда необходимыми данными:
-
При необходимости введите имя новой пары IP‑адреса и порта в поле Name.
-
Выберите необходимый уровень сетевого сервиса в пункте Network Service Tier. Подробная информация об уровнях сетевого сервиса доступна по ссылке.
-
Выберите необходимый IP‑адрес, на который балансировщик нагрузки будет принимать запросы от клиентов, из выпадающего списка IP:
-
Выберите пункт Ephemeral, чтобы балансировщику назначался новый IP‑адрес при каждом старте виртуальной машины.
-
Выберите пункт Create IP address, чтобы сгенерировать статический IP‑адрес для вашего балансировщика.
В появившейся форме введите имя нового IP‑адреса в поле Name и нажмите на кнопку Reserve.
-
-
Введите необходимый порт, на который балансировщик нагрузки будет принимать запросы от клиентов, в поле Port.
Выбор порта
В этом документе указан порт
80
для приема запросов по протоколу HTTP.
Нажмите на кнопку Done, чтобы создать настроенную пару IP‑адреса и порта.
Необходимые порты фронтенда
В этом документе балансировщик настроен на прием запросов по протоколу HTTP. Если ваша группа инстансов принимает запросы по протоколу HTTPS, создайте еще одну пару IP‑адреса и порта и укажите в ней порт
443
. -
-
Нажмите на кнопку Create, чтобы создать балансировщик нагрузки.
Дождитесь инициализации созданного балансировщика и его соединения с созданной вами ранее группой масштабирования.
Так как созданный TCP‑балансировщик использует Backend service, который работает с бэкендом, созданным для вашей группы масштабирования, никаких изменений в настройки группы инстансов для подключения к ней балансировщика вносить не требуется.
Теперь вы сможете обрабатывать ваш входящий трафик к приложению с помощью динамически изменяемого набора нод Вебмониторэкс.
Вы можете проверить работоспособность развернутых нод следующим образом:
-
Убедитесь, что ваше приложение доступно через балансировщик нагрузки и ноды Вебмониторэкс, перейдя по IP‑адресу балансировщика или обратившись к его доменному имени в браузере.
-
Убедитесь, что сервисы Вебмониторэкс защищают ваше приложение, выполнив тестовую атаку.