[Yandex Cloud documentation](../../index.md) > [Yandex Network Load Balancer](../index.md) > [Step-by-step guides](index.md) > Target groups > Creating a target group

# Creating a Network Load Balancer target group

{% list tabs group=instructions %}

- Management console {#console}
  
  To create a new [target group](../concepts/target-resources.md):
  
  1. In the [management console](https://console.yandex.cloud), select the folder where you want to create a target group.
  1. Navigate to **Network Load Balancer**.
  1. In the left-hand panel, select ![image](../../_assets/console-icons/target.svg) **Target groups**.
  1. Click **Create a target group**.
  1. Enter a name for the target group. The naming requirements are as follows:
  
      * Length: between 3 and 63 characters.
      * It can only contain lowercase Latin letters, numbers, and hyphens.
      * It must start with a letter and cannot end with a hyphen.
  
  1. Select the VMs to add to the target group.
  1. Click **Create**.

- CLI {#cli}
  
  If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../cli/quickstart.md#install).
  
  The folder used by default is the one specified when [creating](../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. See the description of the CLI command for creating a target group:
  
     ```bash
     yc load-balancer target-group create --help
     ```

  1. Create a target group and add the appropriate VMs as targets by specifying their settings in one or more `--target` parameters:

     ```bash
     yc load-balancer target-group create <target_group_name> \
        --target subnet-id=<subnet_ID>,`
                `address=<VM_internal_IP_address>
     ```

- Terraform {#tf}

  If you do not have Terraform yet, [install it and configure the Yandex Cloud provider](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), [authenticate](../../terraform/authentication.md) using the appropriate method.

  1. In the configuration file, describe the settings for the target in the target group.

     Here is an example of the configuration file structure:

     ```hcl
     resource "yandex_lb_target_group" "foo" {
       name      = "<target_group_name>"
       target {
         subnet_id = "<subnet_ID>"
         address   = "<target_internal_IP_address>"
       }
       target {
         subnet_id = "<subnet_ID>"
         address   = "<resource_2_internal_IP_address>"
       }
     }
     ```

     * `name`: Target group name.
     * `target`: Target description:
        * `subnet_id`: ID of the subnet hosting the targets. All targets in the target group must reside within the same [availability zone](../../overview/concepts/geo-scope.md).
        * `address`: Target internal IP address.

     For more information about `yandex_lb_target_group` properties in Terraform, see [this provider guide](../../terraform/resources/lb_target_group.md).

  1. Make sure the settings are correct.

     1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.
     1. Run this command:
     
        ```bash
        terraform validate
        ```
     
        Terraform will show any errors found in your configuration files.

  1. Create a target group.

     1. Run this command to view the planned changes:
     
        ```bash
        terraform plan
        ```
     
        If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.
     
     1. If everything looks correct, apply the changes:
        1. Run this command:
     
           ```bash
           terraform apply
           ```
     
        1. Confirm updating the resources.
        1. Wait for the operation to complete.

- API {#api}

  To create a new target group, use the [create](../api-ref/TargetGroup/create.md) REST API method for the [TargetGroup](../api-ref/TargetGroup/index.md) resource or the [TargetGroupService/Create](../api-ref/grpc/TargetGroup/create.md) gRPC API call.
  
  After you create a target group, add targets for load distribution. To do this, use the [addTargets](../api-ref/TargetGroup/addTargets.md) REST API method for the [TargetGroup](../api-ref/TargetGroup/index.md) resource or the [TargetGroupService/AddTargets](../api-ref/grpc/TargetGroup/addTargets.md) gRPC API call.

{% endlist %}