Acessar o serviço de outra rede VPC

Neste tutorial, explicamos como você, como um consumidor de serviços, pode acessar seu serviço publicado criando um endpoint do Private Service Connect. Quando você envia solicitações ao endpoint, o Private Service Connect encaminha essas solicitações ao serviço publicado.

Este tutorial é destinado a arquitetos de nuvem e de rede, administradores de rede e de TI.

Objetivos

  • Configurar a rede para os recursos do consumidor de serviços
  • Crie um endpoint
  • Testar o acesso ao endpoint

Custos

Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custo baseada na sua projeção de uso, utilize a calculadora de preços.

Novos usuários do Google Cloud podem estar qualificados para um teste sem custo financeiro.

Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.

Antes de começar

  1. Conclua os dois tutoriais anteriores desta série:
  2. Crie ou selecione um projeto para usar nos recursos do consumidor de serviços. Esse projeto é chamado de CONSUMER_PROJECT.
    1. In the Google Cloud console, go to the project selector page.

      Go to project selector

    2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.
  3. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. 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

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

    4. 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

    1. In the Google Cloud console, go to the IAM page.

      Acessar o IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Clique em Selecionar um papel e pesquise o papel.
    6. Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
    7. Clique em Salvar.

Configurar rede

As seções a seguir explicam como criar uma rede e uma sub-rede para hospedar o endpoint e como criar uma regra de firewall para permitir o acesso SSH à VM do cliente usada para testar o endpoint.

Criar uma rede e uma sub-rede

Para criar a rede e a sub-rede do consumidor de serviços, siga estas etapas.

Console

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira consumer-network.

  4. Em Modo de criação da sub-rede, selecione Personalizado.

  5. Na seção Nova sub-rede, insira as seguintes informações:

    1. Em Nome, insira consumer-subnet.
    2. Em Região, selecione a mesma região do serviço publicado que você criou.
    3. Em Tipo de pilha de IP, selecione IPv4 (pilha única).
    4. Em Intervalo IPv4, insira 192.168.10.0/24.
    5. Clique em Concluído.
  6. Clique em Criar.

gcloud

  1. Crie uma rede VPC personalizada:

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. 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=REGION
    

    Substitua REGION pela mesma região do serviço publicado que você criou.

Configurar regras de firewall

Crie uma regra de firewall chamada fw-allow-ssh para permitir que o tráfego SSH de 0.0.0.0/0 alcance VMs com a tag de rede allow-ssh.

Console

  1. No console do Google Cloud , acesse a página Políticas de firewall.

    Acesse as políticas de firewall

  2. Para permitir conexões SSH de entrada, clique em Criar regra de firewall e use as seguintes configurações:

    • Em Nome, insira fw-allow-ssh.
    • Em Rede, selecione consumer-network.
    • Em Prioridade, digite 1000.
    • Em Direção de tráfego, selecione Entrada.
    • Em Ação se houver correspondência, selecione Permitir.
    • Em Destinos, selecione Specified target tags.
    • Em Tags de destino, insira allow-ssh.
    • Em Filtro de origem, selecione Intervalos IPv4.
    • Em Intervalos IPv4 de origem, insira 0.0.0.0/0.
    • Em Protocolos e portas, selecione Protocolos e portas especificados e marque a caixa de seleção TCP. Em Portas, insira 22.
  3. Clique em Criar.

gcloud

  1. Crie a regra de firewall fw-allow-ssh que permita a conectividade SSH para VMs com a tag de rede allow-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 endpoint

Crie um endpoint que aponte para o serviço publicado que você criou.

Console

  1. No console do Google Cloud , acesse a página Private Service Connect.

    Acessar Private Service Connect

  2. Clique na guia Endpoints conectados.

  3. Clique em Conectar endpoint.

  4. Em Destino, selecione Serviço publicado.

  5. Em Serviço de destino, insira projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.

    Substitua PRODUCER_PROJECT pelo ID do projeto do serviço publicado. Substitua REGION pela região do serviço publicado.

  6. Em Nome do endpoint, insira ep-1.

  7. Em Rede, selecione consumer-network.

  8. Em Sub-rede, selecione consumer-subnet.

  9. Clique no menu suspenso Endereço IP e selecione Criar endereço IP.

    1. Em Nome, insira ep-ip-1.
    2. Em Endereço IP estático, selecione Let me choose.
    3. Em Endereço IP personalizado, insira 192.168.10.5.
    4. Clique em Reservar.
  10. Clique em Adicionar endpoint.

gcloud

  1. Reserve um endereço IP interno para atribuir ao endpoint.

    gcloud compute addresses create ep-ip-1 \
        --region=REGION \
        --subnet=consumer-subnet \
        --addresses=192.168.10.5
    

    Substitua REGION pela mesma região do serviço publicado que você criou.

  2. Crie uma regra de encaminhamento para conectar o endpoint ao anexo 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-service
    

    Substitua:

    • PRODUCER_PROJECT: o ID do projeto de produtor de serviços.

    • REGION: a região do anexo de serviço.

Testar o acesso ao endpoint

Para testar se o endpoint e o serviço publicado estão funcionando, crie uma VM de teste e envie uma solicitação dela para o endpoint.

Criar uma VM cliente para teste

Crie uma VM cliente na mesma região do endpoint.

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar Instâncias de VM

  2. Clique em Criar instância.

  3. Em Nome, insira consumer-test.

  4. Em Região, selecione a mesma região das VMs de back-end.

  5. Em Zona, selecione uma zona nessa região.

  6. Clique em Rede e configure os seguintes campos:

    1. Em Tags de rede, insira allow-ssh.
    2. Em Interfaces de rede, selecione o seguinte:
      • Em Rede, selecione consumer-network.
      • Em Sub-rede, selecione consumer-subnet.
  7. 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 na mesma região das VMs de back-end.

testar a conectividade

Neste teste, o endpoint é contatado por uma VM cliente. O comportamento esperado é que o tráfego seja distribuído entre as VMs de back-end do balanceador de carga.

  1. Conecte-se à instância da VM cliente.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Substitua ZONE pela zona da VM do cliente.
  2. Faça uma solicitação da Web para o endpoint usando curl para contatar o endereço IP dele. Repita a solicitação para ver que as respostas provêm de diferentes VMs de back-end. O nome da VM que gera a resposta é exibido no texto na resposta HTML, devido ao conteúdo de /var/www/html/index.html em cada VM de back-end. Por exemplo, as respostas esperadas são assim: Page served from: vm-1 e Page served from: vm-2.
    curl -s http://192.168.10.5
    

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Excluir os projetos

Exclua o projeto produtor (PRODUCER_PROJECT) e o projeto consumidor (CONSUMER_PROJECT).

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir