Configure um balanceador de carga de aplicações interno regional com um back-end externo

O guia mostra como configurar um Application Load Balancer interno regional que envia pedidos por proxy para um back-end externo. Um back-end externo é um ponto final que é externo ao Google Cloud.

Antes de seguir este guia, familiarize-se com a documentação de vista geral do NEG da Internet, incluindo as limitações.

O diagrama de arquitetura seguinte mostra um front-end do Application Load Balancer interno regional com um back-end externo.

Um balanceador de carga de aplicações interno regional com um back-end externo.
Figura 1. Um balanceador de carga de aplicações interno regional com um back-end externo (clique para aumentar).

Autorizações

Para seguir este guia, tem de criar um NEG de Internet e criar ou modificar um Application Load Balancer num projeto. Deve ser proprietário ou editor (roles/owner ou roles/editor) do projeto ou ter ambas as seguintes funções do IAM do Compute Engine.

Tarefa Função necessária
Crie e modifique componentes do balanceador de carga Administrador de rede de Calcular
(roles/compute.networkAdmin)
Crie e modifique NEGs Administrador de instância de computação
(roles/compute.instanceAdmin)

Configure o ambiente de back-end externo fora Google Cloud

Para configurar o ambiente de back-end externo, consulte as secções seguintes.

Configure pontos finais de rede

Configure um ponto final de rede para expor o seu back-end externo ao Google Cloud. Certifique-se de que o ponto final, ou uma combinação de IP:Port, ou um nome de domínio totalmente qualificado (FQDN) e uma porta, está acessível através da Internet. Este ponto final é referenciado posteriormente a partir do NEG da Internet.

Para ver os requisitos de configuração detalhados para pontos finais de NEG da Internet, consulte a vista geral dos NEGs da Internet.

Permitir que o back-end externo receba tráfego de Google Cloud

Pode concluir este passo depois de criar a sub-rede apenas de proxy e configurar o gateway Cloud NAT.

Para permitir que os pedidos de Google Cloud alcancem o seu back-end externo, tem de executar os seguintes passos:

  1. Configure um gateway NAT da nuvem com endereços IP que são usados para o tráfego de saída de Google Cloud. O gateway mapeia o intervalo de sub-rede apenas de proxy para os endereços IP externos. Para ver os passos, consulte o artigo Configure um gateway Cloud NAT.
  2. Certifique-se de que o ambiente de back-end externo está configurado para permitir que o tráfego de Google Cloud alcance o back-end externo. Por exemplo, se usou endereços IP pré-reservados para o gateway NAT, tem de adicionar esses endereços IP à lista de autorizações no seu ambiente externo. É provável que tenha de trabalhar com o administrador de rede ou de segurança do seu ambiente externo para configurar esta opção.

Configure o seu Google Cloud ambiente

Precisa de uma rede VPC com duas sub-redes: uma para os componentes do balanceador de carga e outra para a sub-rede só de proxy da região. Em seguida, cria o balanceador de carga com um back-end do NEG da Internet.

Crie a rede de VPC e a sub-rede

Esta sub-rede é usada para criar os componentes do balanceador de carga.

Cloud Console

  1. Na Google Cloud consola, aceda à página Redes VPC.
    Aceda a redes de VPC
  2. Clique em Criar rede de VPC.
  3. Introduza um Nome: LB_NETWORK.
  4. Na secção Sub-redes:
    • 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: LB_SUBNET_NAME
      • Região: REGION
      • Intervalo de endereços IP: LB_SUBNET_RANGE
    • Clique em Concluído.
  5. Clique em Criar.

gcloud

  1. Crie a rede VPC personalizada com o comando gcloud compute networks create:

    gcloud compute networks create LB_NETWORK \
      --subnet-mode=custom
    
  2. Crie uma sub-rede na LB_NETWORK rede.

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

Configure a sub-rede só de proxy

Esta sub-rede apenas de proxy é usada por todos os equilibradores de carga baseados no Envoy regionais na região REGION.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.
    Aceda a redes de VPC
  2. Selecione uma Rede na lista.
  3. Clique em Adicionar sub-rede.
  4. Introduza um Nome: PROXY_ONLY_SUBNET_NAME.
  5. Selecione uma região: REGION.
  6. Defina Purpose como Regional Managed Proxy.
  7. Introduza um intervalo de endereços IP: PROXY_ONLY_SUBNET_RANGE.
  8. Clique em Adicionar.

