Um balanceador de carga de rede de proxy externo regional é um balanceador de carga regional de camada 4 baseado em proxy que lhe permite executar e dimensionar o tráfego de serviço TCP numa única região por detrás de um endereço IP regional externo. Estes balanceadores de carga distribuem o tráfego TCP externo da Internet para back-ends na mesma região.
Este guia contém instruções para configurar um balanceador de carga de rede de proxy externo regional com um back-end de grupo de pontos finais de rede (NEG) zonal.
Antes de começar, reveja os seguintes documentos:
Neste exemplo, vamos usar o balanceador de carga para distribuir o tráfego TCP por VMs de back-end em dois NEGs zonais na região A. Para efeitos do exemplo, o serviço é um conjunto de servidores Apache configurados para responder na porta 80.
Neste exemplo, configura a implementação apresentada no diagrama seguinte.
Este é um balanceador de carga regional. Todos os componentes do balanceador de carga (grupo de instâncias de back-end, serviço de back-end, proxy de destino e regra de encaminhamento) têm de estar na mesma região.
Autorizações
Para seguir este guia, tem de conseguir criar instâncias e modificar uma rede num projeto. Tem de ser proprietário ou editor do projeto, ou ter todas as funções do IAM do Compute Engine seguintes.
| Tarefa | Função necessária | 
|---|---|
| Crie redes, sub-redes e componentes do balanceador de carga | Administrador de rede de Calcular
       ( roles/compute.networkAdmin) | 
| Adicione e remova regras de firewall | Administrador de segurança da computação
       ( roles/compute.securityAdmin) | 
| Crie instâncias | Administrador de instância de computação
       ( roles/compute.instanceAdmin) | 
Para mais informações, consulte os seguintes guias:
Configure a rede e as sub-redes
Precisa de uma rede VPC com duas sub-redes, uma para os back-ends do equilibrador de carga e outra para os proxies do equilibrador de carga. Este é um balanceador de carga regional. O tráfego na rede da VPC é encaminhado para o balanceador de carga se a origem do tráfego estiver numa sub-rede na mesma região que o balanceador de carga.
Este exemplo usa a seguinte rede de VPC, região e sub-redes:
- Rede: uma rede VPC no modo personalizado denominada - lb-network
- Sub-rede para back-ends: uma sub-rede denominada - backend-subnetna região A que usa- 10.1.2.0/24para o respetivo intervalo de endereços IP principal
- Sub-rede para proxies: uma sub-rede denominada - proxy-only-subnetna região A que usa- 10.129.0.0/23para o respetivo intervalo de endereços IP principal
Crie a rede e a sub-rede para back-ends
Consola
- Na Google Cloud consola, aceda à página Redes VPC. 
- Clique em Criar rede de VPC. 
- Em Nome, introduza - lb-network.
- Na secção Sub-redes, faça o seguinte: - Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).
- Na secção Nova sub-rede, introduza as seguintes informações:
- Nome: backend-subnet
- Região: REGION_A
- Intervalo de endereços IP: 10.1.2.0/24
 
- Nome: 
- Clique em Concluído.
 
