Configurar um balanceador de carga de aplicativo interno regional com conectividade híbrida

Esta página mostra como implantar um balanceador de carga de aplicativo interno regional a fim de balancear a carga do tráfego para endpoints de rede que estão no local ou em outras nuvens públicas e podem ser acessados pela conectividade híbrida.

Se você ainda não tiver feito isso, leia a Visão geral dos NEGs de conectividade híbridos para entender os requisitos de rede para configurar o balanceamento de carga híbrido.

Visão geral da configuração

O exemplo nesta página configura a seguinte implantação:

Exemplo de balanceador de carga de aplicativo interno regional para conectividade híbrida.
xemplo de balanceador de carga de aplicativo interno regional para conectividade híbrida (clique para ampliar).

É preciso configurar a conectividade híbrida antes de configurar uma implantação de balanceamento de carga híbrida. Esta página não inclui a configuração de conectividade híbrida.

Dependendo do produto de conectividade híbrida escolhido (Cloud VPN ou Cloud Interconnect (dedicada ou por parceiro)), use a documentação relevante do produto.

Permissões

Para configurar o balanceamento de carga híbrido, você precisa ter as seguintes permissões:

  • No Google Cloud

  • No local ou em outro ambiente de nuvem que não seja o Google Cloud

    • Permissões para configurar endpoints de rede que autorizam os serviços no local ou em outros ambientes de nuvem a serem acessados pelo Google Cloud com uma combinação de IP:Port. Para mais informações, entre em contato com o administrador de rede do ambiente.
    • Permissões para criar regras de firewall no seu ambiente local ou em outros ambientes de nuvem para que as sondagens de verificação de integridade do Google alcancem os endpoints.

Além disso, para concluir as instruções nesta página, você precisa criar um NEG híbrido de conectividade, um balanceador de carga e NEGs zonais (e os respectivos endpoints) para servir como back-ends baseados no Google Cloud para o balanceador de carga.

É necessário ser proprietário ou editor de um projeto ou ter os seguintes papéis de IAM do Compute Engine.

Tarefa Papel necessário
Criar redes, sub-redes e componentes do balanceador de carga Administrador de rede do Compute (roles/compute.networkAdmin)
Adicionar e remover regras de firewall Administrador de segurança do Compute (roles/compute.securityAdmin)
Criar instâncias Administrador da instância do Compute (roles/compute.instanceAdmin)

Estabelecer conectividade híbrida

O Google Cloud e os ambientes locais ou em nuvem precisam ser conectados por uma conectividade híbrida usando anexos da VLAN do Cloud Interconnect ou túneis do Cloud VPN com o Cloud Router. Recomendamos que você use uma conexão de alta disponibilidade.

Um Cloud Router ativado com roteamento dinâmico global aprende sobre o endpoint específico usando o Border Gateway Protocol (BGP) e o programa na sua rede VPC do Google Cloud. O roteamento dinâmico regional não é compatível. Rotas estáticas também não são compatíveis.

A rede VPC que você usa para configurar o Cloud Interconnect ou o Cloud VPN é a mesma rede usada para configurar a implantação do balanceamento de carga híbrido. Verifique se os intervalos de CIDR da sub-rede da rede VPC não entram em conflito com os intervalos CIDR remotos. Quando os endereços IP se sobrepõem, as rotas de sub-rede são priorizadas em relação à conectividade remota.

Para receber instruções, consulte a seguinte documentação:

Configurar o ambiente fora do Google Cloud

Execute as etapas a seguir para configurar seu ambiente local ou outro ambiente de nuvem para balanceamento de carga híbrido:

  • Configure endpoints da rede para expor serviços locais ao Google Cloud (IP:Port).
  • Configure regras de firewall no seu ambiente local ou em outro ambiente de nuvem
  • Configurar o Cloud Router para divulgar determinadas rotas necessárias para seu ambiente particular.

Configurar endpoints da rede

