O balanceador de carga de proxy TCP regional interno é um balanceador de carga de Camada 4 regional e baseado em proxy. Com ele, é possível executar e escalonar o tráfego do serviço TCP atrás de um endereço IP interno acessível apenas a clientes na mesma rede VPC ou aos clientes conectados à rede VPC.
Este guia contém instruções para configurar um balanceador de carga de rede de proxy interno regional com um back-end de grupo de endpoints de rede (NEG, na sigla em inglês). Antes de começar:
- Leia a Visão geral do balanceador de carga de rede de proxy interno regional
- Leia a visão geral de NEGs zonais.
Visão geral
Neste exemplo, vamos usar o balanceador de carga para distribuir o tráfego TCP entre
VMs de back-end em dois NEGs zonais na região REGION_A. Para o propósito deste
exemplo, o serviço é um conjunto de servidores Apache
configurados para responder na porta 80.
Neste exemplo, você configura o seguinte:
O balanceador de carga de rede do proxy interno regional é regional. Todos os componentes do balanceador de carga (grupos de instâncias de back-end, serviço de back-end, proxy de destino e regra de encaminhamento) precisam estar na mesma região.
Permissões
Para seguir as instruções deste guia, você precisa ser capaz de criar instâncias e modificar uma rede em um projeto. É necessário ser um proprietário ou editor de projeto, ou ter todos os seguintes papéis do IAM do Compute Engine:
| Tarefa | Papel necessário | 
|---|---|
| Criar componentes do balanceador de carga, sub-redes e redes | Administrador de rede | 
| Adicionar e remover regras de firewall | Administrador de segurança | 
| Criar instâncias | Administrador da instância da computação | 
Para mais informações, consulte estes guias:
Configurar a rede e as sub-redes
Você precisa de uma rede VPC com duas sub-redes: uma para os back-ends do balanceador de carga e a outra para os proxies do balanceador de carga. Os balanceadores de carga de rede de proxy interno regional são regionais. O tráfego na rede VPC será direcionado ao balanceador de carga se a origem do tráfego estiver em uma sub-rede na mesma região que o balanceador de carga.
Neste exemplo, usamos a seguinte rede VPC, região e sub-redes:
- Rede: uma rede VPC de modo personalizado chamada - lb-network.
- Sub-rede para back-ends: uma sub-rede chamada - backend-subnetna região- REGION_Ausa- 10.1.2.0/24como o intervalo de IP primário.
- Sub-rede para proxies: uma sub-rede chamada - proxy-only-subnetna região- REGION_Ausa- 10.129.0.0/23como o intervalo de IP primário.
Como configurar a rede e a sub-rede para back-ends
Console
- No console do Google Cloud , acesse a página Redes VPC. 
- Clique em Criar rede VPC. 
- Em Nome, insira - lb-network.
- Na seção Sub-redes: - Defina o Modo de criação de sub-rede como Personalizado.
- Na seção Nova sub-rede, insira as informações a seguir:
- Name: backend-subnet
- Região: REGION_A
- Intervalo de endereços IP: 10.1.2.0/24
 
- Name: 
- Clique em Concluído.
 
- Clique em Criar. 
gcloud
- Crie a rede VPC personalizada com o comando - gcloud compute networks create:- gcloud compute networks create lb-network --subnet-mode=custom 
- Crie uma sub-rede na rede - lb-networkna região- REGION_Acom o comando- gcloud compute networks subnets create:- gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Criar a sub-rede somente proxy
Uma sub-rede somente proxy fornece um conjunto de endereços IP que o Google usa para executar proxies Envoy em seu nome. Os proxies encerram as conexões do cliente e criam novas conexões com os back-ends.
Essa sub-rede somente proxy é usada por todos os balanceadores
de carga regionais baseados no Envoy na
região REGION_A da rede VPC lb-network.
Console
Se você estiver usando o Google Cloud console, poderá esperar e criar a sub-rede somente proxy depois na página Balanceamento de carga.
Se você quiser criar a sub-rede somente proxy agora, siga estas etapas:
- No console do Google Cloud , acesse a página Redes VPC. 
- Clique no nome da rede VPC compartilhada: - lb-network.
- Clique em Add subnet. 
- Em Nome, insira - proxy-only-subnet.
- Em Região, selecione - REGION_A.
- Defina Finalidade como Proxy gerenciado regional. 
- Em Intervalo de endereços IP, digite - 10.129.0.0/23.
- Clique em Adicionar. 
gcloud
Crie a sub-rede somente proxy com o comando gcloud compute networks subnets
create.
gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION_A \
    --network=lb-network \
    --range=10.129.0.0/23
