Este tutorial explica como, enquanto consumidor de serviços, pode aceder ao seu serviço publicado criando um ponto final do Private Service Connect. Quando envia pedidos para o ponto final, o Private Service Connect encaminha esses pedidos para o serviço publicado.
Este tutorial destina-se a arquitetos de nuvem, arquitetos de rede, administradores de rede e administradores de TI.
Objetivos
- Configure a rede para os recursos do consumidor de serviços
- Crie um ponto final
- Teste o acesso ao ponto final
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização prevista,
use a calculadora de preços.
Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.
Antes de começar
- Conclua os dois tutoriais anteriores desta série:
- Crie um serviço com balanceamento de carga.
- Torne o serviço acessível a partir de outras redes VPC. Precisa do ID da associação de serviço para concluir este tutorial.
- Crie ou selecione um projeto para usar nos recursos do consumidor de serviços.
Este projeto é denominado
CONSUMER_PROJECT -
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Make sure that you have the following role or roles on the project: Compute Engine > Compute Network Admin, Compute Engine > Compute Instance Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Aceder ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- Clique em Selecionar uma função e, de seguida, pesquise a função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
-
Configure a rede
As secções seguintes explicam como criar uma rede e uma sub-rede para alojar o ponto final e como criar uma regra de firewall para permitir o acesso SSH à VM do cliente usada para testar o ponto final.
Crie uma rede e uma sub-rede
Para criar a rede e a sub-rede do consumidor de serviços, siga estes passos.
Consola
Na Google Cloud consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
Em Nome, introduza
consumer-network.Para o Modo de criação de sub-rede, selecione Personalizado.
Na secção Nova sub-rede, introduza as seguintes informações.
- Em Nome, introduza
consumer-subnet. - Para Região, selecione a mesma região que o serviço publicado que criou.
- Para o Tipo de pilha de IP, selecione IPv4 (pilha única).
- Para o intervalo de IPv4, introduza
192.168.10.0/24. - Clique em Concluído.
- Em Nome, introduza
Clique em Criar.
gcloud
Crie uma rede VPC de modo personalizado:
gcloud compute networks create consumer-network --subnet-mode=custom
Na rede
consumer-network, crie uma sub-rede.gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --range=192.168.10.0/24 \ --region=REGIONSubstitua
REGIONpela mesma região do serviço publicado que criou.
Configure regras de firewall
Crie uma regra de firewall denominada fw-allow-ssh para permitir que o tráfego SSH de 0.0.0.0/0 alcance VMs com a etiqueta de rede allow-ssh.
Consola
Na Google Cloud consola, aceda à página Políticas de firewall.
Para permitir ligações SSH de entrada, clique em Criar regra de firewall e use as seguintes definições:
- Em Nome, introduza
fw-allow-ssh. - Para Rede, selecione
consumer-network. - Para Prioridade, introduza
1000. - Para Direção do tráfego, selecione Entrada.
- Para Ação em caso de correspondência, selecione Permitir.
- Em Segmentações, selecione Etiquetas de segmentação especificadas.
- Para Etiquetas de segmentação, introduza
allow-ssh. - Para Filtro de origem, selecione Intervalos IPv4.
- Para Intervalos de IPv4 de origem, introduza
0.0.0.0/0. - Para Protocolos e portas, selecione Protocolos e portas especificados,
selecione a caixa de verificação TCP. Em Portas, introduza
22.
- Em Nome, introduza
Clique em Criar.
gcloud
Crie a regra de firewall
fw-allow-sshpara permitir a conetividade SSH a VMs com a etiqueta de redeallow-ssh.gcloud compute firewall-rules create fw-allow-ssh \ --network=consumer-network \ --action=allow \ --direction=ingress \ --source-ranges=0.0.0.0/0 \ --target-tags=allow-ssh \ --rules=tcp:22
Crie um ponto final
Crie um ponto final que aponte para o serviço publicado que criou.
Consola
Na Google Cloud consola, aceda à página Private Service Connect.
Clique no separador Pontos finais ligados.
Clique em Associar ponto final.
Em Segmentar, selecione Serviço publicado.
Para Serviço de destino, introduza
projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.Substitua
PRODUCER_PROJECTpelo ID do projeto do serviço publicado. SubstituaREGIONpela região do serviço publicado.Para Nome do ponto final, introduza
ep-1.Para Rede, selecione
consumer-network.Para Sub-rede, selecione
consumer-subnet.Clique no menu pendente Endereço IP e selecione Criar endereço IP.
- Em Nome, introduza
ep-ip-1. - Para Endereço IP estático, selecione Permitir-me escolher.
- Para Endereço IP personalizado, introduza
192.168.10.5. - Clique em Reservar.
- Em Nome, introduza
Clique em Adicionar ponto final.
gcloud
Reserve um endereço IP interno para atribuir ao ponto final.
gcloud compute addresses create ep-ip-1 \ --region=REGION \ --subnet=consumer-subnet \ --addresses=192.168.10.5Substitua
REGIONpela mesma região do serviço publicado que criou.Crie uma regra de encaminhamento para ligar o ponto final à associação de serviço do produtor de serviço.
gcloud compute forwarding-rules create ep-1 \ --region=REGION \ --network=consumer-network \ --address=ep-ip-1 \ --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-serviceSubstitua o seguinte:
PRODUCER_PROJECT: o ID do projeto do projeto produtor do serviço.REGION: a região da associação de serviços.
Teste o acesso ao ponto final
Para testar se o ponto final e o serviço publicado estão a funcionar, crie uma VM de teste e envie um pedido da mesma para o ponto final.
Crie uma VM de cliente para testes
Crie uma VM cliente na mesma região que o ponto final.
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
Em Nome, introduza
consumer-test.Para Região, selecione a mesma região que as VMs de back-end.
Em Zona, selecione uma zona nessa região.
Clique em Rede e configure os seguintes campos:
- Para etiquetas de rede, introduza
allow-ssh. - Para Interfaces de rede, selecione o seguinte:
- Para Rede, selecione
consumer-network - Para Sub-rede, selecione
consumer-subnet
- Para Rede, selecione
- Para etiquetas de rede, introduza
Clique em Criar.
gcloud
gcloud compute instances create consumer-test \
--zone=ZONE \
--image-family=debian-12 \
--image-project=debian-cloud \
--tags=allow-ssh \
--subnet=consumer-subnet
Substitua ZONE por uma zona que esteja na mesma região que as VMs de back-end.
Teste a conetividade
Este teste contacta o ponto final a partir de uma VM do cliente. O comportamento esperado é que o tráfego seja distribuído pelas VMs de back-end do balanceador de carga.
- Ligue-se à instância de VM do cliente.
Substituagcloud compute ssh consumer-test --zone=ZONE
ZONEpela zona da VM do cliente. - Faça um pedido Web ao ponto final através de
curlpara contactar o respetivo endereço IP. Repita o pedido para poder ver que as respostas provêm de VMs de back-end diferentes. O nome da VM que gera a resposta é apresentado no texto na resposta HTML devido ao conteúdo de/var/www/html/index.htmlem cada VM de back-end. Por exemplo, as respostas esperadas têm o seguinte aspeto:Page served from: vm-1ePage served from: vm-2.curl -s http://192.168.10.5
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Elimine os projetos
Elimine o projeto produtor (PRODUCER_PROJECT) e o projeto consumidor (CONSUMER_PROJECT).
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
O que se segue?
- Saiba mais acerca dos serviços publicados do Private Service Connect
- Saiba como aceder a serviços publicados através de pontos finais
- Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Consulte o nosso Centro de arquitetura na nuvem.