- Clique em Criar. 
gcloud
- Para criar a rede VPC personalizada, use o comando - gcloud compute networks create:- gcloud compute networks create lb-network --subnet-mode=custom 
- Para criar uma sub-rede na rede - lb-networkna região- REGION_A, use 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 
Crie a sub-rede só de proxy
Uma sub-rede apenas de proxy fornece um conjunto de endereços IP que a Google usa para executar proxies do Envoy em seu nome. Os proxies terminam as ligações do cliente e criam novas ligações aos backends.
Esta sub-rede apenas de proxy é usada por todos os equilibradores de carga baseados no Envoy na região A da rede VPC lb-network.
Consola
Se estiver a usar a Google Cloud consola, pode aguardar e criar a sub-rede apenas de proxy mais tarde na página Equilíbrio de carga.
Se quiser criar a sub-rede apenas de proxy agora, siga estes passos:
- Na Google Cloud consola, aceda à página Redes VPC. 
- Clique no nome da rede VPC partilhada: - lb-network.
- Clique em Adicionar sub-rede. 
- Em Nome, introduza - proxy-only-subnet.
- Para Região, selecione - REGION_A.
- Defina Purpose como Regional Managed Proxy. 
- Para o Intervalo de endereços IP, introduza - 10.129.0.0/23.
- Clique em Adicionar. 
gcloud
Para criar a sub-rede só de proxy, use 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, cria as seguintes regras de firewall:
- fw-allow-health-check. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite o tráfego do balanceador de carga e dos sistemas de verificação de funcionamento (- 130.211.0.0/22e- 35.191.0.0/16). Este exemplo usa a etiqueta de destino- allow-health-checkpara identificar as VMs de back-end às quais deve ser aplicada. Google CloudGoogle Cloud
- fw-allow-ssh. Uma regra de entrada que permite a conetividade SSH de entrada na porta TCP- 22a partir de qualquer endereço. Pode escolher um intervalo de IPs de origem mais restritivo para esta regra. Por exemplo, pode especificar apenas os intervalos de IPs dos sistemas a partir dos quais inicia sessões SSH. Este exemplo usa a etiqueta de destino- allow-sshpara identificar as VMs às quais deve ser aplicada.
- fw-allow-proxy-only-subnet. Uma regra de firewall de- allowentrada para a sub-rede só de proxy que permite que o balanceador de carga comunique com as instâncias de back-end na porta TCP- 80. Este exemplo usa a etiqueta target- allow-proxy-only-subnetpara identificar as VMs de back-end às quais deve aplicar-se.
Consola
- Na Google Cloud consola, aceda à página Políticas de firewall. 
- Clique em Criar regra de firewall e, de seguida, preencha os seguintes campos: - Nome: fw-allow-health-check
- Rede: lb-network
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação: allow-health-check
- Filtro de origem: intervalos IPv4
- Intervalos de IPv4 de origem: 130.211.0.0/22e35.191.0.0/16
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza 80para o número da porta.
 
 
- Nome: 
- Clique em Criar. 
- Clique em Criar regra de firewall uma segunda vez para criar a regra para permitir ligações SSH de entrada: - Nome: fw-allow-ssh
- Rede: lb-network
- Prioridade: 1000
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação: allow-ssh
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem: 0.0.0.0/0
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza 22para o número da porta.
 
 
- Nome: 
- Clique em Criar. 
- Clique em Criar regra de firewall pela terceira vez para criar a regra que permite ligações recebidas da sub-rede só de proxy aos back-ends: Google Cloud - Nome: fw-allow-proxy-only-subnet
- Rede: lb-network
- Prioridade: 1000
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação: 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.
- Selecione a caixa de verificação TCP e, de seguida, introduza 80para o número da porta.
 
 
- Nome: 
- Clique em Criar. 
gcloud
- Crie a regra - fw-allow-health-checkpara permitir que as verificações de funcionamento alcancem as instâncias de back-end na porta TCP- 80: Google Cloud- 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-sshpara permitir a conetividade SSH a VMs com a etiqueta de rede- allow-ssh. Quando omite- source-ranges, Google Cloud interpreta a regra como 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 firewall de permissão de entrada para a sub-rede só de proxy para permitir que o balanceador de carga 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
Consola
- Na Google Cloud consola, aceda à página Reserve um endereço estático. 
- Escolha um nome para a nova morada. 
- Para Nível de serviço de rede, selecione Padrão. 
- Para Versão do IP, selecione IPv4. Os endereços IPv6 não são suportados. 
- Para Tipo, selecione Regional. 
- Para Região, selecione - REGION_A.
- Deixe a opção Anexado a definida como Nenhum. Depois de criar o balanceador de carga, este endereço IP é anexado à regra de encaminhamento do balanceador de carga. 
- Clique em Reservar para reservar o endereço IP. 
gcloud
- Para reservar um endereço IP externo estático, use o comando - gcloud compute addresses create:- gcloud compute addresses create ADDRESS_NAME \ --region=REGION_A \ --network-tier=STANDARD - Substitua - ADDRESS_NAMEpelo nome que quer dar a este endereço.
- Para ver o resultado, use o comando - gcloud compute addresses describe:- gcloud compute addresses describe ADDRESS_NAME 
Configure o NEG zonal
Configure um NEG zonal com pontos finais do tipo GCE_VM_IP_PORT na região A. Primeiro, crie as VMs e, em seguida,
crie um NEG zonal e adicione os pontos finais de rede das VMs ao NEG.
Crie VMs
Consola
- Na Google Cloud consola, aceda à página Instâncias de VM. 
- Clique em Criar instância. 
- Defina Nome como - vm-a1.
- Para Região, selecione - REGION_A.
- Para Zona, selecione - ZONE_A.
- Na secção Disco de arranque, certifique-se de que a opção Debian GNU/Linux 12 (bookworm) está selecionada para as opções do disco de arranque. Clique em Escolher para alterar a imagem, se necessário. 
- Clique em Opções avançadas. 
- Clique em Rede e, de seguida, configure os seguintes campos: - Para etiquetas de rede, introduza allow-ssh,allow-health-checkeallow-proxy-only-subnet.
- Para Interfaces de rede, selecione o seguinte:
- Rede: lb-network
- Subnet: backend-subnet
 
