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 проверяет, что происходит с виртуальными машинами, которые отвечают за созданный маршрут веб-трафика. В случае, если ВМ недоступна (выключена/сломана), то проверка работоспособности помогает не направлять веб-трафик на данную ВМ.
Примечание
Управление ALB доступно только для пользователей с ролью Администратора аккаунта.
Вкладка Веб-маршруты
содержит список маршрутов веб-трафика ALB.
Пользователь может создавать, редактировать, просматривать и удалять маршруты.
Создание и настройка маршрута¶
Подготовка¶
Перед созданием нового маршрута пользователь должен настроить запись DNS CNAME, указывающую на общедоступное имя хоста ALB, чтобы разрешить интернет-трафику доступ к экземпляру ALB, а затем подготовить виртуальную машину.
Примечание
Подразумеваем подготовленную виртуальную машину с веб-сервером на порту 80.
Создание маршрута¶
- На вкладке
Веб-маршруты
нажмитеСоздать маршрут
. -
В появившемся окне введите:
Имя
- название маршрута в рамках проекта;Имя сервера
– публичное имя хоста для маршрута;Путь
, который маршрутизатор отслеживает для маршрутизации трафика к сервису (опционально);Целевой порт
для трафика (опционально).
-
В
Целевых сервисах
выберитеСервис(ы)
для балансировки нагрузки (каждый сервис имеет вес, определяющий объем получаемого трафика). - Выберите
тип IP-интерфейса
: IPv4/ IPv6. -
Выберите настройки
Безопасности
для маршрутов или оставьте флажокБезопасный маршрут
пустым.
При выбореБезопасного маршрута
укажитетип терминации 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 на данный момент не проверяет достоверность сертификата хоста назначения, таким образом можно использовать самоподписанные сертификаты.
- edge
-
Выберите политику для трафика по небезопасным схемам:
- allow - позволяет проходить HTTP-трафику;
- redirect - автоматически перенаправляет клиента с HTTP на HTTPS (используется код HTTP 301).
-
Выберите один из
TLS Сертификатов
, ассоциированных с данным маршрутом. -
Нажмите
Создать
.
Новый маршрут появится в общем списке, где можно будет отредактировать его настройки или удалить при помощи бокового меню или нажав соответствующие кнопки в Детали
.
Для просмотра деталей созданного маршрута просто нажмите на него.
Новый маршрут появится в общем списке, где можно будет отредактировать его настройки или удалить при помощи бокового меню.
Сертификаты¶
Во вкладке Сертификаты
можно добавить сертификаты TLS для для edge и повторного шифрования терминации. Сертификаты должны быть в формате PEM
. Пользователь имеет возможность добавлять, редактировать, просматривать и удалять сертификаты.
Добавление сертификатов¶
Пользователь может загружать сертификаты, перетаскивая их, выбирая их или вставляя из буфера обмена.
- На вкладке
Сертификаты
нажмитеДобавить
; - Введите
Название
для сертификатов; - Нажмите
Выбрать
и добавьте необходимые сертификаты (или перетащите и вставьте из буфера обмена); - Нажмите
Добавить
.
Для просмотра сведений о добавленном сертификате просто нажмите на него.
Редактировать и удалять сертификаты можно двумя способами. Сделать это можно с помощью бокового меню (иконка из трех точек) или нажав соответствующие кнопки в Детали
.
Примечание
При использовании собственных сертификатов, для корректной работы в систему должен быть загружен только один сертификат, относящийся к доменному имени. Например, если у загруженного сертификата истёк срок действия - его нужно удалить и загрузить актуальный.
Роли и права¶
Действие | Member | Admin | Billing | Operator | Owner |
---|---|---|---|---|---|
Веб-маршруты | |||||
Просмотр веб-маршрутов | ✔ only own | ✔ | ✔ | ✔ | |
Создание веб-маршрута | ✔ | ✔ | ✔ | ✔ | |
Редактирование веб-маршрута | ✔ only own | ✔ | ✔ | ✔ | |
Удаление веб-маршрута | ✔ only own | ✔ | ✔ | ✔ | |
Сертификаты | |||||
Просмотр сертификатов | ✔ only own | ✔ | ✔ | ✔ | |
Создание сертификата | ✔ | ✔ | ✔ | ✔ | |
Редактирование сертификата | ✔ only own | ✔ | ✔ | ✔ | |
Удаление сертификата | ✔ only own | ✔ | ✔ | ✔ |