Перейти к содержанию

Настройка балансировки входящих сообщений в GCP

Теперь, когда у вас есть настроенная группа автоматического масштабирования нод Вебмониторэкс, необходимо создать и настроить балансировщик нагрузки (Load Balancer), который будет распределять входящий трафик по нескольким нодам Вебмониторэкс в группе масштабирования.

Вы можете настроить несколько типов балансировщиков нагрузки на Google Cloud Platform:

  • HTTP(S) Load Balancer

  • TCP Load Balancer

  • UDP Load Balancer

Сравнение балансировщиков нагрузки

Подробная информация о различиях балансировщиков доступна здесь.

В этом документе в качестве примера будут продемонстрированы настройка и использование TCP Load Balancer, который занимается балансировкой на транспортном уровне сетевой модели OSI\ISO.

Чтобы создать TCP‑балансировщик нагрузки для созданной вами группы масштабирования, выполните следующие действия:

  1. Перейдите на страницу Load balancing в разделе Network services навигационного меню и нажмите на кнопку Create load balancer.

  2. Нажмите на кнопку Start configuration на карточке TCP load balancing.

  3. В появившемся окне выберите необходимые настройки:

    1. В пункте Internet facing or internal only выберите вариант From Internet to my VMs для того, чтобы балансировщик регулировал входящие запросы от клиентов к вашему серверу.

    2. В пункте Multiple regions or single region выберите вариант Single region only.

      Балансировка трафика для ресурсов в разных регионах

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

      В случае необходимости балансировки трафика для нескольких ресурсов, расположенных в разных регионах, выберите вариант Multiple regions (or not sure yet).

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

    Нажмите на кнопку Continue.

  4. Введите имя создаваемого балансировщика нагрузки в поле Name.

  5. Нажмите на кнопку Backend configuration, чтобы настроить использование созданной ранее группы инстансов (далее — группа инстансов, если не указано иное) в качестве бэкенда, на который будут распределяться входящие запросы балансировщиком нагрузки.

  6. Заполните появившуюся форму необходимыми данными:

    1. Выберите регион, в котором расположена группа инстансов из выпадающего списка Region.

    2. В пункте Backends выберите вкладку Select existing instance groups и выберите имя группы инстансов из выпадающего списка Add an instance group.

    3. При необходимости выберите резервный ресурс, выбрав пункт Create a backup pool из выпадающего списка Backup Pool.

      Использование резервного ресурса

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

      В рамках текущего документа резервный ресурс настроен не будет.

    4. При необходимости настройте проверку доступности инстансов в группе, выбрав пункт Create a health check в выпадающем списке Health check. Подробная информация о настройке проверки доступности виртуальной машины доступна по ссылке.

      Проверка доступности инстансов в группе

      В рамках текущего документа проверка доступности настроена не будет. Поэтому, если вы следуете инструкциям, приведенным в документе, выберите пункт No health check в выпадающем списке Health check.

    5. При необходимости настройте метод выбора инстанса для обработки запросов от клиентов, выбрав соответствующий пункт в выпадающем списке Session affinity. Подробная информация о настройке метода выбора инстанса для обработки запросов доступна по ссылке.

      Настройка метода выбора инстанса

      В рамках текущего документа в выпадающем списке Session affinity метод выбора инстанса настроен не будет. Поэтому, если вы следуете инструкциям, приведенным в документе, выберите пункт None в выпадающем списке Session affinity.

      Настройка бэкенда

  7. Нажмите на кнопку Frontend configuration, чтобы задать IP‑адреса и порты, на которые клиенты будут отправлять запросы.

  8. Заполните форму создания новых IP‑адресов и портов для фронтенда необходимыми данными:

    1. При необходимости введите имя новой пары IP‑адреса и порта в поле Name.

    2. Выберите необходимый уровень сетевого сервиса в пункте Network Service Tier. Подробная информация об уровнях сетевого сервиса доступна по ссылке.

    3. Выберите необходимый IP‑адрес, на который балансировщик нагрузки будет принимать запросы от клиентов, из выпадающего списка IP:

      1. Выберите пункт Ephemeral, чтобы балансировщику назначался новый IP‑адрес при каждом старте виртуальной машины.

      2. Выберите пункт Create IP address, чтобы сгенерировать статический IP‑адрес для вашего балансировщика.

      В появившейся форме введите имя нового IP‑адреса в поле Name и нажмите на кнопку Reserve.

    4. Введите необходимый порт, на который балансировщик нагрузки будет принимать запросы от клиентов, в поле Port.

      Выбор порта

      В этом документе указан порт 80 для приема запросов по протоколу HTTP.

    Форма создания новых IP‑адресов и портов для фронтенда

    Нажмите на кнопку Done, чтобы создать настроенную пару IP‑адреса и порта.

    Необходимые порты фронтенда

    В этом документе балансировщик настроен на прием запросов по протоколу HTTP. Если ваша группа инстансов принимает запросы по протоколу HTTPS, создайте еще одну пару IP‑адреса и порта и укажите в ней порт 443.

  9. Нажмите на кнопку Create, чтобы создать балансировщик нагрузки.

    Создание балансировщика нагрузки TCP

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

Так как созданный TCP‑балансировщик использует Backend service, который работает с бэкендом, созданным для вашей группы масштабирования, никаких изменений в настройки группы инстансов для подключения к ней балансировщика вносить не требуется.

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

Вы можете проверить работоспособность развернутых нод следующим образом:

  1. Убедитесь, что ваше приложение доступно через балансировщик нагрузки и ноды Вебмониторэкс, перейдя по IP‑адресу балансировщика или обратившись к его доменному имени в браузере.

  2. Убедитесь, что сервисы Вебмониторэкс защищают ваше приложение, выполнив тестовую атаку.

Вкладка **Events** в Консоли управления Вебмониторэкс