gcloud

Crie a sub-rede só de 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=LB_NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Configure um gateway do Cloud NAT

Antes de configurar o gateway Cloud NAT, certifique-se de que reviu as limitações associadas e as considerações de preços. Para ver detalhes, consulte o artigo NEGs regionais: use um gateway Cloud NAT.

Os comandos seguintes descrevem como configurar um gateway NAT da Cloud. O gateway Cloud NAT pode ser configurado para usar endereços IP externos de NAT automáticos, em que a atribuição se baseia na procura, ou para usar um conjunto de endereços IP externos pré-reservados manualmente. O gateway mapeia o intervalo de sub-rede apenas de proxy para os endereços IP externos.

Configure endereços IP atribuídos de NAT automáticos

Quando cria um gateway Cloud NAT com atribuição automática de endereços IP NAT, pode especificar os níveis de serviço de rede (nível Premium ou nível Standard) a partir dos quais o gateway Cloud NAT atribui os endereços IP.

Consola

  1. Na Google Cloud consola, aceda à página Cloud NAT.

    Aceda ao Cloud NAT

  2. Clique em Começar ou Criar gateway de NAT da nuvem.

  3. Introduza um nome da gateway LB_NAT_CONFIG.

  4. Para Tipo de NAT, selecione Público.

  5. Na lista Rede, selecione LB_NETWORK.

  6. Na lista Região, selecione REGION.

  7. Crie um Cloud Router na região.

  8. Para Tipo de ponto final de origem, selecione Balanceadores de carga de proxy geridos.

  9. Na lista Origem, selecione Personalizado.

    • Para Sub-redes, selecione PROXY_ONLY_SUBNET_NAME.
  10. Na lista Endereços IP do Cloud NAT, selecione Automático (recomendado).

  11. Para Nível de serviço de rede, escolha Premium ou Padrão.

  12. Clique em Criar.

gcloud

Use endereços IP alocados dinamicamente se o seu ambiente de back-end externo não exigir que autorize endereços IP específicos que possam enviar tráfego para o back-end externo. Google Cloud

  1. Crie um Cloud Router:

    gcloud beta compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  2. Configure o gateway do Cloud NAT.

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --auto-allocate-nat-external-ips \
      --region=REGION
    

Substitua o seguinte:

  • LB_NAT_CONFIG: o nome da configuração de NAT.

  • ROUTER_NAME: o nome do seu Cloud Router.

  • REGION: a região da NAT a criar. Se não for especificado, pode ser-lhe pedido que selecione uma região (apenas no modo interativo).

  • PROXY_ONLY_SUBNET_NAME: o nome da sua sub-rede de proxy apenas.

Configure endereços IP atribuídos manualmente

Use endereços IP atribuídos manualmente apenas se o seu ambiente de back-end externo exigir que use uma lista de autorizações para endereços IP específicos. Google Cloud Se o ambiente de back-end externo não precisar de uma lista de autorizações, use a atribuição dinâmica, conforme mostrado anteriormente.

Quando cria um gateway NAT da Cloud, pode optar por atribuir manualmente endereços IP NAT a partir do nível Premium, do nível Standard ou de ambos, sujeito a determinadas condições.

Consola

  1. Na Google Cloud consola, aceda à página Cloud NAT.

    Aceda ao Cloud NAT

  2. Clique em Começar ou Criar gateway de NAT da nuvem.

  3. Introduza um nome da gateway LB_NAT_CONFIG.

  4. Na lista Rede, selecione LB_NETWORK.

  5. Na lista Região, selecione REGION.

  6. Selecione ou crie um Cloud Router na região.

  7. Para Tipo de ponto final de origem, selecione Balanceadores de carga de proxy geridos.

  8. Na lista Origem, selecione Personalizado.

    • Em Sub-redes, selecione PROXY_ONLY_SUBNET_NAME.
  9. Na lista Endereços IP do Cloud NAT, selecione Manual.

  10. Para Nível de serviço de rede, escolha Premium ou Padrão.

  11. Selecione ou crie um endereço IP externo reservado estático para usar para NAT.

  12. Se quiser especificar endereços IP adicionais, clique em Adicionar endereço IP e, em seguida, selecione ou crie um endereço IP externo reservado estático adicional.

  13. Clique em Criar.