Crie regras de firewall
Neste exemplo, você cria as regras de firewall a seguir:
- fw-allow-health-check: uma regra de entrada, aplicável às instâncias Google Cloud submetidas a balanceamento de carga, que permite o tráfego do balanceador de carga e dos sistemas de verificação de integridade doGoogle Cloud (- 130.211.0.0/22e- 35.191.0.0/16). Este exemplo usa a tag de destino- allow-health-checkpara identificar as VMs de back-end às quais ela deve ser aplicada.
- fw-allow-ssh: uma regra de entrada que permite a conectividade SSH de entrada na porta TCP 22 de qualquer endereço. Escolha um intervalo de IP de origem mais restritivo para esta regra. Por exemplo, é possível especificar apenas os intervalos de IP do sistema do qual você inicia sessões SSH. Neste exemplo, usamos a tag- allow-sshde destino para identificar as VMs a que isso se aplicará.
- fw-allow-proxy-only-subnet: cria uma regra de permissão de entrada de firewall para a sub-rede somente proxy para permitir que o balanceador de carga se comunique com instâncias de back-end na porta TCP- 80: Neste exemplo, usamos a tag- allow-proxy-only-subnetde destino para identificar as VMs de back-end a que isso se aplicará.
Console
- No console Google Cloud , acesse a página Políticas de firewall. 
- Clique em Criar regra de firewall. - Informe um Nome de fw-allow-health-check.
- Em Rede, selecione lb-network.
- Em Destinos, selecione Tags de destino especificadas.
- Preencha o campo Tags de destino com allow-health-check.
- Defina Filtro de origem como Intervalos IPv4.
- Defina Intervalos IPv4 de origem como 130.211.0.0/22e35.191.0.0/16.
- Em Protocolos e portas, selecione Portas e protocolos especificados.
- Marque a caixa de seleção TCP e insira 80como números de porta.
- Clique em Criar.
 
- Informe um Nome de 
- Clique em Criar regra de firewall novamente para criar a regra e permitir conexões SSH de entrada: - Name: fw-allow-ssh
- Rede: lb-network
- Prioridade: 1000
- Direção do tráfego: entrada
- Ação se houver correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de meta: allow-ssh
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem: 0.0.0.0/0
- Protocolos e portas: escolha Protocolos e portas especificados e digite: tcp:22
 
- Name: 
- Clique em Criar. 
- Clique em Criar regra de firewall novamente para criar a regra que permite conexões de entrada da sub-rede somente proxy para os back-ends do Google Cloud: - Nome: fw-allow-proxy-only-subnet
- Rede: lb-network
- Prioridade: 1000
- Direção do tráfego: entrada
- Ação se houver correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de meta: allow-proxy-only-subnet
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem: 10.129.0.0/23
- Protocolos e portas: escolha Protocolos e portas especificados e digite: tcp:80
 
- Nome: 
- Clique em Criar. 
gcloud
- Crie a regra - fw-allow-health-checkpara permitir que as verificações de integridade do Google Cloud alcancem as instâncias de back-end na porta TCP- 80:- gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
- Crie a regra de firewall - fw-allow-sshque permita a conectividade SSH para VMs com a tag de rede- allow-ssh. Quando você omite- source-ranges, oGoogle Cloud interpreta a regra como sendo qualquer origem.- gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
- Crie uma regra de permissão de entrada de firewall para a sub-rede somente proxy para permitir que o balanceador de carga se comunique com instâncias de back-end na porta TCP - 80:- gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=10.129.0.0/23 \ --rules=tcp:80
Reserve o endereço IP do balanceador de carga
Para reservar um endereço IP interno estático para o balanceador de carga, consulte Reservar um novo endereço IPv4 ou IPv6 interno estático.
Configurar o NEG zonal
Configure um NEG zonal com endpoints do tipo GCE_VM_IP_PORT
na região REGION_A. Primeiro, crie as VMs. Em seguida, crie um NEG zonal
e adicione os endpoints de rede das VMs ao NEG.
Criar VMs
Console
- No console do Google Cloud , acesse a página Instâncias de VM. 
- Clique em Criar instância. 
- Defina o Nome como - vm-a1.
- Em Região, selecione - REGION_A.
- Para a Zona, consulte - ZONE_A1.
- Na seção Disco de inicialização, verifique se Debian GNU/Linux 12 (bookworm) está selecionado para as opções de disco de inicialização. Clique em Escolher para alterar a imagem se necessário. 
- Clique em Opções avançadas. 
- Clique em Rede e configure os seguintes campos: - Em Tags de rede, insira allow-ssh,allow-health-checkeallow-proxy-only-subnet.
- Em Interfaces de rede, selecione o seguinte:
- Rede: lb-network
- Sub-rede: backend-subnet
 
- Rede: 
 
- Em Tags de rede, insira 
- Clique em Gerenciamento. Insira o script a seguir no campo Script de inicialização. - #! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2 
- Clique em Criar. 
- Repita as etapas a seguir para criar mais três VMs, usando as seguintes combinações de nome e zona: - Nome: vm-a2, zona:ZONE_A1
- Nome: vm-c1, zona:ZONE_A2
- Nome: vm-c2, zona:ZONE_A2
 
