Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
    • Все инструкции
    • Создать инфраструктуру Application Load Balancer c помощью визарда
      • Создать L7-балансировщик
      • Изменить L7-балансировщик
      • Получить информацию об L7-балансировщике
      • Посмотреть статистику L7-балансировщика
      • Посмотреть логи L7-балансировщика
      • Настроить запись логов L7-балансировщика
      • Получить идентификатор лог-группы L7-балансировщика
      • Остановить и запустить L7-балансировщик
      • Переместить ВМ в целевую группу в новой зоне доступности
      • Удалить L7-балансировщик
    • Посмотреть операции с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • История изменений
  • Обучающие курсы
  1. Пошаговые инструкции
  2. L7-балансировщики
  3. Создать L7-балансировщик

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

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.

Чтобы создать L7-балансировщик:

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог, в котором будет создан балансировщик.

  2. В списке сервисов выберите Application Load Balancer.

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

  4. Введите имя балансировщика.

  5. В блоке Сетевые настройки выберите:

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

    2. Подходящие группы безопасности:

      • Без групп — для балансировщика будет разрешен любой входящий и исходящий трафик. Это наименее безопасный вариант.
      • Автоматически — при создании балансировщика будет автоматически создана группа безопасности, разрешающая любой входящий трафик на порте 80 и TCP-трафик для проверки состояния узлов балансировщика на порте 30080. При этом для балансировщика будет разрешен любой исходящий трафик.
      • Из списка — для более гибкого управления трафиком создайте свои группы безопасности. Вы можете выбрать и привязать к балансировщику одновременно до пяти групп безопасности.

      Примечание

      Правила групп безопасности могут содержать только адреса в формате CIDR. Нельзя назначить группу, в которой используется другая группа безопасности.

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

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

  7. (Опционально) В блоке Размещение включите или отключите входящий трафик для каждой зоны в отдельности с помощью опции Прием трафика.

  8. (Опционально) В блоке Настройки автомасштабирования укажите ограничения на количество ресурсных единиц.

    Количество единиц будет меняться автоматически с учетом нагрузки на балансировщик и установленных ограничений. От количества единиц зависит тарификация балансировщика.

  9. (Опционально) В блоке Настройки логов:

    1. Включите опцию Запись логов.

    2. Выберите лог-группу Yandex Cloud Logging, в которую будут записываться логи балансировщика.

    3. Нажмите кнопку Добавить правило отбрасывания логов и настройте его параметры:

      • HTTP-коды — добавьте HTTP-коды.
      • Классы HTTP-кодов — добавьте классы HTTP-кодов.
      • gRPC-коды — добавьте gRPC-коды.
      • Доля отбрасываемых логов — добавьте процент отбрасываемых логов.

      Вы можете задать больше одного правила.

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

    1. Введите имя обработчика.

    2. (Опционально) Включите опцию Публичный IP-адрес. Укажите Порт: 80 и выберите Тип:

      • Автоматически.
      • Список — в появившемся поле справа выберите адрес в выпадающем списке.
    3. (Опционально) Включите опцию Внутренний IP-адрес. Укажите Порт и выберите Подсеть в выпадающем списке.

    4. В блоке Приём и обработка трафика выберите тип обработчика: HTTP или Stream.

      Для HTTP выберите:

      • Протокол: HTTP,HTTPS или Перенаправлять на HTTPS.
      • HTTP-роутер в выпадающем списке.

      Для Stream выберите протокол:

      • Открытый: выберите Группы бэкендов в выпадающем списке.
      • Зашифрованный: в блоке Основной обработчик выберите Сертификаты и Группы бэкендов в выпадающих списках.
  11. При необходимости добавьте дополнительные обработчики.

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

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для создания L7-балансировщика:

    yc alb load-balancer create --help
    
  2. Выполните команду:

    yc alb load-balancer create <имя_балансировщика> \
      --network-name <имя_сети> \
      --security-group-id <список_идентификаторов_групп_безопасности> \
      --location subnet-name=<имя_подсети>,zone=<зона_доступности>
    

    Где:

    • <имя_балансировщика> — имя создаваемого балансировщика.
    • --network-name — имя сети, в которой создается балансировщик.
    • --security-group-id (опционально) — список от одного до пяти разделенных запятыми идентификаторов групп безопасности. Если не указать этот параметр, то для балансировщика будет разрешен любой трафик.
    • --location — подсеть и зона доступности. Опцию можно повторять несколько раз, чтобы указать разные зоны доступности и подсети.

    Результат:

    done (1m40s)
    id: a5d88ep483cm********
    name: test-balancer2
    folder_id: aoe197919j8e********
    status: ACTIVE
    region_id: ru-central1
    network_id: c64l1c06d151********
    allocation_policy:
      locations:
      - zone_id: ru-central1-a
        subnet_id: buc4gsmpj8hv********
    log_group_id: eolul9ap0bv0********
    security_group_ids:
      - enpulh2tbrep********
      - enpg05a3ck35********
    created_at: "2021-04-26T12:12:13.624832586Z"
    
  3. (Опционально) Установите ограничения на количество ресурсных единиц:

    1. Посмотрите описание команды CLI для настройки ограничений:

      yc alb load-balancer autoscale --help
      
    2. Установите ограничения, выполнив команду:

      yc alb load-balancer autoscale <имя_или_идентификатор_балансировщика> \
        --min-zone-size <минимум_ресурсных_единиц_в_зоне> \
        --max-size <максимум_ресурсных_единиц_в_сумме>
      

      Где:

      • --min-zone-size — минимальное количество ресурсных единиц в каждой зоне доступности. По умолчанию минимум равен 2. Указать минимальное значение меньше 2 нельзя.
      • --max-size — максимальное суммарное количество ресурсных единиц. По умолчанию количество не ограничено. Значение должно быть не меньше, чем количество зон доступности балансировщика, умноженное на минимальное количество ресурсных единиц в каждой зоне.

      Вы можете указать в команде один из параметров или оба сразу.

      Пример:

      yc alb load-balancer autoscale test-balancer2 \
        --min-zone-size 3 \
        --max-size 10
      

      Результат:

      id: a5d88ep483cm********
      name: test-balancer2
      folder_id: aoe197919j8e********
      status: ACTIVE
      region_id: ru-central1
      network_id: c64l1c06d151********
      allocation_policy:
        locations:
          - zone_id: ru-central1-a
            subnet_id: buc4gsmpj8hv********
      created_at: "2022-06-02T12:12:13.624832586Z"
      auto_scale_policy:
        min_zone_size: 3
        max_size: 10
      
  4. (Опционально) Установите параметры записи логов в Yandex Cloud Logging:

    1. Посмотрите описание команды CLI для добавления логирования в балансировщик:

      yc alb load-balancer logging --help
      
    2. Привяжите лог-группу к балансировщику и настройте правило отбрасывания логов:

      yc alb load-balancer logging <имя_балансировщика> \
        --log-group-id <идентификатор_лог-группы> \
        --enable \
        --discard codes=[<HTTP-код>,<класс_HTTP-кодов>,<gRPC-код>],percent=<доля_отбрасываемых_логов>
      

      Где:

      • --log-group-id — идентификатор лог-группы.
      • --discard — правило отбрасывания логов. Параметры правила:
        • codes — HTTP-коды, классы HTTP-кодов или gRPC-коды.
        • percent — доля отбрасываемых логов в процентах.

      Вы можете задать больше одного правила.

      Результат:

      done (42s)
      id: ds76g83js9gf********
      name: test-load-balancer
      ...
      log_options:
        log_group_id: e23p9bfjvsgr********
        discard_rules:
          - http_codes:
              - "200"
            http_code_intervals:
              - HTTP_3XX
            grpc_codes:
              - OK
            discard_percent: "90"
      
  5. Добавьте обработчик для L7-балансировщика:

    • HTTP-обработчик.

      1. Посмотрите описание команды CLI для добавления HTTP-обработчика L7-балансировщика:

        yc alb load-balancer add-listener --help
        
      2. Добавьте обработчик, выполнив команду:

        yc alb load-balancer add-listener <имя_балансировщика> \
          --listener-name <имя_обработчика> \
          --http-router-id <идентификатор_HTTP-роутера> \
          --external-ipv4-endpoint port=<порт_обработчика>
        
    • Stream-обработчик.

      1. Посмотрите описание команды CLI для добавления Stream-обработчика L7-балансировщика:

        yc alb load-balancer add-stream-listener --help
        
      2. Добавьте обработчик, выполнив команду:

        yc alb load-balancer add-stream-listener <имя_балансировщика> \
          --listener-name=<имя_обработчика> \
          --backend-group-id=<идентификатор_группы_бэкендов> \
          --external-ipv4-endpoint port=<порт_обработчика>
        

    Результат после добавления двух обработчиков:

    done (42s)
    id: ds76g8b2op3f********
    name: test-load-balancer
    folder_id: b1gu6g9ielh6********
    status: ACTIVE
    network_id: enp0uulja5s3********
    listeners:
    - name: tslistener
      endpoints:
      - addresses:
        - external_ipv4_address:
            address: 51.250.64.197
        ports:
        - "80"
      http:
        handler:
          http_router_id: ds7d7b14b3fs********
    - name: teststreamlistener
      endpoints:
      - addresses:
        - external_ipv4_address:
            address: 51.250.64.197
        ports:
        - "443"
      stream:
        handler:
          backend_group_id: ds77tero4f5h********
    allocation_policy:
      locations:
      - zone_id: ru-central1-a
        subnet_id: e9bs1hp7lgdl********
    log_group_id: ckgs4u5km3u8********
    security_group_ids:
    - enp49ot04g63********
    created_at: "2022-04-04T02:12:40.160629110Z"
    log_options:
      log_group_id: e23p9bfjvsgr********
      discard_rules:
        - http_codes:
            - "200"
          http_code_intervals:
            - HTTP_3XX
          grpc_codes:
            - OK
          discard_percent: "90"
    

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    resource "yandex_alb_load_balancer" "test-balancer" {
      name        = "<имя_L7-балансировщика>"
      network_id  = "<идентификатор_сети>"
      security_group_ids = ["<список_идентификаторов_групп_безопасности>"]
    
      allocation_policy {
        location {
          zone_id   = "<зона_доступности>"
          subnet_id = "<идентификатор_подсети>" 
        }
      }
    
      listener {
        name = "<имя_обработчика>"
        endpoint {
          address {
            external_ipv4_address {
            }
          }
          ports = [ 9000 ]
        }
        http {
          handler {
            http_router_id = "<идентификатор_HTTP-роутера>"
          }
        }
      }
    
      log_options {
        log_group_id = "<идентификатор_лог-группы>"
        discard_rule {
          http_codes          = ["<HTTP-код>"]
          http_code_intervals = ["<класс_HTTP-кодов>"]
          grpc_codes          = ["<gRPC-код>"]
          discard_percent     = <доля_отбрасываемых_логов>
        }
      }
    }
    

    Где:

    • name — имя L7-балансировщика. Формат имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • network_id — идентификатор сети, в которой создается балансировщик.

    • security_group_ids (опционально) — список от одного до пяти разделенных запятыми идентификаторов групп безопасности.
      Если не указать этот параметр, то для балансировщика будет разрешен любой трафик.

    • allocation_policy — описание расположения узлов L7-балансировщика. Укажите идентификаторы зоны доступности и подсети.

    • listener — описание параметров обработчика для L7-балансировщика:

      • name — имя обработчика. Формат имени:

        • длина — от 2 до 63 символов;
        • может содержать строчные буквы латинского алфавита, цифры и дефисы;
        • первый символ — буква, последний — не дефис.
      • endpoint — описание адресов и портов обработчика. Укажите внешний IPv4-адрес и порт для приема трафика. Если параметр external_ipv4_address не задан, то публичный адрес будет выделен автоматически.

      • http — описание HTTP-приемника для обработчика. Укажите идентификатор HTTP-роутера.

      • log_options — (опционально) параметры записи логов в Yandex Cloud Logging:

        • log_group_id — идентификатор лог-группы.

        • discard_rule — правило отбрасывания логов:

          • http_codes — HTTP-коды.
          • http_code_intervals — классы HTTP-кодов.
          • grpc_codes — gRPC-коды.
          • discard_percent — доля отбрасываемых логов в процентах.

          Вы можете задать больше одного правила.

    Более подробную информацию о параметрах ресурса yandex_alb_load_balancer в Terraform см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

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

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

      terraform plan
      

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

  3. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:

      terraform apply
      
    2. Подтвердите создание ресурсов: введите в терминал слово yes и нажмите Enter.

      После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команды CLI:

      yc alb load-balancer list
      

Воспользуйтесь методом REST API create для ресурса LoadBalancer или вызовом gRPC API LoadBalancerService/Create.

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

Предыдущая
Удалить HTTP-роутер
Следующая
Изменить L7-балансировщик
Проект Яндекса
© 2025 ООО «Яндекс.Облако»