Antes de seguir este guia, familiarize-se com a documentação de visão geral do NEG na Internet, incluindo as limitações.
O diagrama de arquitetura a seguir mostra um front-end regional do balanceador de carga de rede do proxy interno com um back-end externo.
Permissões
Para seguir este guia, você precisa criar um NEG da Internet e criar ou modificar um balanceador de carga de rede de proxy em um projeto. É necessário ser proprietário ou
editor (roles/owner
ou roles/editor
) de um projeto ou ter os seguintes
papéis de IAM do Compute Engine.
Tarefa | Papel necessário |
---|---|
Criar e modificar componentes do balanceador de carga | Administrador de rede do Compute ( roles/compute.networkAdmin )
|
Criar e modificar NEGs | Administrador da instância do Compute ( roles/compute.instanceAdmin )
|
Configurar seu ambiente de back-end externo fora do Google Cloud
Para configurar seu ambiente de back-end externo, consulte as seções a seguir.
Configurar endpoints da rede
Configure um endpoint de rede para expor seu back-end externo ao Google Cloud. Verifique se o endpoint, que pode ser uma combinação de IP:Porta ou um nome de domínio totalmente qualificado (FQDN, na sigla em inglês) e porta, pode ser acessado pela Internet. Posteriormente, esse endpoint será referenciado pelo NEG da Internet.
Para requisitos de configuração detalhados para endpoints NEG da Internet, consulte a Visão geral de NEGs da Internet.
Permitir que o back-end externo receba tráfego do Google Cloud
Esta etapa pode ser concluída após a criação da sub-rede somente proxy e a configuração do gateway do Cloud NAT.
Para permitir que as solicitações do Google Cloud alcancem seu back-end externo, você precisa executar as seguintes etapas:
- Configure um gateway do Cloud NAT com endereços IP usados para o tráfego de saída do Google Cloud. O gateway mapeia o intervalo de sub-rede somente proxy para os endereços IP externos. Para ver as etapas, consulte Configurar um gateway do Cloud NAT.
- Verifique se o ambiente de back-end externo está configurado para permitir que o tráfego do Google Cloud alcance o back-end externo. Por exemplo, se você usou endereços IP pré-reservados para o gateway NAT, use a lista de permissões desses endereços no seu ambiente externo. Provavelmente, você precisará trabalhar com o administrador de segurança ou de rede do seu ambiente externo para configurar isso.
Configurar ambiente do Google Cloud
Você precisará de uma rede VPC com duas sub-redes: uma para os componentes do balanceador de carga e outra para a sub-rede somente proxy da região. Em seguida, crie o balanceador de carga com um back-end de NEG da Internet.
Criar a rede VPC e sub-rede
Essa sub-rede é usada para criar os componentes do balanceador de carga.
console do Cloud
- No Console do Google Cloud, acesse a página Redes VPC.
Acessar redes VPC - Clique em Criar rede VPC.
- Digite um Nome: 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: LB_SUBNET_NAME
- Região: REGION
- Intervalo de endereços IP: LB_SUBNET_RANGE
- Clique em Concluído.
- Clique em Criar.
gcloud
Crie a rede VPC personalizada usando o comando
gcloud compute networks create
:gcloud compute networks create LB_NETWORK \ --subnet-mode=custom
Crie uma sub-rede na rede LB_NETWORK.
gcloud compute networks subnets create LB_SUBNET_NAME \ --network=LB_NETWORK \ --range=LB_SUBNET_RANGE \ --region=REGION
Configurar a sub-rede somente proxy
Essa sub-rede somente proxy é usada por todos os balanceadores de carga regionais baseados no Envoy na região REGION.
Console
- No Console do Google Cloud, acesse a página Redes VPC.
Acessar redes VPC - Selecione uma Rede na lista.
- Clique em Add subnet.
- Digite um Nome: PROXY_ONLY_SUBNET_NAME.
- Selecionar uma região: REGION.
- Defina Finalidade como Proxy gerenciado regional.
- Digite um Intervalo de endereço IP: PROXY_ONLY_SUBNET_RANGE.
- 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=LB_NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
Configurar um gateway do Cloud NAT
Antes de configurar o gateway do Cloud NAT, revise as limitações e considerações sobre preço associadas. Para detalhes, consulte NEGs regionais: usar um gateway do Cloud NAT.Os comandos a seguir descrevem como configurar um gateway do Cloud NAT. O gateway do Cloud NAT pode ser configurado para usar endereços IP externos NAT automáticos, em que a alocação é baseada na demanda, ou para usar um conjunto pré-reservado manualmente de endereços IP externos. O gateway mapeia o intervalo de sub-rede somente proxy para os endereços IP externos.
Configurar endereços IP alocados NAT automáticos
Ao criar um gateway do Cloud NAT com alocação automática de endereço IP NAT, é possível especificar os Níveis de serviço de rede (nível Premium ou Standard) com os quais o gateway do Cloud NAT aloca os endereços IP.
Console
No Console do Google Cloud, acesse a página do Cloud NAT.
Clique em Primeiros passos ou Criar gateway Cloud NAT.
Digite um nome de gateway LB_NAT_CONFIG.
Em Tipo de NAT, selecione Público.
Na lista Rede, selecione LB_NETWORK.
Na lista Região, selecione REGION.
Crie um Cloud Router na região.
Em Tipo de endpoint de origem, selecione Balanceadores de carga de proxy gerenciados.
Na lista Origem, selecione Personalizado.
- Em Sub-redes, selecione PROXY_ONLY_SUBNET_NAME.
Na lista Endereços IP do Cloud NAT, selecione Automático (recomendado).
Em Nível de serviço de rede, escolha Premium ou Standard.
Clique em Criar.
gcloud
Use endereços IP alocados dinamicamente se o ambiente de back-end externo não precisar de uma lista de permissões de endereços IP específicos do Google Cloud que podem enviar tráfego ao back-end externo.
Criar um Cloud Router
gcloud beta compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
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:
LB_NAT_CONFIG
: o nome da configuração NAT.ROUTER_NAME
: o nome do seu Cloud Router.REGION
: a região do NAT a ser excluída. Se não for especificado, talvez seja solicitado que você selecione uma região (apenas no modo interativo).PROXY_ONLY_SUBNET_NAME
: o nome da sub-rede somente proxy.
Configurar endereços IP alocados manualmente
Use endereços IP alocados manualmente somente se o ambiente de back-end externo exigir o uso de uma lista de permissões de endereços IP específicos do Google Cloud. Se o ambiente de back-end externo não precisar de uma lista de permissões, use a alocação dinâmica, conforme mostrado anteriormente.
Ao criar um gateway do Cloud NAT, você tem a opção de atribuir manualmente endereços IP NAT de nível Premium, Standard ou ambos, sujeitos a determinadas conditions.
Console
No Console do Google Cloud, acesse a página do Cloud NAT.
Clique em Primeiros passos ou Criar gateway Cloud NAT.
Digite um nome de gateway LB_NAT_CONFIG.
Na lista Rede, selecione LB_NETWORK.
Na lista Região, selecione REGION.
Selecione ou crie um Cloud Router na região.
Em Tipo de endpoint de origem, selecione Balanceadores de carga de proxy gerenciados.
Na lista Origem, selecione Personalizado.
- Em Sub-redes, selecione PROXY_ONLY_SUBNET_NAME.
Na lista Endereços IP do Cloud NAT, selecione Manual.
Em Nível de serviço de rede, escolha Premium ou Standard.
Selecione ou crie um endereço IP externo estático reservado para usar para NAT.
Se desejar especificar endereços IP adicionais, clique em Adicionar endereço IP e selecione ou crie um endereço IP externo estático adicional reservado.
Clique em Criar.
gcloud
Crie os endereços IP. Como o gateway faz a conversão NAT um para um, é preciso garantir que o pool de endereços IP reservados seja grande o suficiente para processar a quantidade de tráfego que você espera. A insuficiência de endereços IP NAT alocados pode resultar em perda de tráfego.
gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \ --region=REGION
Criar um Cloud Router
gcloud compute routers create ROUTER_NAME \ --network=LB_NETWORK \ --region=REGION
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:
LB_NAT_CONFIG
: o nome da configuração NAT.ROUTER_NAME
: o nome do seu Cloud Router.PROXY_ONLY_SUBNET_NAME
: o nome da sub-rede somente proxy.REGION
: a região do NAT a ser excluída. Se não for especificado, talvez seja solicitado que você selecione uma região (apenas no modo interativo).
Para mais informações, consulte Especificar intervalos de sub-rede para NAT na documentação do Cloud NAT.
Use uma lista de permissões dos intervalos de endereços IP NAT no ambiente de back-end externo, para que o back-end externo possa receber tráfego do Google Cloud.
Reserve o endereço IP do balanceador de carga
Reserve um endereço IP interno para o balanceador de carga.
Console
É possível reservar um endereço IP interno independente usando o Console do Google Cloud.
- Acesse a página Redes VPC.
- Clique na rede usada para configurar a conectividade híbrida entre os ambientes.
- Clique em Endereços IP internos estáticos e em Reservar endereço estático.
- Digite um Nome: LB_IP_ADDRESS.
- Em Sub-rede, selecione LB_SUBNET_NAME.
- 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ê.
- Se você quiser usar esse endereço IP com várias regras de encaminhamento, em Objetivo, escolha Compartilhado.
- Clique em Reservar para concluir o processo.
gcloud
Usando a CLI gcloud, execute o comando
compute addresses create
:gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --subnet=LB_SUBNET_NAME \
Use o comando
compute addresses describe
para ver o endereço IP alocado:gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
Configurar o NEG da Internet
É possível criar um NEG da Internet com endpoints INTERNET_FQDN_PORT
ou INTERNET_IP_PORT
.
Console
Criar um NEG com endpoints INTERNET_FQDN_PORT
No console do Google Cloud, acesse a página Grupo de endpoints de rede.
Clique em Criar grupo de endpoints de rede.
Especifique um INTERNET_NEG_NAME para seu NEG da Internet. Saiba mais em Convenção de nomenclatura de recursos.
Na lista Tipo de grupo de endpoints de rede, selecione Grupo de endpoints de rede (Internet) e, em seguida, faça isto:
- Na lista Escopo, selecione Regional.
- Opcional: na lista Região, mude a REGION desse NEG.
- Na lista Rede, selecione LB_NETWORK.
- Na caixa Porta padrão, digite DEFAULT_PORT_NUMBER.
- Na lista Adicionar endpoints via, selecione Nome de domínio totalmente qualificado e porta.
- Selecione Criar.
Adicione INTERNET_FQDN_PORT
endpoints ao NEG
No console do Google Cloud, acesse a página Grupo de endpoints de rede.
- Clique em INTERNET_NEG_NAME.
Insira o Nome de domínio totalmente qualificado, como
myorg.example.com
. É preciso especificar objetos FQDN na sintaxe padrão de FQDN.Opcional: em Tipo de porta, selecione Personalizado. Se o Tipo de porta for
Default
, a porta padrão do NEG será usada.- Na caixa Número da porta, digite PORT_NUMBER_1.
- Selecione Criar.
Criar um NEG com endpoints INTERNET_IP_PORT
No console do Google Cloud, acesse a página Grupo de endpoints de rede.
Clique em Criar grupo de endpoints de rede.
Especifique um nome INTERNET_NEG_NAME para seu NEG da Internet. Saiba mais em Convenção de nomenclatura de recursos.
Na lista Tipo de grupo de endpoints de rede, selecione Grupo de endpoints de rede (Internet) e, em seguida, faça isto:
- Na lista Escopo, selecione Regional.
- Opcional: na lista Região, mude a REGION desse NEG.
- Na lista Rede, selecione LB_NETWORK.
- Na caixa Porta padrão, digite DEFAULT_PORT_NUMBER.
- Na lista Adicionar endpoints via, selecione IP e porta.
- Selecione Criar.
Adicione INTERNET_IP_PORT
endpoints ao NEG
No console do Google Cloud, acesse a página Grupo de endpoints de rede.
- Clique em INTERNET_NEG_NAME.
- No campo Endereço IP, digite IP_ADDRESS_1.
Opcional: na lista Tipo de porta, selecione Personalizado. Se o Tipo de porta for
Default
, a porta padrão do NEG será usada.- No campo Número da porta, digite PORT_NUMBER_1.
- Selecione Criar.
gcloud
Para criar um NEG com endpoints INTERNET_FQDN_PORT
:
Crie o recurso de 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
Adicione endpoints ao NEG. Se uma porta não for especificada, a porta padrão do NEG será usada.
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:
FULLY_QUALIFIED_DOMAIN_NAME
: o nome de domínio totalmente qualificado do endpointPORT_NUMBER
: o número da porta do endpoint
É possível adicionar até 256 endpoints por NEG.
Se seu domínio puder ser resolvido pela Internet, nenhuma outra configuração precisará ser definida no DNS. No entanto, se você estiver usando FQDNs particulares, será necessário configurar o Cloud DNS para facilitar a resolução de DNS. O nome precisa estar hospedado no Cloud DNS ou ser resolvido via encaminhamento de DNS do Cloud DNS para um DNS local.
Comece criando uma zona do Cloud DNS para hospedar os registros DNS no seu projeto. Em seguida, adicione os registros DNS a ele. Consulte a documentação do Cloud DNS para ver etapas de configuração específicas.
Para criar um NEG com endpoints INTERNET_IP_PORT
:
Crie o recurso de NEG.
gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \ --network-endpoint-type=INTERNET_IP_PORT \ --default-port=DEFAULT_PORT_NUMBER \ --network=LB_NETWORK \ --region=REGION
Adicione endpoints ao NEG. Se uma porta não for especificada, a porta padrão do NEG será usada.
gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \ --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \ [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \] --region=REGION
Substitua:
IP_ADDRESS
: o endereço IP do endpointPORT_NUMBER
: o número da porta do endpoint
É possível repetir essa etapa para adicionar até 256 endpoints por NEG.
Criar 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
- Digite um Nome do balanceador de carga.
- Em Região, selecione REGION.
- 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_NAME.
- Em Intervalo de endereços IP, insira PROXY_ONLY_SUBNET_RANGE.
- Clique em Adicionar.
Configuração de front-end
- Clique em Configuração de front-end.
- Digite um Nome.
- Em Sub-rede, selecione LB_SUBNET_NAME.
- Em Endereço IP, selecione o endereço IP reservado anteriormente: LB_IP_ADDRESS
- Em Número da porta, especifique um único número de porta entre 1 e 65.535. A regra de encaminhamento encaminha pacotes com uma porta de destino correspondente.
- Clique em Concluído.
Configuração de back-end
- Clique em Configuração de back-end.
- Clique em Serviços e buckets de back-end.
- Clique em Criar um serviço de back-end.
- Digite um nome.
- Para o tipo de back-end, selecione Grupo de endpoints da rede na Internet.
- Em Protocol, selecione TCP.
- Em Back-ends, na janela Novo back-end, selecione o Grupo de endpoints de rede regional da Internet criado na etapa anterior.
- Clique em Concluído.
- Configure a verificação de integridade:
- Em Verificação de integridade, selecione Criar verificação de integridade.
- Defina o nome da verificação de integridade como TCP_HEALTH_CHECK_NAME.
- Em Protocol, selecione TCP.
- Defina a Porta como
80
. - Mantenha os valores padrão restantes e clique em Salvar.
- Clique em Criar.
Revisar e finalizar
- Clique em Analisar e finalizar.
- Se estiver tudo certo, clique em Criar.
gcloud
- Opcional: crie uma verificação de integridade. As sondagens de verificação de integridade para back-ends externos usam as verificações de integridade distribuídas do Envoy e, posteriormente, são convertidas por NAT.
gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- Crie um serviço de back-end:
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --health-checks=TCP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- Adicione o NEG da Internet ao serviço de back-end:
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=INTERNET_NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=INTERNET_NEG_NAME \ --network-endpoint-group-region=REGION \ --region=REGION
Crie um proxy TCP de destino para encaminhar solicitações ao serviço de back-end.
gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --region=REGION
Crie uma regra de encaminhamento para encaminhar as solicitações recebidas para o proxy. Para "--ports", especifique um único número de porta entre 1 e 65.535. A regra de encaminhamento encaminha pacotes com uma porta de destino correspondente.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network-tier=PREMIUM \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --target-tcp-proxy=TARGET_TCP_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --region=REGION \ --ports=PORT_NUMBER
Testar o 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.
Criar uma VM cliente
No exemplo, é criada uma VM de cliente (vm-client
) na mesma região do balanceador
de carga. O cliente é usado para validar a configuração
do balanceador de carga e demonstrar o comportamento esperado.
gcloud
A VM cliente pode estar em qualquer zona na mesma REGION que o balanceador de carga e usar qualquer sub-rede na mesma rede VPC.
gcloud compute instances create vm-client \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh \ --network=LB_NETWORK \ --subnet=LB_SUBNET_NAME \ --zone=ZONE
Enviar tráfego ao balanceador de carga
Pode levar alguns minutos para que a configuração do balanceador de carga seja propagada após sua primeira implantação.
Conecte-se via SSH à instância do cliente.
gcloud compute ssh vm-client \ --zone=ZONE
Verifique se o balanceador de carga está disponibilizando nomes de host de back-end conforme o esperado.
Use o comando
compute addresses describe
para ver o endereço IP do balanceador de carga:gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
Anote o endereço IP.
É possível usar
curl
para enviar tráfego ao balanceador de carga no endereço IP e na porta especificados ao criar a regra de encaminhamento do balanceador de carga. Testar se os back-ends de NEG da Internet estão respondendo a solicitações depende do serviço em execução nos endpoints externos.
Outras opções de configuração
Para ativar ainda mais recursos no balanceador de carga de rede do proxy interno regional, como o acesso global (se os clientes estiverem em uma região diferente), consulte Configurar um balanceador de carga de aplicativo interno com grupo de instâncias de VM back-ends: configuração adicional.
A seguir
- 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.