- Nome: 
gcloud
Crie as VMs executando o comando a seguir duas vezes usando estas combinações para VM_NAME e ZONE. O conteúdo do script é idêntico para as duas VMs.
- VM_NAME: vm-a1e ZONE:ZONE_A1
- VM_NAME: vm-a2e ZONE:ZONE_A1
- VM_NAME: vm-c1e ZONE:ZONE_A2
- VM_NAME: - vm-c2e ZONE:- ZONE_A2- gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=backend-subnet \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Criar os NEGs zonais
Console
Para criar um grupo de endpoints de rede zonal:
- No console Google Cloud , acesse a página Grupos de endpoints da rede. 
- Clique em Criar grupo de endpoints de rede. 
- Em Nome, insira - zonal-neg-a.
- Em Tipo de grupo de endpoints de rede, selecione Grupo de endpoints de rede (Internet). 
- Em Rede, selecione - lb-network.
- Em Sub-rede, selecione - backend-subnet.
- Em Zona, selecione - ZONE_A1.
- Insira a Porta padrão: - 80.
- Clique em Criar. 
- Repita todas as etapas nesta seção para criar um segundo NEG zonal com as seguintes alterações nas configurações: - Name: zonal-neg-c
- Zona: ZONE_A2
 
- Name: 
Adicione endpoints aos NEGs zonais:
- No console Google Cloud , acesse a página Grupos de endpoints da rede. 
- Clique no Nome do grupo de endpoints da rede criado na etapa anterior (por exemplo, - zonal-neg-a). Você verá a página Detalhes do grupo de endpoints de rede.
- Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede. Você verá a página Adicionar endpoint de rede. 
- Selecione uma Instância de VM (por exemplo, - vm-a1). O nome, a zona e a sub-rede da VM são exibidos na seção Interface de rede.- Insira o endereço IP do novo endpoint da rede. Clique em Verificar os endereços IP primários e o intervalo de IP do alias em nic0 para o endereço IP.
- Em Tipo de porta, selecione Padrão. O endpoint usa a porta 80padrão para todos os endpoints no grupo de endpoints da rede. Isso é suficiente para nosso exemplo, porque o servidor Apache está atendendo solicitações na porta80.
- Clique em Criar.
 
- Clique novamente em Adicionar endpoint de rede. Selecione a segunda instância de VM, - vm-a2, e repita essas etapas para adicionar os endpoints a- zonal-neg-a.
- Repita todas as etapas nesta seção para adicionar endpoints de - vm-c1e- vm-c2a- zonal-neg-c.
gcloud
- Crie um NEG zonal na zona - ZONE_A1com endpoints- GCE_VM_IP_PORT.- gcloud compute network-endpoint-groups create zonal-neg-a \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A1 \ --network=lb-network \ --subnet=backend-subnet - Especifique o - --default-portao criar o NEG ou especifique um número de porta para cada endpoint, conforme mostrado na próxima etapa.
- Adicione endpoints ao NEG zonal. - gcloud compute network-endpoint-groups update zonal-neg-a \ --zone=ZONE_A1 \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
- Crie um NEG zonal na zona - ZONE_A2com endpoints- GCE_VM_IP_PORT.- gcloud compute network-endpoint-groups create zonal-neg-c \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A2 \ --network=lb-network \ --subnet=backend-subnet- Especifique o - --default-portao criar o NEG ou especifique um número de porta para cada endpoint, conforme mostrado na próxima etapa.
- Adicione endpoints ao NEG zonal. - gcloud compute network-endpoint-groups update zonal-neg-c \ --zone=ZONE_A2 \ --add-endpoint='instance=vm-c1,port=80' \ --add-endpoint='instance=vm-c2,port=80'
Configurar o balanceador de carga
Console
Iniciar a configuração
- No console do Google Cloud , acesse a página Balanceamento de carga. 
- Clique em Criar balanceador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Próxima.
- Em Proxy ou passagem, selecione Balanceador de carga de proxy e clique em Próxima.
- Em Voltado ao público ou interno, selecione Interno e clique em Próxima.
- Em Implantação entre regiões ou região única, selecione Melhor para cargas de trabalho regionais e clique em Próxima.
- Clique em Configurar.
Configuração básica
- Em Nome, insira my-int-tcp-lb.
- Em Região, selecione REGION_A.
- Em Rede, selecione lb-network.
Reservar uma sub-rede somente proxy
Para reservar uma sub-rede somente proxy:
- Clique em Reservar sub-rede.
- Em Nome, insira proxy-only-subnet.
- Em Intervalo de endereços IP, insira 10.129.0.0/23.
- Clique em Adicionar.
Configuração de back-end
- Clique em Configuração de back-end.
- Para o tipo de back-end, selecione Grupo de endpoints da rede na Internet.
- Em Protocol, selecione TCP.
- Na lista Verificação de integridade, clique em Criar verificação de integridade e insira as seguintes informações:
- Nome: tcp-health-check
- Protocolo: TCP
- Porta: 80
 