gcloud

  1. Crie os endereços IP. Uma vez que a gateway executa a tradução NAT individual, tem de se certificar de que o conjunto de endereços IP reservados é suficientemente grande para processar o volume de tráfego esperado. Os endereços IP NAT insuficientemente atribuídos podem resultar na perda de tráfego.

    gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    
  2. Crie um Cloud Router:

    gcloud compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  3. Configure o gateway do Cloud NAT.

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    

    Substitua o seguinte:

  • LB_NAT_CONFIG: o nome da configuração de NAT.

  • ROUTER_NAME: o nome do seu Cloud Router.

  • PROXY_ONLY_SUBNET_NAME: o nome da sua sub-rede de proxy apenas.

  • REGION: a região da NAT a criar. Se não for especificado, pode ser-lhe pedido que selecione uma região (apenas no modo interativo).

Configure a atribuição dinâmica de portas

Atualize o gateway NAT da nuvem para usar o modo de atribuição dinâmica de portas para usar totalmente os endereços IP atribuídos.

gcloud

  1. Atualize o gateway do Cloud NAT. Recomendamos que defina o número mínimo de portas como 2048 e o número máximo de portas como 4096.

    gcloud compute routers nats update LB_NAT_CONFIG \
        --router=ROUTER_NAME \
        --enable-dynamic-port-allocation \
        --min-ports-per-vm=MIN_PORTS_PER_VM \
        --max-ports-per-vm=MAX_PORTS_PER_VM \
        --region=REGION
    
  2. Verifique se a atribuição dinâmica de portas está ativada e se o número mínimo e máximo de portas está definido.

    gcloud compute routers nats describe LB_NAT_CONFIG \
         --router=ROUTER_NAME \
         --region=REGION
    

    O resultado é semelhante ao seguinte:

    enableDynamicPortAllocation: true
    enableEndpointIndependentMapping: false
    endpointTypes:
    ‐ ENDPOINT_TYPE_MANAGED_PROXY_LB
    logConfig:
      enable: true
      filter: ALL
    maxPortsPerVm: 4096
    minPortsPerVm: 2048
    name: LB_NAT_CONFIG
    natIpAllocateOption: MANUAL_ONLY
    natIps:
    ‐ https://www.googleapis.com/compute/projects/PROJECT_NAME/regions/REGION/addresses/ADDRESS
    sourceSubnetworkIpRangesToNat: ALL_SUBNETWORKS_ALL_IP_RANGES
    type: PUBLIC
    

Para mais informações, consulte o artigo Especifique intervalos de sub-redes para NAT na documentação do Cloud NAT.

Certifique-se de que usa uma lista de autorizações para os intervalos de endereços IP NAT no seu ambiente de back-end externo, para que o back-end externo possa receber tráfego de Google Cloud.

Reserve o endereço IP do balanceador de carga

Reserve um endereço IP interno para o balanceador de carga.

Consola

Pode reservar um endereço IP interno autónomo através da Google Cloud consola.

  1. Aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique na rede que foi usada para configurar a conetividade híbrida entre os ambientes.
  3. Clique em Endereços IP internos estáticos e, de seguida, em Reservar endereço estático.
  4. Introduza um Nome: LB_IP_ADDRESS.
  5. Para a Sub-rede, selecione LB_SUBNET_NAME.
  6. Se quiser especificar o endereço IP a reservar, em Endereço IP estático, selecione Permitir-me escolher e, em seguida, preencha um Endereço IP personalizado. Caso contrário, o sistema atribui automaticamente um endereço IP na sub-rede.
  7. Se quiser usar este endereço IP com várias regras de encaminhamento, em Finalidade, escolha Partilhado.
  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 compute addresses describecomando para ver o endereço IP atribuído:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

Configure o NEG da Internet

Pode criar um NEG de Internet usando pontos finais INTERNET_FQDN_PORT ou pontos finais INTERNET_IP_PORT.

Consola