- Rede: 
 
- Para etiquetas de rede, introduza 
- Clique em Gestão. Introduza o seguinte script no campo Script de arranque: - #! /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 os passos anteriores para criar mais três VMs. Use as seguintes combinações de nomes e zonas: - Nome: vm-a2| Zona:ZONE_A
- Nome: vm-b1| Zona:ZONE_B
- Nome: vm-b2| Zona:ZONE_B
 
- Nome: 
gcloud
Para criar as VMs, use o comando gcloud compute instances create duas vezes. Use as seguintes combinações para VM_NAME e ZONE. Os conteúdos do script são idênticos para ambas as VMs:
- VM_NAME:- vm-a1e- ZONE:- ZONE_A
- VM_NAME:- vm-a2e- ZONE:- ZONE_A
- VM_NAME:- vm-b1e- ZONE:- ZONE_B
- VM_NAME:- vm-b2e- ZONE:- ZONE_B
 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'
Crie os NEGs zonais
Consola
Crie um grupo de pontos finais de rede zonal
- Na Google Cloud consola, aceda à página Grupos de pontos finais de rede. 
- Clique em Criar grupo de pontos finais de rede. 
- Em Nome, introduza - zonal-neg-a.
- Para o Tipo de grupo de pontos finais da rede, selecione Grupo de pontos finais da rede (zonal). 
- Para Rede, selecione - lb-network.
- Para Sub-rede, selecione - backend-subnet.
- Para Zona, selecione - ZONE_A.
- Para Porta predefinida, introduza - 80.
- Clique em Criar. 
- Repita todos os passos nesta secção para criar um segundo NEG zonal com as seguintes alterações nas definições: - Nome: zonal-neg-b
- Zona: ZONE_B
 
- Nome: 
Adicione pontos finais aos NEGs zonais
- Na Google Cloud consola, aceda à página Grupos de pontos finais de rede. 
- Clique no nome do grupo de pontos finais de rede que criou no passo anterior (por exemplo, - zonal-neg-a).
- Na página Detalhes do grupo de pontos finais de rede, na secção Pontos finais de rede neste grupo, clique em Adicionar ponto final de rede. 
- Selecione uma instância de VM (por exemplo, - vm-a1).
- Na secção Interface de rede, são apresentados o nome, a zona e a sub-rede da VM. - Para Endereço IP, introduza o endereço IP do novo ponto final de rede. Para obter o endereço IP, clique em Verificar endereços IP principais e intervalo de IP alternativo em nic0.
- Para Tipo de porta, selecione Predefinição. O ponto final usa a porta predefinida
80para todos os pontos finais no grupo de pontos finais da rede. Isto é suficiente para o nosso exemplo porque o servidor Apache está a processar pedidos na porta80.
- Clique em Criar.
 
- Clique em Adicionar ponto final de rede. Selecione a segunda instância de VM, - vm-a2, e repita os passos anteriores para adicionar os respetivos pontos finais a- zonal-neg-a.
- Repita todos os passos nesta secção para adicionar pontos finais de - vm-b1e- vm-b2a- zonal-neg-b.
gcloud
- Crie um NEG zonal na zona - ZONE_Acom- GCE_VM_IP_PORTpontos finais:- gcloud compute network-endpoint-groups create zonal-neg-a \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A \ --network=lb-network \ --subnet=backend-subnet- Pode especificar o - --default-portao criar o NEG ou especificar um número de porta para cada ponto final conforme mostrado no passo seguinte.
- Adicione pontos finais ao NEG zonal: - gcloud compute network-endpoint-groups update zonal-neg-a \ --zone=ZONE_A \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
- Crie um NEG zonal na zona - ZONE_Bcom- GCE_VM_IP_PORTpontos finais:- gcloud compute network-endpoint-groups create zonal-neg-b \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_B \ --network=lb-network \ --subnet=backend-subnet- Pode especificar o - --default-portao criar o NEG ou especificar um número de porta para cada ponto final conforme mostrado no passo seguinte.
- Adicione pontos finais ao NEG zonal: - gcloud compute network-endpoint-groups update zonal-neg-b \ --zone=ZONE_B \ --add-endpoint='instance=vm-b1,port=80' \ --add-endpoint='instance=vm-b2,port=80'
Configure o balanceador de carga
Consola
Inicie a configuração
- Na Google Cloud consola, aceda à página Equilíbrio de carga. 
- Clique em Criar equilibrador de carga.
- Para Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Seguinte.
- Para Proxy ou passagem, selecione Proxy de balanceamento de carga e clique em Seguinte.
- Para Público ou interno, selecione Público (externo) e clique em Seguinte.
- Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho regionais e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Em Nome, introduza my-ext-tcp-lb.
- Para Região, selecione REGION_A.
- Para Rede, selecione lb-network.
Reserve uma sub-rede só de proxy
- Clique em Reservar sub-rede.
- Em Nome, introduza proxy-only-subnet.
- Para o Intervalo de endereços IP, introduza 10.129.0.0/23.
- Clique em Adicionar.
Configure os back-ends
- Clique em Configuração de back-end.
- Na lista Tipo de back-end, selecione Grupo de pontos finais de rede zonal.
- Na lista Protocolo, selecione TCP.
- Configure a verificação de estado:
- Na lista Verificação de funcionamento, selecione Criar uma verificação de funcionamento.
- No campo Nome, introduza tcp-health-check.
- Na lista Protocolo, selecione TCP.
- No campo Porta, introduza 80.
- Clique em Criar.
 