- Nome: 
- Clique em Criar.
- Configure o primeiro back-end:
- Em Novo back-end, selecione o NEG zonal zonal-neg-a.
- Mantenha os valores padrão restantes e clique em Concluído.
 
- Em Novo back-end, selecione o NEG zonal 
- Configure o segundo back-end: - Clique em Adicionar back-end.
- Em Novo back-end, selecione o grupo de instâncias zonal-neg-c.
- Mantenha os valores padrão restantes e clique em Concluído.
 
- No console Google Cloud , verifique se há uma marca de seleção ao lado de Configuração de back-end. Se não houver, verifique se você concluiu todas as etapas. 
Configuração de front-end
- Clique em Configuração de front-end.
- Em Nome, insira int-tcp-forwarding-rule.
- Em Sub-rede, selecione backend-subnet.
- Em Endereço IP, selecione int-tcp-ip-address.
- Em Número da porta, digite 9090. A regra de encaminhamento encaminha pacotes com uma porta de destino correspondente.
- Neste exemplo, não ative o Protocolo de proxy, porque ele não funciona com o software servidor HTTP Apache. Para mais informações, consulte Protocolo de proxy.
- Clique em Concluído.
- No console Google Cloud , verifique se há uma marca de seleção ao lado de Configuração de front-end. Se não houver, verifique se você concluiu todas as etapas anteriores.
Revisar e finalizar
- Clique em Revisar e finalizar.
- Verifique suas configurações.
- Clique em Criar.
gcloud
- Crie uma verificação de integridade para os back-ends. - gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
- Crie um serviço de back-end. - gcloud compute backend-services create internal-tcp-proxy-bs \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A 
- Adicione o NEG zonal na zona - ZONE_A1ao serviço de back-end.- gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-a \ --network-endpoint-group-zone=ZONE_A1 \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A 
- Adicione o NEG zonal na zona - ZONE_A2ao serviço de back-end.- gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-c \ --network-endpoint-group-zone=ZONE_A2 \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A 
- Crie o proxy TCP de destino. - gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --region=REGION_A 
- Crie a regra de encaminhamento. Para - --ports, especifique um único número de porta de 1-65535. Este exemplo usa a porta- 9090. A regra de encaminhamento encaminha pacotes com uma porta de destino correspondente.- gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=int-tcp-ip-address \ --ports=9090 \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A 
Testar o balanceador de carga
Para testar o balanceador de carga, crie uma VM cliente na mesma região que o balanceador de carga. Em seguida, envie o tráfego do cliente para o balanceador de carga.
Criar uma VM cliente
Crie uma VM cliente (client-vm) na mesma região do balanceador de carga.
Console
- No console do Google Cloud , acesse a página Instâncias de VM. 
- Clique em Criar instância. 
- Defina o Nome como - client-vm.
- Defina Zona como - ZONE_A1.
- Clique em Opções avançadas. 
- Clique em Rede e configure os seguintes campos: - Em Tags de rede, insira allow-ssh.
- Em Interfaces de rede, selecione o seguinte:
- Rede: lb-network
- Sub-rede: backend-subnet
 
- Rede: 
 
- Em Tags de rede, insira 
- Clique em Criar. 
gcloud
A VM do cliente precisa estar na mesma rede e região VPC que o balanceador de carga. Ele não precisa estar na mesma sub-rede ou zona. O cliente usa a mesma sub-rede que as VMs de back-end.
gcloud compute instances create client-vm \
    --zone=ZONE_A1 \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=backend-subnet
Enviar tráfego ao balanceador de carga
Agora que você configurou o balanceador de carga, é possível testar o envio de tráfego para o endereço IP dele.
- Use o SSH para se conectar à instância do cliente. - gcloud compute ssh client-vm \ --zone=ZONE_A1 
- Verifique se o balanceador de carga está disponibilizando nomes de host de back-end conforme o esperado. - Use o comando - compute addresses describepara ver o endereço IP do balanceador de carga:- gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A - Anote o endereço IP. 
- Enviar tráfego ao balanceador de carga Substitua IP_ADDRESS pelo endereço IP do balanceador de carga: - curl IP_ADDRESS:9090 
 
A seguir
- Converter o balanceador de carga de rede de proxy para IPv6
- Visão geral do balanceador de carga de rede de proxy interno regional
- Para configurar o monitoramento do balanceador de carga de rede do proxy interno regional, consulte Como usar o monitoramento.
- Limpe a configuração do balanceador de carga.