Depois de configurar a conectividade híbrida, você configura um ou mais endpoints de rede no seu ambiente local ou em outros ambientes de nuvem acessíveis pelo Cloud Interconnect ou pelo Cloud VPN usando uma combinação de IP:port. Essa combinação de IP:port é configurada como um ou mais endpoints para o NEG de conectividade híbrida criado no Google Cloud posteriormente neste processo.

Se houver vários caminhos para o endpoint do IP, o roteamento seguirá o comportamento descrito na Visão geral do Cloud Router.

Configurar regras de firewall

As regras de firewall a seguir precisam ser criadas no ambiente local ou em outro ambiente de nuvem:

  • Crie uma regra de firewall de permissão de entrada no ambiente local ou em outros ambientes de nuvem para permitir que o tráfego da sub-rede somente proxy da região chegue aos endpoints.
  • Não é necessário adicionar intervalos de sondagem de verificação de integridade do Google à lista de permissões para NEGs híbridos. No entanto, se você estiver usando uma combinação de NEGs híbridos e zonais em um único serviço de back-end, será necessário usar lista de permissões dos intervalos de sondagem de verificação de integridade do Google para NEGs zonais.

Configure o Cloud Router para divulgar os seguintes intervalos de IP personalizados no local ou outro ambiente de nuvem:

  • O intervalo da sub-rede somente proxy da região.

Configurar o ambiente do Google Cloud

Para as etapas a seguir, certifique-se de usar a mesma rede VPC (chamada NETWORK neste procedimento) usada para configurar a conectividade híbrida entre os ambientes.

Além disso, verifique se a região usada (chamada REGION neste procedimento) é a mesma usada para criar o túnel do Cloud VPN ou o anexo da VLAN do Cloud Interconnect.

Configurar a sub-rede somente proxy

Essa sub-rede somente proxy é usada para todos os balanceadores de carga regionais baseados em Envoy na região REGION.

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.
    Acessar redes VPC
  2. Acesse a rede usada para configurar a conectividade híbrida entre os ambientes.
  3. Clique em Add subnet.
  4. Digite um Nome: PROXY_ONLY_SUBNET_NAME.
  5. Selecionar uma região: REGION.
  6. Defina Finalidade como Proxy gerenciado regional.
  7. Digite um Intervalo de endereço IP: PROXY_ONLY_SUBNET_RANGE.
  8. 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_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Configure a sub-rede do balanceador de carga

Essa sub-rede é usada para criar os back-ends NEG zonais do balanceador de carga, o front-end e o endereço IP interno.

Console do Cloud

  1. No Console do Google Cloud, acesse a página Redes VPC.
    Acessar redes VPC
  2. Acesse a rede usada para configurar a conectividade híbrida entre os ambientes.
  3. 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: LB_SUBNET_NAME
      • Região: REGION
      • Intervalo de endereços IP: LB_SUBNET_RANGE
    • Clique em Concluído.
  4. Clique em Criar.

gcloud

  1. Crie uma sub-rede na rede que foi usada para configurar a conectividade híbrida entre os ambientes.

    gcloud compute networks subnets create LB_SUBNET_NAME \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE \
        --region=REGION
    

Reserve o endereço IP do balanceador de carga

Por padrão, um endereço IP é usado para cada regra de encaminhamento. É possível reservar um endereço IP compartilhado para usar o mesmo endereço IP com várias regras de encaminhamento. No entanto, se você quiser publicar o balanceador de carga usando o Private Service Connect, não use um endereço IP compartilhado para a regra de encaminhamento.

Console

É possível reservar um endereço IP interno independente usando o Console do Google Cloud.

  1. Acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique na rede usada para configurar a conectividade híbrida entre os ambientes.
  3. Clique em Endereços IP internos estáticos e em Reservar endereço estático.
  4. Digite um Nome: LB_IP_ADDRESS.
  5. Em Sub-rede, selecione LB_SUBNET_NAME.
  6. Se quiser especificar o endereço IP a ser reservado, em Endereço IP estático , selecioneDeixe-me escolher e preencha com um Endereço IP personalizado. Caso contrário, o sistema atribui automaticamente um endereço IP na sub-rede para você.
  7. Se você quiser usar esse endereço IP com várias regras de encaminhamento, em Objetivo, escolha Compartilhado.
  8. Clique em Reservar para concluir o processo.

