Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monium
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • Вопросы и ответы про Application Load Balancer
  • История изменений
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Создайте ВМ и запустите на ней тестовый веб-сервер
  • Создайте целевую группу
  • Создайте группу бэкендов
  • Создайте HTTP-роутер
  • Создайте L7-балансировщик
  • Протестируйте работу балансировщика
  • Как удалить созданные ресурсы
  • Практические сценарии

Как начать работать с Yandex Application Load Balancer

Статья создана
Yandex Cloud
Улучшена
Обновлена 3 ноября 2026 г.
Открыть в Markdown
  • Перед началом работы
  • Создайте ВМ и запустите на ней тестовый веб-сервер
  • Создайте целевую группу
  • Создайте группу бэкендов
  • Создайте HTTP-роутер
  • Создайте L7-балансировщик
  • Протестируйте работу балансировщика
  • Как удалить созданные ресурсы
  • Практические сценарии

Yandex Application Load Balancer позволяет предоставить пользователям единый адрес веб-приложения и распределять запросы между его бэкендами. Вы можете направлять запросы к разным приложениям по доменному имени или пути и настроить HTTPS на балансировщике.

В этом учебном примере вы создадите балансировщик и проверите передачу HTTP-запросов на тестовый веб-сервер. Для простоты используются одна ВМ и одна зона доступности. Такая конфигурация помогает освоить компоненты сервиса, но не обеспечивает отказоустойчивость приложения.

В инфраструктуру сервиса входят компоненты:

  • Целевая группа.
  • Группа бэкендов.
  • HTTP-роутер.
  • L7-балансировщик.

Ниже описано, как создать каждый компонент по отдельности. Также вы можете воспользоваться визардом, чтобы создавать все компоненты на одной странице.

Перед началом работыПеред началом работы

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

  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

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

  4. Убедитесь, что вашей учетной записи назначены роли на каталог с создаваемыми ресурсами:

    • alb.editor — для управления балансировщиком, целевой группой, группой бэкендов и HTTP-роутером.
    • compute.editor — для создания и удаления тестовой ВМ.
    • vpc.publicAdmin — для подключения публичных IP-адресов.

    Если нужно создать сеть или подсети, дополнительно потребуется роль vpc.privateAdmin.

Создайте ВМ и запустите на ней тестовый веб-серверСоздайте ВМ и запустите на ней тестовый веб-сервер

  1. Создайте виртуальную машину test-vm1 из публичного образа Ubuntu 24.04 в зоне доступности ru-central1-a.

  2. Подключитесь к ВМ по SSH.

    Если у вас установлен интерфейс командной строки Yandex Cloud, вы можете подключиться к ВМ по OS Login:

    yc compute ssh --name test-vm1
    
  3. Запустите тестовый веб-сервер, который будет отвечать на запросы на порте 8080:

    mkdir test-server; echo 'HELLO' > test-server/hello.txt; python3 -m http.server -d test-server 8080
    
  4. Убедитесь, что веб-сервер возвращает HTML-страницу со списком файлов каталога test-server, включая hello.txt. В терминале вашего компьютера выполните:

    curl --verbose <публичный_IP-адрес_ВМ>:8080
    

Создайте целевую группуСоздайте целевую группу

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

Консоль управления
CLI
  1. В консоли управления выберите каталог, в котором будет создаваться целевая группа.
  2. Перейдите в сервис Application Load Balancer.
  3. В меню слева выберите Целевые группы.
  4. Нажмите кнопку Создать целевую группу.
  5. Введите имя целевой группы: test-target-group.
  6. Выберите ВМ test-vm1.
  7. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

Выполните команду:

yc alb target-group create test-target-group \
  --target subnet-name=<имя_подсети_ВМ>,ip-address=<внутренний_IP-адрес_ВМ>

Создайте группу бэкендовСоздайте группу бэкендов

Группы бэкендов содержат настройки балансировки трафика и проверок состояния целевых ресурсов. Создайте группу и добавьте в нее один бэкенд.

Консоль управления
CLI
  1. В меню слева выберите Группы бэкендов.

  2. Нажмите кнопку Создать группу бэкендов.

  3. Введите имя группы бэкендов: test-backend-group.

  4. В блоке Бэкенды нажмите кнопку Добавить. Задайте настройки бэкенда:

    1. Введите имя бэкенда: backend-1.
    2. В списке Целевая группа выберите test-target-group.
    3. Укажите порт: 8080.
  5. Разверните поле Настройки протокола и задайте их параметры:

    1. Выберите тип HTTP.
  6. Нажмите кнопку Добавить проверку состояния и задайте настройки проверки:

    1. Таймаут, с: 1.
    2. Интервал: 3.
    3. Порог работоспособности: 2.
    4. Порог неработоспособности: 2.
    5. Порт: 8080.
    6. Тип: HTTP.
    7. Путь: /.
  7. Нажмите кнопку Создать.

  1. Создайте группу бэкендов:

    yc alb backend-group create test-backend-group
    
  2. Создайте бэкенд и проверку состояния:

    yc alb backend-group add-http-backend \
      --backend-group-name test-backend-group \
      --name backend-1 \
      --port 8080 \
      --target-group-name test-target-group \
      --target-group-id <идентификатор_целевой_группы> \
      --http-healthcheck healthy-threshold=2,unhealthy-threshold=2,timeout=1s,interval=3s,path=/
    

