Creating an Application Load Balancer target group
Create VMs in your previously selected folder by following this guide.
To create a target group:
- In the management console
, select the folder where you want to create your target group. - From the list of services, select Application Load Balancer.
- In the left-hand panel, select
Target groups. - Click Create target group.
- Specify the target group name and description.
- Under Targets, select a VM from the list or add the target manually:
-
In the IP address field, specify the target's IP and select its subnet.
-
Optionally, if the target's IP address does not belong to Yandex Virtual Private Cloud, select Outside VPC.
For example, you can specify a private IPv4 address from your data center connected to Yandex Cloud through Yandex Cloud Interconnect. This IP address must belong to the RFC 1918 private address range
. For more information, see Subnets. -
Click Add target resource.
-
- Click Create.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
-
See the description of the CLI command for creating a target group:
yc alb target-group create --help -
Run this command, with the target group name, subnet name, and VM’s internal IP addresses specified:
yc alb target-group create \ --name <target_group_name> \ --target subnet-name=<subnet_name>,ip-address=<VM_1_internal_IP_address> \ --target subnet-name=<subnet_name>,ip-address=<VM_2_internal_IP_address> \ --target subnet-name=<subnet_name>,ip-address=<VM_3_internal_IP_address>Result:
id: a5d751meibht******** name: <target_group_name> folder_id: aoerb349v3h4******** targets: - ip_address: <VM_1_internal_IP_address> subnet_id: fo2tgfikh3he******** - ip_address: <VM_2_internal_IP_address> subnet_id: fo2tgfikh3he******** - ip_address: <VM_3_internal_IP_address> subnet_id: fo2tgfikh3he******** created_at: "2021-02-11T11:16:27.770674538ZYou can also create a target group with resources outside Yandex Virtual Private Cloud, e.g., in your data center connected to Yandex Cloud via Yandex Cloud Interconnect. Target IP addresses must belong to the RFC 1918 private address range
. For more information, see Subnets.Run this command, with the target group name and resource’s private IPv4 addresses specified:
yc alb target-group create \ --name <target_group_name> \ --target private-ip-address=true,ip-address=<resource_1_IPv4_private_address> \ --target private-ip-address=true,ip-address=<resource_2_IPv4_private_address> \ --target private-ip-address=true,ip-address=<resource_3_IPv4_private_address>Result:
id: ds7s2dld2usr******** name: <target_group_name> folder_id: aoerb349v3h4******** targets: - ip_address: <resource_1_IPv4_private_address> private_ipv4_address: true - ip_address: <resource_2_IPv4_private_address> private_ipv4_address: true - ip_address: <resource_3_IPv4_private_address> private_ipv4_address: true created_at: "2023-07-25T08:55:14.172526884Z"
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the relevant documentation on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
-
In the Terraform configuration file, specify your new resource settings:
resource "yandex_alb_target_group" "foo" { name = "<target_group_name>" target { subnet_id = "<subnet_ID>" ip_address = "<VM_1_internal_IP_address>" } target { subnet_id = "<subnet_ID>" ip_address = "<VM_2_internal_IP_address>" } target { subnet_id = "<subnet_ID>" ip_address = "<VM_3_internal_IP_address>" } }Where
yandex_alb_target_groupspecifies target group settings:name: Target group name.target: Target settings:subnet_id: ID of the subnet hosting the VM. You can get the list of available subnets using theyc vpc subnet listCLI command.ip_address: VM internal IP address. You can get the list of internal IP addresses using the following CLI command:yc vpc subnet list-used-addresses --id <subnet_ID>.
You can also create a target group with resources outside Yandex Virtual Private Cloud, e.g., in your data center connected to Yandex Cloud via Yandex Cloud Interconnect:
resource "yandex_alb_target_group" "foo" { name = "<target_group_name>" target { private_ipv4_address = true ip_address = "<resource_1_IPv4_private_address>" } target { private_ipv4_address = true ip_address = "<resource_2_IPv4_private_address>" } target { private_ipv4_address = true ip_address = "<resource_3_IPv4_private_address>" } }Where
yandex_alb_target_groupspecifies target group settings:name: Target group name.target: Target settings:private_ipv4_address: Setting indicating that the IP address is outside Virtual Private Cloud.ip_address: Resource’s private IPv4 address. This IP address must belong to the RFC 1918 private address range . For more information, see Subnets.
For more information about
yandex_alb_target_groupproperties, see the relevant Terraform article. -
Create the resources:
-
In the terminal, go to the directory where you edited the configuration file.
-
Make sure the configuration file is correct using this command:
terraform validateIf the configuration is correct, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a detailed list of resources. No changes will be made at this step. If the configuration contains any errors, Terraform will show them.
-
Apply the changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
Terraform will create all the required resources. You can check the new resources in the management console
or using this CLI command:yc alb target-group listTimeouts
The Terraform provider limits operations with Application Load Balancer target groups to 10 minutes.
Operations in excess of this time will be interrupted.
How do I modify these limits?
Add the
timeoutssection to the target group description, e.g.:resource "yandex_alb_target_group" "<target_group_name>" { ... timeouts { create = "60m" update = "60m" delete = "60m" } } -
Use the create REST API method for the TargetGroup resource or the TargetGroupService/Create gRPC API call.