Aceda às APIs Google regionais através de backends
Este guia descreve como configurar um Application Load Balancer interno com um back-end do Private Service Connect para aceder a uma API Google regional.
Para mais informações sobre backends, consulte o artigo Acerca dos backends.
Um Application Load Balancer interno usado para o Private Service Connect pode ser acessível a partir de redes de VPC partilhada e de redes ligadas.
Funções
A função de administrador do Compute Load Balancer
(roles/compute.loadBalancerAdmin
) contém a autorização necessária para realizar
as tarefas descritas neste guia.
Serviços suportados
Consulte a lista de endpoints de serviços regionais suportados.
Antes de começar
Ative a API Compute Engine no seu projeto.
Se quiser registar a regra de encaminhamento de balanceamento de carga no Service Directory, ative a API Service Directory no seu projeto. Para configurar o Service Directory, tem de criar a regra de encaminhamento através da CLI do Google Cloud ou da API.
Crie uma sub-rede só de proxy se ainda não tiver uma. Tem de existir uma única sub-rede apenas de proxy na rede VPC e na região onde pretende criar o Application Load Balancer interno. Esta sub-rede é usada por todos os equilibradores de carga de aplicações internos nessa rede e região.
Se ainda não os tiver, crie uma chave privada e um certificado autogerido para o seu domínio. Consulte o passo 1 da utilização de certificados SSL autogeridos. Precisa de uma chave privada e um certificado para criar o proxy HTTPS de destino quando configurar o equilibrador de carga.
Crie um grupo de pontos finais de rede
Para cada serviço que quer disponibilizar através do balanceador de carga, crie um grupo de pontos finais da rede (NEG) do Private Service Connect.
Consola
Na Google Cloud consola, aceda à página Grupos de pontos finais de rede.
Clique em Criar grupo de pontos finais de rede.
Introduza um Nome para o grupo de pontos finais de rede.
Para o Tipo de grupo de pontos finais da rede, selecione Grupo de pontos finais da rede (Private Service Connect).
Selecione a Região para o grupo de pontos finais de rede.
Selecione o Serviço de destino para o grupo de pontos finais da rede.
Clique em Criar.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION
Substitua o seguinte:
NEG_NAME
: um nome para o grupo de pontos finais da rede.TARGET_SERVICE
: o serviço de destino ao qual quer estabelecer ligação. Consulte a lista de pontos finais de serviço regionais suportados.REGION
: a região na qual criar o grupo de pontos finais de rede. A região tem de ser a mesma que a do serviço ao qual quer associar o domínio.
Configure o balanceador de carga
Todos os componentes do balanceador de carga têm de ser criados na mesma região que o grupo de pontos finais da rede do Private Service Connect.
Consola
Selecione o tipo de balanceador de carga
Na Google Cloud consola, aceda à página Equilíbrio de carga.
- Clique em Criar equilibrador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicações (HTTP/HTTPS) e clique em Seguinte.
- Para Público ou interno, selecione Interno e clique em Seguinte.
- Para a Implementação em várias regiões ou numa única região, selecione Melhor para cargas de trabalho regionais e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Introduza um nome para o equilibrador de carga.
- Selecione uma região para o balanceador de carga.
Selecione uma rede para o balanceador de carga.
A rede tem de conter uma sub-rede só de proxy na região em que está a criar o NEG e o balanceador de carga. Se não tiver uma, pode clicar em Reservar sub-rede para criar uma.
Mantenha a janela aberta para continuar.
Configuração do back-end
O grupo de pontos finais da rede do Private Service Connect é um tipo de back-end do balanceador de carga. Cria um serviço de back-end para cada back-end que quer configurar.
- Clique em Configuração de back-end.
Para cada grupo de pontos finais da rede do Private Service Connect que quer configurar, crie um serviço de back-end.
- No menu Criar ou selecionar serviços de back-end, selecione Criar um serviço de back-end.
- Introduza um nome para o serviço de back-end.
- Defina o Tipo de back-end como Grupo de pontos finais da rede do Private Service Connect.
- Defina o tipo de destino do Private Service Connect como API Google regional.
Selecione HTTPS para o protocolo.
Na secção Back-ends, clique no menu Novo back-end e selecione o grupo de pontos finais da rede do Private Service Connect.
Se precisar de criar um novo grupo de pontos finais da rede do Private Service Connect, clique em Criar grupo de pontos finais da rede do Private Service Connect.
Regras de encaminhamento
O conjunto de regras para encaminhar pedidos HTTPS recebidos para serviços de back-end específicos ou contentores de back-end é denominado mapa de URLs. Para saber mais acerca dos mapas de URLs, consulte a vista geral dos mapas de URLs.
Se estiver a configurar apenas um serviço de back-end para o balanceador de carga, a regra de encaminhamento predefinida é suficiente e pode avançar para a configuração de front-end.
- Se tiver mais do que um serviço de back-end, clique em Regras de encaminhamento.
- Selecione Regra simples de anfitrião e caminho.
- Para cada back-end, faça o seguinte:
- Adicione uma regra de anfitrião e caminho.
- Para Anfitrião, introduza o nome de anfitrião que vai ser usado para enviar pedidos a este serviço, por exemplo,
pubsub.example.com
. - Para Caminhos, introduza o caminho, por exemplo,
/*
. - Para Back-ends, selecione o serviço de back-end.
Configuração da interface
- Clique em Configuração do front-end.
- Clique em Adicionar IP e porta do front-end.
- Introduza um nome para o equilibrador de carga.
- No campo Protocolo, selecione HTTPS (inclui HTTP/2).
- Selecione uma sub-rede para o balanceador de carga.
- Certifique-se de que a Porta está definida como
443
para permitir o tráfego HTTPS. Para Endereço IP, selecione um endereço IP no menu.
Se quiser reservar um novo endereço IP, clique em Criar endereço IP.
Clique na lista pendente Certificado.
- Se já tiver um recurso de certificado SSL autogerido que quer usar, selecione-o no menu.
- Caso contrário, selecione Criar um novo certificado.
- Introduza um Nome para o recurso de certificado.
- Nos campos adequados, carregue os seus ficheiros formatados em PEM:
- Certificado
- Chave privada
- Clique em Criar.
Clique em Concluído.
Reveja e finalize
- Clique em Rever e finalizar para rever a configuração.
- Clique em Criar.
gcloud
Para cada grupo de pontos finais de rede que criou, crie um serviço de back-end.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --region=REGION
Substitua o seguinte:
BACKEND_SERVICE_NAME
: o nome do serviço de back-end.REGION
: a região na qual criar o serviço de back-end.
Para cada serviço de back-end que criou, adicione o NEG correspondente ao serviço de back-end.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=REGION
Substitua o seguinte:
BACKEND_SERVICE_NAME
: o nome do serviço de back-end.NEG_NAME
: o nome do grupo de pontos finais da rede.REGION
: a região para o back-end.
Crie um mapa de URLs para o balanceador de carga.
Um mapa de URLs tem de fazer referência a um serviço de back-end predefinido. Se estiver a configurar o balanceador de carga com um serviço de back-end, defina esse serviço de back-end como o predefinido. Se estiver a configurar o equilibrador de carga para usar vários serviços de back-end, referenciados por regras de anfitrião e correspondências de caminhos que criar no passo seguinte, escolha um dos serviços de back-end para ser a predefinição do mapa de URLs.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --region=REGION
Substitua o seguinte:
URL_MAP_NAME
: um nome para o mapa de URLs.DEFAULT_BACKEND_SERVICE_NAME
: o nome do valor predefinido do equilibrador de carga. A predefinição é usada quando nenhuma regra de anfitrião corresponde ao nome de anfitrião pedido.REGION
: a região na qual o mapa de URLs deve ser criado.
Adicione serviços de back-end adicionais ao mapa de URLs.
Se o seu mapa de URLs tiver de fazer referência a dois ou mais serviços de back-end, conclua os seguintes passos. Se o mapa de URLs referenciar apenas um serviço de back-end, ignore este passo.
Para cada serviço de back-end, adicione um correspondente de caminho. Tem de criar um matcher de caminho para cada serviço de back-end.
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
Substitua o seguinte:
URL_MAP_NAME
: o nome do mapa de URLs.PATH_MATCHER
: um nome para o correspondente de caminhos.BACKEND_SERVICE_NAME
: o nome do serviço de back-end.REGION
: a região do mapa de URLs.
Para cada nome de anfitrião, adicione uma regra de anfitrião.
Cada regra de anfitrião só pode fazer referência a um correspondente de caminho, mas duas ou mais regras de anfitrião podem fazer referência ao mesmo correspondente de caminho.
gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=HOST \ --path-matcher-name=PATH_MATCHER \ --region=REGION
Substitua o seguinte:
URL_MAP_NAME
: o nome do mapa de URLs.HOST
: o nome do anfitrião para enviar pedidos para este serviço. Por exemplo,pubsub.example.com
.PATH_MATCHER
: o nome do correspondente de caminho.REGION
: a região do mapa de URLs.
Crie o proxy HTTPS de destino.
Crie um recurso de certificado SSL regional através do comando
gcloud compute ssl-certificates create
. Os certificados geridos pela Google não são suportados com balanceadores de carga de aplicações internos.gcloud compute ssl-certificates create CERTIFICATE \ --certificate=LB_CERT \ --private-key=LB_PRIVATE_KEY \ --region=REGION
Substitua o seguinte:
CERTIFICATE
: um nome para o certificado.LB_CERT
: o caminho para o ficheiro de certificado no formato PEM do seu certificado autogerido.LB_PRIVATE_KEY
: o caminho para o ficheiro de chave privada no formato PEM do seu certificado autogerido.REGION
: a região do certificado.
Use o recurso de certificado SSL regional para criar um proxy HTTPS de destino com o comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=REGION \ --ssl-certificates=CERTIFICATE
Substitua o seguinte:
PROXY_NAME
: um nome para o proxy HTTPS de destino.URL_MAP_NAME
: o nome do mapa de URLs.REGION
: a região do recurso de certificado.CERTIFICATE
: o nome do recurso do certificado.
Reserve um endereço IPv4 interno regional para a regra de encaminhamento.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 \ --region=REGION \ --subnet=SUBNETWORK
Substitua o seguinte:
ADDRESS_NAME
: um nome para o recurso de endereço IP.REGION
: a região na qual criar o endereço IP.SUBNET
: a sub-rede na qual criar o endereço IP.
Execute este comando para ver o endereço IP reservado. Depois de criar o balanceador de carga, pode usar o endereço IP para validar a configuração.
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=REGION
Crie a regra de encaminhamento.
Crie a regra de encaminhamento com o comando
gcloud compute forwarding-rules create
.gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --address=ADDRESS_NAME \ --ports=443 \ --region=REGION \ --target-https-proxy=PROXY_NAME \ --target-https-proxy-region=PROXY_REGION \ [--service-directory-registration=SD_SERVICE_NAME]
Substitua o seguinte:
FWD_RULE
: um nome para a regra de encaminhamento.NETWORK
: a rede na qual criar a regra de encaminhamento.ADDRESS_NAME
: o endereço IP reservado.REGION
: a região da regra de encaminhamento.PROXY_NAME
: o nome do proxy HTTPS de destino.PROXY_REGION
: a região do proxy HTTPS de destino.SD_SERVICE_NAME
: o URI do serviço do Service Directory com o qual quer registar o balanceador de carga, neste formato:projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME
. A especificação de--service-directory-registration
é opcional.
Valide a configuração
Crie a instância de VM.
gcloud compute instances create VM_NAME \ --network=NETWORK \ --image-project=debian-cloud --image-family=debian-12 \ --zone=ZONE
Substitua o seguinte:
VM_NAME
: um nome para a máquina virtual.NETWORK
: a rede para a VM.ZONE
: a zona da VM.
Estabeleça ligação à VM.
gcloud compute ssh VM_NAME --zone=ZONE
Use
curl
para validar a configuração. Este comando define o cabeçalhoHost
e ignora a resolução de DNS especificando um endereço IP definido pelo utilizador. Pode omitir a porta se estiver a usar a porta predefinida para o protocolo, por exemplo, usar a porta 443 para HTTPS.Se necessário, pode ignorar a validação de certificados com a flag
-k
. Pode ter de ignorar a validação se usou um certificado autoassinado para configurar o proxy HTTPS de destino ou se a VM não tiver o certificado da autoridade de certificação que assinou o seu certificado.curl -iv --resolve HOSTNAME:443:IP_ADDRESS \ 'https://HOSTNAME/RESOURCE_URI'
Substitua o seguinte:
HOSTNAME
: o nome de anfitrião que configurou no mapa de URLs, por exemplo,pubsub.example.com
.IP_ADDRESS
: o endereço IP da regra de encaminhamento do balanceador de carga.RESOURCE_URI
: o resto do URI do recurso que quer usar para validação. Por exemplo, se o equilibrador de carga estiver a encaminhar pedidos para um ponto final regional do Pub/Sub, pode usarrest?version=v1
.
Configure registos de DNS
Configure os registos DNS para cada anfitrião que adicionou ao mapa de URLs, apontando para o endereço IP da regra de encaminhamento. Se estiver a usar o Cloud DNS para gerir o DNS, consulte o artigo Adicione, modifique e elimine registos. Caso contrário, configure os registos de DNS no seu servidor DNS.
Por exemplo, suponhamos que criou as seguintes configurações:
Um NEG do Private Service Connect que usa o serviço de destino
pubsub.europe-west3.rep.googleapis.com
.Um Application Load Balancer interno que usa esse NEG do Private Service Connect como back-end.
Um mapa de URLs que define uma regra de anfitrião para
pubsub.example.com
.
Para que esta configuração funcione corretamente, tem de criar um registo DNS que
aponte pubsub.example.com
para o endereço IP da regra de encaminhamento.
Com esta configuração, todos os pedidos enviados para pubsub.example.com
são enviados
para o balanceador de carga, que encaminha o pedido para pubsub.europe-west3.rep.googleapis.com
.
Configure os clientes para enviar pedidos ao back-end
Para enviar pedidos através do back-end em vez dos pontos finais de serviço público,
tem de configurar os clientes para enviar pedidos para o nome do anfitrião que definiu no
mapa de URLs do balanceador de carga, por exemplo, pubsub.example.com
. Consulte a documentação do seu cliente ou biblioteca cliente para ver informações sobre a configuração para usar pontos finais personalizados. As páginas seguintes incluem passos de configuração para alguns clientes comuns:
Python: pode configurar
api_endpoint
em Client options.Aceda: pode configurar
WithEndpoint
em ClientOptions..NET: pode configurar
Endpoint
na classe de criação do cliente.gcloud: pode configurar
api_endpoint_overrides
na CLI gcloud.
Aceda ao back-end a partir de anfitriões no local
Se a sua rede no local estiver ligada a uma rede VPC, pode enviar tráfego para o back-end do Private Service Connect.
A sua rede nas instalações tem de estar ligada à rede VPC que contém o Application Load Balancer interno através de túneis do Cloud VPN ou anexos de VLAN na mesma região que o Application Load Balancer interno.
A rede no local tem de ter rotas adequadas para o seu Application Load Balancer interno. Certifique-se de que cada Cloud Router que gere a sessão BGP para o túnel de VPN do Google Cloud ou a ligação VLAN foi configurado para anunciar o intervalo de endereços IP principal da sub-rede usada pela regra de encaminhamento do Application Load Balancer interno. Por predefinição, os Cloud Routers anunciam rotas de sub-rede.
Tem de configurar os sistemas no local para que os nomes de anfitrião no mapa de URLs do seu Application Load Balancer interno sejam resolvidos no endereço IP da regra de encaminhamento do Application Load Balancer interno. Pode criar os registos de DNS em servidores de nomes no local ou usar o Cloud DNS.
Se criou os registos DNS através de zonas privadas geridas do Cloud DNS, conclua os seguintes passos:
Crie uma política de servidor de entrada na rede VPC à qual a sua rede no local se liga.
Identifique os pontos de entrada do encaminhador de entrada, nas regiões onde os seus túneis da Cloud VPN e anexos de VLAN estão localizados, na rede VPC à qual a sua rede no local se liga.
Configure servidores de nomes DNS no local para encaminhar pedidos DNS para os nomes de anfitrião no mapa de URLs para um ponto de entrada de encaminhador de entrada do Cloud DNS.