[Документация Yandex Cloud](../../index.md) > [Yandex Network Load Balancer](../index.md) > [Пошаговые инструкции](index.md) > Целевые группы > Подключить целевую группу к балансировщику

# Подключить целевую группу к сетевому балансировщику

{% list tabs group=instructions %}

- Консоль управления {#console}
  
  Чтобы подключить [целевую группу](../concepts/target-resources.md) к сетевому балансировщику:
  
  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, где требуется подключить целевую группу к балансировщику.
  1. Перейдите в сервис **Network Load Balancer**.
  1. В строке балансировщика, к которому требуется подключить целевую группу, нажмите на значок ![image](../../_assets/console-icons/ellipsis.svg) и выберите **Подключить целевую группу**.
  1. Выберите целевую группу или [создайте новую](target-group-create.md).
  1. Задайте настройки проверки состояния.
  1. Нажмите кнопку **Подключить целевую группу**
  
- CLI {#cli}
  
  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).
  
  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
  
  1. Посмотрите описание команды CLI для подключения целевой группы к сетевому балансировщику:
  
     ```bash
     yc load-balancer network-load-balancer attach-target-group --help
     ```

  1. Узнайте имя или идентификатор балансировщика, получив [список сетевых балансировщиков в каталоге](load-balancer-list.md#list).

  1. Подключите целевую группу к балансировщику, указав ее идентификатор и настройки проверки состояния в соответствующих параметрах команды:
  
     ```bash
     yc load-balancer network-load-balancer attach-target-group <имя_или_идентификатор_балансировщика> \
        --target-group target-group-id=<идентификатор_целевой_группы>,`
                      `healthcheck-name=<имя_проверки_состояния>,`
                      `healthcheck-interval=<интервал_выполнения_проверок>s,`
                      `healthcheck-timeout=<время_ожидания_ответа>s,`
                      `healthcheck-unhealthythreshold=<количество_проваленных_проверок_для_статуса_Unhealthy>,`
                      `healthcheck-healthythreshold=<количество_успешных_проверок_для_статуса_Healthy>,`
                      `healthcheck-tcp-port=<TCP-порт>,`
                      `healthcheck-http-port=<HTTP-порт>,`
                      `healthcheck-http-path=<адрес_URL>
     ```

     Где:

     * `--target-group` — параметры целевой группы и настройки [проверки состояния её ресурсов](../concepts/health-check.md):
         * `target-group-id` — идентификатор целевой группы.
     
           Чтобы узнать идентификатор, [получите](target-group-list.md#list) список целевых групп в каталоге.
     
         * `healthcheck-name` — имя проверки состояния ресурсов.
         * `healthcheck-interval` — интервал выполнения проверок состояния в секундах. Возможные значения: от `1s` до `60s`. Интервал должен быть больше времени ожидания минимум на 1 секунду. 
         * `healthcheck-timeout` — время ожидания ответа в секундах. Возможные значения: от `1s` до `60s`.
         * `healthcheck-unhealthythreshold` — количество проваленных проверок, после которого на виртуальную машину перестанет подаваться трафик. Возможные значения: от `2` до `10`.
         * `healthcheck-healthythreshold` — количество успешных проверок, после которого виртуальная машина будет считаться готовой к приему трафика. Возможные значения: от `2` до `10`.
         * `healthcheck-tcp-port` — порт для проверок по протоколу TCP. Возможные значения: от `1` до `32767`.
         * `healthcheck-http-port` — порт для проверок по протоколу HTTP. Возможные значения: от `1` до `32767`.
         * `healthcheck-http-path` — адрес URL, по которому будут выполняться проверки по протоколу HTTP.
     
         Указывать одновременно `healthcheck-tcp-port` и `healthcheck-http-port` нельзя.
     
         {% note warning %}
         
         Для параметров `healthcheck-interval` и `healthcheck-timeout` необходимо указывать значение в формате `<время_в_секундах>s`, например `20s`.
         
         {% endnote %}

     Подробнее о параметрах проверок читайте в разделе [Проверка состояния ресурсов](../concepts/health-check.md).

- Terraform {#tf}

  1. Откройте файл конфигурации Terraform и добавьте блок `attached_target_group` в описании сетевого балансировщика:

     ```hcl
     resource "yandex_lb_network_load_balancer" "foo" {
       name = "<имя_балансировщика>"
       ...
       attached_target_group {
         target_group_id = "<идентификатор_целевой_группы>"
         healthcheck {
           name = "<имя_проверки_состояния>"
           http_options {
             port = <номер_порта>
             path = "<адрес_URL>"
           }
         }
       }
       ...
     }
     ```

     Где:

     * `name` — имя сетевого балансировщика.
     * `attached_target_group` — описание параметров целевой группы для сетевого балансировщика:
        * `target_group_id` — идентификатор целевой группы.

          Чтобы узнать идентификатор, [получите](target-group-list.md#list) список целевых групп в каталоге.

        * `healthcheck` — описание параметров проверки состояния. Укажите имя, порт из диапазона от `1` до `32767` и путь, по которому будут выполняться проверки.

     Подробнее о ресурсах, которые вы можете создать с помощью Terraform, в [документации провайдера](../../terraform/resources/lb_network_load_balancer.md).

  1. Проверьте корректность настроек.

     1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
     1. Выполните команду:
     
        ```bash
        terraform validate
        ```
     
        Если в файлах конфигурации есть ошибки, Terraform на них укажет.

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

     1. Выполните команду для просмотра планируемых изменений:
     
        ```bash
        terraform plan
        ```
     
        Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
     
     1. Если вас устраивают планируемые изменения, внесите их:
        1. Выполните команду:
     
           ```bash
           terraform apply
           ```
     
        1. Подтвердите изменение ресурсов.
        1. Дождитесь завершения операции.

- API {#api}

  Чтобы подключить целевую группу к сетевому балансировщику, воспользуйтесь методом REST API [attachTargetGroup](../api-ref/NetworkLoadBalancer/attachTargetGroup.md) для ресурса [NetworkLoadBalancer](../api-ref/NetworkLoadBalancer/index.md) или вызовом gRPC API [NetworkLoadBalancerService/AttachTargetGroup](../api-ref/grpc/NetworkLoadBalancer/attachTargetGroup.md) и передайте в запросе:

  * Идентификатор балансировщика в параметре `networkLoadBalancerId`.
  * Идентификатор целевой группы в параметре `attachedTargetGroup.targetGroupId`.
  * Настройки проверки состояния в параметре `attachedTargetGroup.healthChecks`.

  Идентификатор балансировщика можно получить со [списком сетевых балансировщиков в каталоге](load-balancer-list.md#list), идентификатор целевой группы — со [списком целевых групп в каталоге](target-group-list.md#list).

{% endlist %}