gcloud

  1. Usando a CLI gcloud, execute o comando compute addresses create:

    gcloud compute addresses create LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME \
    
  2. Use o comando compute addresses describe para ver o endereço IP alocado:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

    Se você quiser usar o mesmo endereço IP com várias regras de encaminhamento, especifique --purpose=SHARED_LOADBALANCER_VIP.

Crie regras de firewall para NEGs zonais

Neste exemplo, você cria as seguintes regras de firewall para os back-ends de NEG zonais no Google Cloud:

  • fw-allow-health-check: uma regra de entrada, aplicável às instâncias cuja carga está sendo balanceada, que permite o tráfego dos sistemas de verificação de integridade do Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Este exemplo usa a tag de destino allow-health-check para identificar as VMs de back-end às quais ela deve ser aplicada. Não é necessário adicionar intervalos de sondagem de verificação de integridade do Google à lista de permissões para NEGs híbridos. No entanto, se você estiver usando uma combinação de NEGs híbridos e zonais em um único serviço de back-end, será necessário usar a lista de permissões dos intervalos de sondagem de verificação de integridade do Google para NEGs zonais.
  • 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-ssh de destino para identificar as VMs a que isso se aplicará.
  • fw-allow-proxy-only-subnet: uma regra de entrada que permite que as conexões da sub-rede somente proxy alcancem os back-ends.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.
    Acesse as políticas de firewall
  2. Clique em Criar regra de firewall para criar a regra que permite o tráfego de sondagens de verificação de integridade:
    1. Informe um Nome de fw-allow-health-check.
    2. Em Rede, selecione NETWORK.
    3. Em Destinos, selecione Tags de destino especificadas.
    4. Preencha o campo Tags de destino com allow-health-check.
    5. Defina Filtro de origem como Intervalos IPv4.
    6. Defina Intervalos IPv4 de origem como 130.211.0.0/22 e 35.191.0.0/16.
    7. Em Protocolos e portas, selecione Portas e protocolos especificados.
    8. Selecione TCP e insira 80 como o número da porta.
    9. Clique em Criar.
  3. Clique em Criar regra de firewall novamente para criar a regra que permite conexões SSH de entrada:
    1. Nome: fw-allow-ssh
    2. Rede: NETWORK
    3. Prioridade: 1000
    4. Direção do tráfego: entrada
    5. Ação se houver correspondência: permitir
    6. Destinos: tags de destino especificadas
    7. Tags de meta: allow-ssh
    8. Filtro de origem: intervalos IPv4
    9. Intervalos IPv4 de origem: 0.0.0.0/0
    10. Protocolos e portas: escolha Protocolos e portas especificados.
    11. Selecione TCP e insira 22 como o número da porta.
    12. Clique em Criar.
  4. Clique em Criar regra de firewall novamente para criar a regra que permite conexões de entrada da sub-rede somente proxy:
    1. Nome: fw-allow-proxy-only-subnet
    2. Rede: NETWORK
    3. Prioridade: 1000
    4. Direção do tráfego: entrada
    5. Ação se houver correspondência: permitir
    6. Destinos: tags de destino especificadas
    7. Tags de meta: allow-proxy-only-subnet
    8. Filtro de origem: intervalos IPv4
    9. Intervalos IPv4 de origem: PROXY_ONLY_SUBNET_RANGE
    10. Protocolos e portas: escolha Protocolos e portas especificados.
    11. Selecione TCP e insira 80 como o número da porta.
    12. Clique em Criar.

gcloud

  1. Crie a regra fw-allow-health-check-and-proxy para 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=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
    
  2. Crie a regra de firewall fw-allow-ssh que permita a conectividade SSH para VMs com a tag de rede allow-ssh. Se você omitir source-ranges, o Google Cloud interpretará que a regra autoriza a conexão proveniente de qualquer origem.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. 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=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE \
        --rules=tcp:80
    