- Configure o primeiro back-end:
- Para Novo back-end, selecione NEG zonal zonal-neg-a.
- Mantenha os restantes valores predefinidos e, de seguida, clique em Concluído.
 
- Para Novo back-end, selecione NEG zonal 
- Configure o segundo back-end:
- Clique em Adicionar back-end.
- Para Novo back-end, selecione o grupo de instâncias zonal-neg-b.
- Mantenha os restantes valores predefinidos e, de seguida, clique em Concluído.
 
- Mantenha os restantes valores predefinidos e, de seguida, clique em Guardar.
- Na Google Cloud consola, verifique se existe uma marca de verificação junto a Configuração de back-end. Caso contrário, verifique novamente se concluiu todos os passos.
Configure a interface
- Clique em Configuração do front-end.
- Em Nome, introduza ext-tcp-forwarding-rule.
- Para Nível de serviço de rede, selecione Padrão.
- Para Endereço IP, selecione ext-tcp-ip-address.
- Em Número da porta, introduza 9090. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente.
- Para o protocolo PROXY, selecione Desativado porque o protocolo PROXY não funciona com o software Apache HTTP Server. Para mais informações, consulte o protocolo PROXY.
- Clique em Concluído.
- Na Google Cloud consola, verifique se existe uma marca de verificação junto a Configuração do front-end. Caso contrário, verifique novamente se concluiu todos os passos anteriores.
Reveja e finalize
- Clique em Rever e finalizar.
- Verifique as definições.
- Clique em Criar.
gcloud
- Crie uma verificação de funcionamento regional 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 external-tcp-proxy-bs \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A 
- Adicione o NEG zonal na zona - ZONE_Aao serviço de back-end:- gcloud compute backend-services add-backend external-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-a \ --network-endpoint-group-zone=ZONE_A \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A 
- Adicione o NEG zonal na zona - ZONE_Bao serviço de back-end:- gcloud compute backend-services add-backend external-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-b \ --network-endpoint-group-zone=ZONE_B \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A 
- Crie o proxy TCP de destino: - gcloud compute target-tcp-proxies create ext-tcp-target-proxy \ --backend-service=external-tcp-proxy-bs \ --region=REGION_A 
- Crie a regra de encaminhamento. Para - --ports, especifique um único número de porta entre 1 e 65535. Este exemplo usa a porta- 9090. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente.- gcloud compute forwarding-rules create ext-tcp-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=lb-network \ --network-tier=STANDARD \ --address=ext-tcp-ip-address \ --ports=9090 \ --region=REGION_A \ --target-tcp-proxy=ext-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A 
Teste o balanceador de carga
Agora que configurou o equilibrador de carga, pode testar o envio de tráfego para o endereço IP do equilibrador de carga.
- Obtenha o endereço IP do balanceador de carga. - Para obter o endereço IPv4, execute o seguinte comando: - gcloud compute addresses describe ADDRESS_NAME 
- Envie tráfego para o balanceador de carga executando o seguinte comando. Substitua - LB_IP_ADDRESSpela morada IPv4 do seu equilibrador de carga.- curl -m1 LB_IP_ADDRESS:9090 
O que se segue?
- Converta o Network Load Balancer de proxy para IPv6
- Vista geral do balanceador de carga de rede de proxy externo.
- Registo e monitorização do balanceador de carga de rede por proxy.
- Adicione um Private Service Connect.
- Limpe a configuração do balanceador de carga.