Crie um NEG com INTERNET_FQDN_PORT pontos finais

  1. Na Google Cloud consola, aceda à página Grupo de pontos finais de rede.

    Aceda ao grupo de pontos finais da rede

  2. Clique em Criar grupo de pontos finais de rede.

  3. Especifique um INTERNET_NEG_NAME para o seu NEG de Internet. Para mais informações, consulte o artigo Convenção de nomenclatura de recursos.

  4. Na lista Tipo de grupo de pontos finais de rede, selecione Grupo de pontos finais de rede (Internet) e, em seguida, faça o seguinte:

    • Na lista Âmbito, selecione Regional.
    • Opcional: na lista Região, altere o REGION para este NEG.
    • Na lista Rede, selecione LB_NETWORK.
    • Na caixa Porta predefinida, introduza DEFAULT_PORT_NUMBER.
    • Na lista Adicionar pontos finais através de, selecione Nome de domínio totalmente qualificado e porta.
  5. Selecione Criar.

Adicione pontos finais INTERNET_FQDN_PORT ao NEG

  1. Na Google Cloud consola, aceda à página Grupo de pontos finais de rede.

    Aceda ao grupo de pontos finais da rede

  2. Clique em INTERNET_NEG_NAME.
  3. Introduza o nome do domínio totalmente qualificado, como myorg.example.com. Tem de especificar os objetos FQDN na sintaxe FQDN padrão.

  4. Opcional: para Tipo de porta, selecione Personalizado. Se o Tipo de porta for Default, é usada a porta predefinida do NEG.

  5. Na caixa Número da porta, introduza PORT_NUMBER_1.
  6. Selecione Criar.

Crie um NEG com INTERNET_IP_PORT pontos finais

  1. Na Google Cloud consola, aceda à página Grupo de pontos finais de rede.

    Aceda ao grupo de pontos finais da rede

  2. Clique em Criar grupo de pontos finais de rede.

  3. Especifique um nome INTERNET_NEG_NAME para o NEG da Internet. Para mais informações, consulte o artigo Convenção de nomenclatura de recursos.

  4. Na lista Tipo de grupo de pontos finais de rede, selecione Grupo de pontos finais de rede (Internet) e, em seguida, faça o seguinte:

    • Na lista Âmbito, selecione Regional.
    • Opcional: na lista Região, altere o REGION para este NEG.
    • Na lista Rede, selecione LB_NETWORK.
    • Na caixa Porta predefinida, introduza DEFAULT_PORT_NUMBER.
    • Na lista Adicionar pontos finais através de, selecione IP e porta.
  5. Selecione Criar.

Adicione pontos finais INTERNET_IP_PORT ao NEG

  1. Na Google Cloud consola, aceda à página Grupo de pontos finais de rede.

    Aceda ao grupo de pontos finais da rede

  2. Clique em INTERNET_NEG_NAME.
  3. No campo Endereço IP, introduza IP_ADDRESS_1.
  4. Opcional: na lista Tipo de porta, selecione Personalizado. Se o Tipo de porta for Default, é usada a porta predefinida do NEG.

  5. No campo Número da porta, introduza PORT_NUMBER_1.
  6. Selecione Criar.

gcloud

Para criar um NEG com pontos finais INTERNET_FQDN_PORT:

  1. Crie o recurso NEG.

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_FQDN_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. Adicione pontos finais ao NEG. Se não for especificada uma porta, é usada a porta predefinida do NEG.

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \
        [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    Substitua o seguinte:

    • FULLY_QUALIFIED_DOMAIN_NAME: o nome do domínio totalmente qualificado para o ponto final
    • PORT_NUMBER: o número da porta do ponto final

    Pode adicionar até 256 pontos finais por NEG.

Se o seu domínio for resolvível através da Internet, não é necessária nenhuma outra configuração para configurar o DNS. No entanto, se estiver a usar FQDNs privados, tem de configurar o Cloud DNS para facilitar a resolução de DNS. O nome tem de estar alojado no Cloud DNS ou ser resolvível através do encaminhamento de DNS do Cloud DNS para um DNS no local.

Comece por criar uma zona do Cloud DNS para alojar os registos de DNS no seu projeto. Em seguida, adicione os registos de DNS. Consulte a