Configurar o NEG zonal

Para back-ends baseados no Google Cloud, recomendamos que você configure vários NEGs zonais na mesma região em que configurou a conectividade híbrida.

Neste exemplo, configuramos um NEG zonal (com endpoints do tipo GCE_VM_IP_PORT) na região REGION. Primeiro, crie as VMs na zona GCP_NEG_ZONE. Em seguida, crie um NEG zonal no mesmo GCP_NEG_ZONE e adicione os endpoints de rede das VMs ao NEG.

Criar VMs

Console

  1. Acesse a página "Instâncias de VMs" no Console do Google Cloud.
    Acessar instâncias de VM
  2. Clique em Criar instância.
  3. Defina o Nome como vm-a1.
  4. Em Região, escolha REGION, e escolha qualquer zona. Neste procedimento, será chamada de GCP_NEG_ZONE.
  5. 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.
  6. Clique em Opções avançadas e faça as seguintes alterações:

    • Clique em Rede e adicione as seguintes tags de rede: allow-ssh,allow-health-check e allow-proxy-only-subnet.
    • Clique em Editar em Interfaces de rede, faça as seguintes alterações e clique em Concluído:
      • Rede: NETWORK
      • Sub-rede: LB_SUBNET_NAME
      • IP interno primário: temporário (automático)
      • IP externo: temporário
    • Clique em Gerenciamento. No campo Script de inicialização, copie e cole o conteúdo do script a seguir, que é o mesmo para as quatro VMs:

      #! /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
      
  7. Clique em Criar.

  8. Repita as etapas a seguir para criar uma segunda VM usando a combinação de nome e zona a seguir:

    • Nome: vm-a2, zona: GCP_NEG_ZONE

gcloud

Crie as VMs executando o comando a seguir duas vezes, usando essas combinações para o nome da VM e a zona dela. O conteúdo do script é idêntico para as duas VMs.

  • VM_NAME de vm-a1 e qualquer zona GCP_NEG_ZONE que você preferir.
  • VM_NAME de vm-a2 e a mesma zona GCP_NEG_ZONE

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --subnet=LB_SUBNET_NAME \
        --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 o NEG zonal

Console

Para criar um grupo de endpoints de rede zonal:

  1. Acesse a página "Grupos de endpoints da rede" no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique em Criar grupo de endpoints de rede.
  3. Insira um Nome para o NEG zonal. Chamado de GCP_NEG_NAME neste procedimento.
  4. Selecione o Tipo de grupo de endpoints da rede: Grupo de endpoints da rede (Zonal).
  5. Selecione a Rede: NETWORK
  6. Selecione a Sub-rede: LB_SUBNET_NAME
  7. Selecione a Zona: GCP_NEG_ZONE
  8. Insira a Porta padrão: 80.
  9. Clique em Criar.

Adicione endpoints ao NEG zonal:

  1. Acesse a página "Grupos de endpoints da rede" no Google Cloud Console.
    Acessar os grupos de endpoints de rede
  2. Clique no Nome do grupo de endpoints da rede criado na etapa anterior (GCP_NEG_NAME). Você verá a página Detalhes do grupo de endpoints da rede.
  3. Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede. Você verá a página Adicionar endpoint de rede.
  4. Selecione uma instância de VM para adicionar endereços IP internos como endpoints da rede. Na seção Interface de rede, são exibidos o nome, a zona e a sub-rede da VM.
  5. No campo Endereço IPv4, insira o endereço IPv4 do novo endpoint da rede.
  6. Selecione o Tipo de porta.
    1. Se você selecionar Padrão, o endpoint usará a porta padrão 80 para todos os endpoints no grupo de endpoints da rede. Isso é suficiente para nosso exemplo, porque o servidor Apache está atendendo solicitações na porta 80.
    2. Se você selecionar Personalizado, insira o Número da porta do endpoint que será usado.
  7. Para adicionar mais endpoints, clique em Adicionar endpoint da rede e repita as etapas anteriores.
  8. Depois de adicionar todos os endpoints, clique em Criar.

