Skip to content

Load Balancer

Введение

Application Load Balancer (ALB) - сетевой сервис, который распределяет входящий публичный веб-трафик между виртуальными серверами для обеспечения отказоустойчивости веб-сайтов и приложений.

Как это работает:
Балансировщик нагрузки (ALB) позволяет равномерно направлять веб-трафик или трафик TLS на виртуальные машины, относящиеся к одному Compute-сервису, на основе доменного имени в протоколе HTTP или расширения Server Name Indication (SNI) протокола TLS.
При резком изменении объема входящего трафика балансировщик равномерно распределяет весь объем запросов между ресурсами по алгоритму Round-robin. ALB обеспечивает возможность автоматического обновления сертификатов LetsEncrypt и возможность загрузки собственных сертификатов. Перенаправление через ALB не требует открытия портов назначения виртуальных машин в Network Security Group во вкладке Firewall. ALB предоставляет доступ на основном публичном адресе аккаунта только по портам 80 и 443. Данные порты могут быть переназначены в приложении Port-Forwarding.

Функция Проверка работоспособности(HealthCheck) позволяет исключить неработоспособные серверы из ротации балансировки нагрузки. ALB отслеживает состояние виртуальных машин, отвечающих за маршрутизацию веб-трафика, и считает их работоспособными, если они возвращают коды состояния в диапазоне 2XX–3XX на запросы проверки (выполняемые через заданные интервалы). Если виртуальная машина оказывается недоступной (выключена или неисправна), HealthCheck гарантирует, что веб-трафик не будет направляться на эту машину.

Администратор

Управление ALB доступно только для пользователей с ролью Администратора аккаунта.

Вкладка Веб-маршруты содержит список маршрутов веб-трафика ALB.
Пользователь может создавать, редактировать и удалять маршруты.

Создание и настройка маршрута

Подготовка

Перед созданием нового маршрута пользователь должен настроить запись DNS CNAME, указывающую на общедоступное имя хоста ALB, чтобы разрешить доступ интернет-трафику через ALB к виртуальной машине, а затем подготовить виртуальную машину.

Примечание

Подразумеваем подготовленную виртуальную машину с веб-сервером на порту 80.

Создание маршрута

  1. На вкладке Веб-маршруты нажмите Создать маршрут.
  2. В появившемся окне введите:

    • Название маршрута в рамках проекта;
    • Имя сервера – публичное имя хоста для маршрута;
    • Путь позволяет сопоставлять запросы на основе значения URL-пути (опционально);
    • Целевой порт - порт назначения трафика (опционально);
    • Балансировщик - экземпляр Load Balancer, который обслуживает этот маршрут.

  3. В Целевых сервисах выберите Сервис(ы)для балансировки нагрузки (каждый сервис имеет вес, определяющий объем получаемого трафика).

  4. Выберите тип IP-интерфейса: IPv4/IPv6.
  5. Можно включить Проверку работоспособности (HealthCheck) маршрута.
    Система автоматически проверяет состояние виртуальных машин, связанных с маршрутом. Если хотя бы одна из них работает, трафик направляется на доступные машины.
    Для проверки работоспособности маршрута введите:

    • Путь- URL-адрес сервера для конечной точки проверки работоспособности (опционально);
    • Схема URL-адреса (http/https) сервера для конечной точки проверки работоспособности (опционально);
    • Имя сервера - имя хоста в заголовке запроса (Host) на проверку работоспособности (опционально);
    • Порт URL-адреса сервера для конечной точки проверки работоспособности (опционально);
    • Интервал- частота вызовов проверки работоспособности;
    • Тайм-аут - продолжительность, в течении которой ALB будет ждать запроса на проверку работоспособности, прежде чем считать сервер неработоспособным;
    • Пользовательские заголовки, которые будут отправляться на конечную точку проверки работоспособности (опционально);
    • Параметр Перенаправление определяет, должны ли выполняться перенаправления во время проверок работоспособности.

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

    При выборе Безопасного маршрута укажите тип терминации TLS:

    • edge
      При edge-терминации, терминация зашифрованного TLS-трафика происходит на ALB, далее уже расшифрованный трафик проксируется на внутренние IP-адреса виртуальных машин на порт HTTP (80/tcp). Для терминации TLS-трафика используется загруженный сертификат, если он соответствует полю Имя сервера веб-маршрута, иначе происходит попытка выпуска сертификата LetsEncrypt. Если выпуск LetsEncrypt сертификата не удался по какой-либо причине (например, DNS-запись не настроена на публичный хостнейм ALB, закончился лимит на запросы), то будет использован самоподписанный сертификат по-умолчанию.
    • passthrough
      При passthrough-терминации зашифрованный трафик отправляется прямо в пункт назначения без расшифровки трафика. В этом случае балансировщик обеспечивает только распределение трафика между сервисами в соответствии с весами. В настоящее время это единственный метод, поддерживающий авторизацию по клиентским сертификатам (также известный как двусторонняя аутентификация).
    • re-encrypt
      Это вариант edge-терминации, когда TLS-протокол завершается ALB сертификатом, а затем повторно шифрует свое соединение с конечной точкой на порту HTTPS (443/tcp), которая может иметь другой сертификат. Поэтому полный путь соединения шифруется даже во внутренней сети. ALB использует проверки работоспособности для определения доступности хоста.

    Примечание

    В режиме re-encrypt ALB на данный момент не проверяет достоверность сертификата хоста назначения, таким образом можно использовать самоподписанные сертификаты.

  7. Выберите политику для трафика по небезопасным схемам:

    • allow - позволяет проходить HTTP-трафику;
    • redirect - автоматически перенаправляет клиента с HTTP на HTTPS (используется код HTTP 301).
  8. Выберите один из TLS Сертификатов, ассоциированных с данным маршрутом.

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

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

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

Сертификаты

Во вкладке Сертификаты можно добавить сертификаты TLS для edge и повторного шифрования терминации. Сертификаты должны быть в формате PEM. Пользователь имеет возможность добавлять, редактировать и удалять сертификаты.

Добавление сертификатов

Пользователь может загружать сертификаты, перетаскивая их, выбирая их или вставляя из буфера обмена.

  1. На вкладке Сертификаты нажмите Добавить;
  2. Введите Название для сертификатов;
  3. Нажмите Выбрать и добавьте необходимые сертификаты (или перетащите и вставьте из буфера обмена);
  4. Нажмите Добавить.

Нажмите на добавленный сертификат для просмотра сведений. Редактировать и удалять сертификаты можно двумя способами. Сделать это можно с помощью бокового меню или нажав соответствующие кнопки в Деталях.

Примечание

При использовании собственных сертификатов, для корректной работы в систему должен быть загружен только один сертификат, относящийся к доменному имени. Например, если у загруженного сертификата истёк срок действия - его нужно удалить и загрузить актуальный.

Роли и права

Действие Member Admin Billing Operator Owner
Веб-маршруты
Просмотр веб-маршрутов only own
Создание веб-маршрута
Редактирование веб-маршрута only own
Удаление веб-маршрута only own
Сертификаты
Просмотр сертификатов only own
Создание сертификата
Редактирование сертификата only own
Удаление сертификата only own