Создайте HTTP-роутерСоздайте HTTP-роутер

HTTP-роутеры определяют правила маршрутизации запросов к бэкендам и позволяют модифицировать запросы прямо на балансировщике.

Консоль управления
CLI
  1. В меню слева выберите HTTP-роутеры.
  2. Нажмите кнопку Создать HTTP-роутер.
  3. Введите имя роутера: test-http-router.
  4. В блоке Виртуальные хосты нажмите кнопку Добавить виртуальный хост.
  5. Введите имя хоста: test-virtual-host.
  6. Нажмите кнопку Добавить маршрут.
  7. Введите Имя: test-route.
  8. В поле Путь выберите Начинается с и укажите путь /.
  9. В поле Действие оставьте Маршрутизация.
  10. В списке Группа бэкендов выберите test-backend-group.
  11. Остальные настройки оставьте без изменений и нажмите кнопку Создать.
  1. Создайте HTTP-роутер:

    yc alb http-router create test-http-router
    
  2. Создайте виртуальный хост:

    yc alb virtual-host create test-virtual-host --http-router-name test-http-router
    
  3. Добавьте маршрут:

    yc alb virtual-host append-http-route test-route \
      --http-router-name test-http-router \
      --prefix-path-match / \
      --backend-group-name test-backend-group \
      --virtual-host-name test-virtual-host
    

Создайте L7-балансировщикСоздайте L7-балансировщик

Балансировщик принимает запросы и распределяет их по ВМ из целевой группы по правилам, указанным в HTTP-роутере. Для приема трафика балансировщик использует обработчики.

Консоль управления
CLI
  1. В меню слева выберите Балансировщики.

  2. Нажмите кнопку Создать L7-балансировщик.

  3. Введите имя балансировщика: test-load-balancer.

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

  5. В блоке Размещение выберите подсеть в одной зоне доступности и включите прием трафика в этой подсети.

    Остальные зоны доступности удалите, нажав в соответствующей строке.

  6. В блоке Обработчики нажмите кнопку Добавить обработчик. Задайте настройки обработчика:

    1. Введите имя обработчика: test-listener.
    2. В блоке Публичный IP-адрес включите передачу трафика.
    3. Укажите порт 80.
    4. Выберите тип Автоматически.
  7. В поле HTTP-роутер выберите test-http-router.

  8. Нажмите кнопку Создать.

  1. Создайте балансировщик с узлом в одной подсети:

    yc alb load-balancer create test-load-balancer \
      --network-name <имя_сети> \
      --location subnet-name=<имя_подсети_в_зоне_ru-central1-a>,zone=ru-central1-a
    
  2. Добавьте обработчик:

    yc alb load-balancer add-listener test-load-balancer \
      --listener-name test-listener \
      --http-router-id <идентификатор_HTTP-роутера> \
      --external-ipv4-endpoint port=80
    

Протестируйте работу балансировщикаПротестируйте работу балансировщика

В терминале выполните следующую команду:

curl --verbose <публичный_IP-адрес_балансировщика>:80

В ответ должен вернуться HTTP-код 200 и HTML-страница со списком файлов каталога test-server, включая hello.txt.

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

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

Как удалить созданные ресурсыКак удалить созданные ресурсы

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

Консоль управления
  1. Удалите L7-балансировщик test-load-balancer.
  2. Удалите HTTP-роутер test-http-router.
  3. Удалите группу бэкендов test-backend-group.
  4. Удалите целевую группу test-target-group.
  5. Удалите ВМ test-vm1. Если ее загрузочный диск не удалился автоматически, удалите его.

Практические сценарииПрактические сценарии

Чтобы применить балансировщик в своей инфраструктуре, воспользуйтесь руководствами:

  • Виртуальный хостинг — размещение нескольких сайтов с разными доменными именами по одному IP-адресу.
  • Терминирование TLS-соединений — настройка HTTPS и перенаправления HTTP-запросов на HTTPS.
  • Сине-зеленое и канареечное развертывание — переключение трафика между версиями приложения.

Была ли статья полезна?

Следующая
Все инструкции
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»