gcloud

  1. Crie um NEG zonal (com endpoints GCE_VM_IP_PORT) usando o comando gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    É possível especificar um --default-port ao criar o NEG ou especificar um número de porta para cada endpoint. conforme mostrado na próxima etapa.

  2. Adicione endpoints a GCP_NEG_NAME.

    gcloud compute network-endpoint-groups update GCP_NEG_NAME \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,port=80' \
        --add-endpoint='instance=vm-a2,port=80'
    

Configurar o NEG de conectividade híbrida

Ao criar o NEG, use uma ZONE que minimize a distância geográfica entre o Google Cloud e o ambiente local ou de outra nuvem. Por exemplo, se você estiver hospedando um serviço em um ambiente local em Frankfurt, na Alemanha, será possível especificar a zona europe-west3-a do Google Cloud ao criar o NEG.

Além disso, se você estiver usando o Cloud Interconnect, a ZONE usada para criar o NEG precisa estar na mesma região em que o anexo do Cloud Interconnect foi configurado.

Para ver as regiões e zonas disponíveis, consulte a documentação do Compute Engine: regiões e zonas disponíveis.

Console

Para criar um grupo de endpoints de rede de conectividade híbrida:

  1. Acesse a página "Grupos de endpoints da rede" no Google Cloud Console.
    Acessar grupos de endpoints da rede
  2. Clique em Criar grupo de endpoints de rede.
  3. Insira um Nome para o NEG híbrido. Chamado de ON_PREM_NEG_NAME neste procedimento.
  4. Selecione o Tipo de grupo de endpoints da rede: grupo de endpoints da rede de conectividade híbrida (zonal).
  5. Selecione a Rede: NETWORK
  6. Selecione a Sub-rede: LB_SUBNET_NAME
  7. Selecione a Zona: ON_PREM_NEG_ZONE
  8. Insira a Porta padrão.
  9. Clique em Criar.

Adicione endpoints ao NEG de conectividade híbrida:

  1. Acesse a página "Grupos de endpoints da rede" no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique no Nome do grupo de endpoints da rede criado na etapa anterior (ON_PREM_NEG_NAME). Você verá a página Detalhes do grupo de endpoints da rede.
  3. Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede. Você verá a página Adicionar endpoint de rede.
  4. Insira o endereço IP do novo endpoint da rede.
  5. Selecione o Tipo de porta.
    1. Se você selecionar Padrão, o endpoint usará a porta padrão para todos os endpoints no grupo de endpoints da rede.
    2. Se você selecionar Personalizado, insira um Número de porta diferente para ser usado pelo endpoint.
  6. Para adicionar mais endpoints, clique em Adicionar endpoint da rede e repita as etapas anteriores.
  7. Depois de adicionar todos os endpoints que não são do Google Cloud, clique em Criar.

gcloud

  1. Crie um NEG de conectividade híbrida usando o comando gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. Adicione o endpoint da VM de back-end local a ON_PREM_NEG_NAME:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

Use esse comando para adicionar os endpoints de rede que você configurou anteriormente no local ou no seu ambiente de nuvem. Repita --add-endpoint quantas vezes forem necessárias.

Repita essas etapas para criar vários NEGs híbridos se necessário.

Configurar o balanceador de carga

Console

gcloud

  1. Crie uma verificação de integridade para os back-ends.
       gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
           --region=REGION \
           --use-serving-port
       
    As sondagens de verificação de integridade para back-ends de NEG híbridos se originam de proxies Envoy na sub-rede somente proxy, enquanto as sondagens para back-ends NEG zonais são originadas dos [intervalos de IP de sondagem central do Google](/load-balancing/docs/health-check-concepts#ip-ranges).
  2. Crie um serviço de back-end para back-ends baseados no Google Cloud. Adicione o NEG zonal e o NEG de conectividade híbrida como back-ends a esse serviço de back-end.
      gcloud compute backend-services create BACKEND_SERVICE \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --protocol=HTTP \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --health-checks-region=REGION \
          --region=REGION
      
  3. Adicione o NEG zonal como um back-end ao serviço de back-end:
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=GCP_NEG_NAME \
        --network-endpoint-group-zone=GCP_NEG_ZONE
    
    Para detalhes sobre como configurar o modo de balanceamento, consulte a documentação da gcloud CLI para o --max-rate-per-endpoint parâmetro.
  4. Adicione o NEG híbrido como um back-end ao serviço de back-end.
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=ON_PREM_NEG_NAME \
        --network-endpoint-group-zone=ON_PREM_NEG_ZONE
    
    Para detalhes sobre como configurar o modo de balanceamento, consulte a documentação da gcloud CLI para o --max-rate-per-endpoint parâmetro.
  5. Crie um mapa de URL para encaminhar solicitações recebidas para o serviço de back-end :
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service BACKEND_SERVICE \
        --region=REGION
    
  6. Opcional: execute esta etapa se você estiver usando HTTPS entre o cliente e o balanceador de carga. Ele não é necessário para balanceadores de carga HTTP.

    É possível criar certificados do Compute Engine ou do Gerenciador de certificados. Use um dos métodos a seguir para criar certificados usando o Gerenciador de certificados:

    • Certificados regionais autogerenciados. Para informações sobre como criar e usar certificados autogerenciados regionais, consulte Implantar um certificado autogerenciado regional. Mapas de certificados não são compatíveis.

    • Certificados regionais gerenciados pelo Google. Mapas de certificados não são compatíveis.

      Os seguintes tipos de certificados regionais gerenciados pelo Google são aceitos pelo Gerenciador de certificados:

    • Depois de criar certificados, anexe o certificado diretamente ao proxy de destino.

      Para criar um recurso de certificado SSL autogerenciado do Compute Engine:
      gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
          --certificate CRT_FILE_PATH \
          --private-key KEY_FILE_PATH
      
    • Crie um proxy de destino HTTP(S) para encaminhar solicitações ao mapa de URLs.

      Para um balanceador de carga HTTP, crie um proxy de destino HTTP:
      gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
          --url-map=URL_MAP_NAME \
          --url-map-region=REGION \
          --region=REGION
      
      Para um balanceador de carga HTTPS, crie um proxy de destino HTTPS. O proxy é a parte do balanceador de carga onde é armazenado o certificado SSL para balanceamento de carga HTTPS. Portanto, nesta etapa, também é possível carregar o certificado.
      gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
          --ssl-certificates=SSL_CERTIFICATE_NAME \
          --url-map=URL_MAP_NAME \
          --url-map-region=REGION \
          --region=REGION
      
    • Crie uma regra de encaminhamento para encaminhar as solicitações recebidas para o proxy. Não use a sub-rede somente proxy para criar a regra de encaminhamento.

      Para um balanceador de carga HTTP:
        gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --network=NETWORK \
            --subnet=LB_SUBNET_NAME \
            --address=LB_IP_ADDRESS \
            --ports=80 \
            --region=REGION \
            --target-http-proxy=TARGET_HTTP_PROXY_NAME \
            --target-http-proxy-region=REGION
      
      Para um balanceador de carga HTTPS:
        gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --network=NETWORK \
            --subnet=LB_SUBNET_NAME \
            --address=LB_IP_ADDRESS \
            --ports=443 \
            --region=REGION \
            --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
            --target-https-proxy-region=REGION
      

Como conectar seu domínio ao balanceador de carga

Após a criação do balanceador de carga, anote o endereço IP associado a ele, por exemplo, 30.90.80.100. Para apontar seu domínio para o balanceador de carga, crie um registro A usando o serviço de registro de domínio. Se você adicionou vários domínios ao certificado SSL, adicione um registro A para cada um deles, todos apontando para o endereço IP do balanceador de carga. Por exemplo, para criar registros A para www.example.com e example.com, use o seguinte:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Se você usa o Cloud DNS como provedor de DNS, consulte Adicionar, modificar e excluir registros.

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

Neste exemplo, criamos uma VM cliente (vm-client) na mesma região dos NEGs de back-end. O cliente é usado para validar a configuração do balanceador de carga e demonstrar o comportamento esperado, conforme descrito na seção de teste.

Console

  1. Acesse a página "Instâncias de VMs" no Console do Google Cloud.
    Acessar instâncias de VM
  2. Clique em Criar instância.
  3. Defina o Nome como vm-client.
  4. Defina a Zona como CLIENT_VM_ZONE.
  5. Clique em Opções avançadas e faça as seguintes alterações:
    • Clique em Rede e adicione allow-ssh a Tags de rede.
    • Clique no botão de editar em Interfaces de rede e faça as alterações a seguir. Depois, clique em Concluído:
      • Rede: NETWORK
      • Sub-rede: LB_SUBNET_NAME
      • IP interno primário: temporário (automático)
      • IP externo: temporário
  6. Clique em Criar.

gcloud

A VM cliente pode estar em qualquer zona na mesma região que o balanceador de carga e usar qualquer sub-rede nessa região. Neste exemplo, o cliente está na zona CLIENT_VM_ZONE e usa a mesma sub-rede das VMs de back-end.

gcloud compute instances create vm-client \
    --zone=CLIENT_VM_ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=LB_SUBNET_NAME

Enviar tráfego ao balanceador de carga

Agora que você configurou o balanceador de carga, é possível começar a enviar tráfego para o endereço IP dele.

  1. Use o SSH para se conectar à instância do cliente.

    gcloud compute ssh client-vm \
      --zone=CLIENT_VM_ZONE
    
  2. Anote o endereço IP do balanceador de carga. Use o comando compute addresses describe para ver o endereço IP alocado:

    gcloud compute addresses describe l7-ilb-ip-address \
      --region=us-west1
    
  3. Verifique se o balanceador de carga está disponibilizando nomes de host de back-end conforme o esperado. Substitua IP_ADDRESS pelo endereço IP do balanceador de carga.

    Para fazer testes em HTTP, execute:

    curl IP_ADDRESS
    

    Para fazer testes em HTTPS, execute:

  curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS:443
  

A sinalização -k faz com que o curl ignore a validação do certificado.

O teste dos endpoints que não são do Google Cloud depende do serviço que você expôs pelo endpoint NEG híbrido.

Outras opções de configuração

Nesta seção, o exemplo é detalhado para fornecer outras opções de configuração. Todas as tarefas são opcionais. É possível realizá-las em qualquer ordem.

Atualizar tempo limite do sinal de atividade HTTP do cliente

O balanceador de carga criado nas etapas anteriores foi configurado com um valor padrão para o tempo limite do sinal de atividade HTTP do cliente.

Para atualizar o tempo limite do sinal de atividade HTTP do cliente, use as instruções a seguir.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no nome do balanceador de carga que você quer modificar.
  3. Clique em Editar.
  4. Clique em Configuração de front-end.
  5. Expanda Recursos avançados. Em Tempo limite de sinal de atividade HTTP, insira um valor de tempo limite.
  6. Clique em Atualizar.
  7. Para revisar as alterações, clique em Analisar e finalizar e depois em Atualizar.

gcloud

Para um balanceador de carga HTTP, atualize o proxy HTTP de destino usando o comando gcloud compute target-http-proxies update.

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region=REGION
      

Para um balanceador de carga HTTPS, atualize o proxy HTTPS de destino usando o comando gcloud compute target-https-proxies update.

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region REGION
      

Substitua:

  • TARGET_HTTP_PROXY_NAME: o nome do proxy HTTP de destino.
  • TARGET_HTTPS_PROXY_NAME: o nome do proxy HTTPS de destino.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: o valor do tempo limite do sinal de atividade HTTP de 5 a 600 segundos.

A seguir