Acceder al servicio desde otra red de VPC

En este tutorial se explica cómo puedes acceder a tu servicio publicado como consumidor de servicios creando un punto final de Private Service Connect. Cuando envías solicitudes al punto final, Private Service Connect reenvía esas solicitudes al servicio publicado.

Este tutorial está dirigido a arquitectos de nube, arquitectos de redes, administradores de redes y administradores de TI.

Objetivos

  • Configurar la red de los recursos de consumidor de servicios
  • Crear un punto final
  • Probar el acceso al endpoint

Costes

En este documento, se utilizan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Los usuarios nuevos pueden disfrutar de una prueba sin coste económico. Google Cloud

Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.

Antes de empezar

  1. Completa los dos tutoriales anteriores de esta serie:
  2. Crea o selecciona un proyecto para usarlo en los recursos del consumidor del servicio. Este proyecto se denomina 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.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. Haz clic en Selecciona un rol y busca el rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.

Configurar redes

En las siguientes secciones se explica cómo crear una red y una subred para alojar el endpoint, así como una regla de firewall para permitir el acceso SSH a la VM cliente que se usa para probar el endpoint.

Crear una red y una subred

Para crear la red y la subred del consumidor de servicios, siga estos pasos.

Consola

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Haz clic en Crear red VPC.

  3. En Nombre, escribe consumer-network.

  4. En Modo de creación de subred, selecciona Personalizado.

  5. En la sección Nueva subred, introduce la siguiente información.

    1. En Nombre, escribe consumer-subnet.
    2. En Región, selecciona la misma región que el servicio publicado que has creado.
    3. En Tipo de pila de IP, selecciona IPv4 (pila única).
    4. En Intervalo de IPv4, introduce 192.168.10.0/24.
    5. Haz clic en Listo.
  6. Haz clic en Crear.

gcloud

  1. Crea una red de VPC en modo personalizado:

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. En la red consumer-network, crea una subred.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --range=192.168.10.0/24 \
        --region=REGION
    

    Sustituye REGION por la misma región que el servicio publicado que has creado.

Configurar reglas de cortafuegos

Crea una regla de cortafuegos llamada fw-allow-ssh para permitir que el tráfico SSH de 0.0.0.0/0 llegue a las VMs que tengan la etiqueta de red allow-ssh.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de cortafuegos.

    Ir a Políticas de cortafuegos

  2. Para permitir las conexiones SSH entrantes, haz clic en Crear regla de cortafuegos y usa los siguientes ajustes:

    • En Nombre, escribe fw-allow-ssh.
    • En Red, selecciona consumer-network.
    • En Prioridad, introduce 1000.
    • En Dirección del tráfico, selecciona Entrada.
    • En Acción tras coincidencia, selecciona Permitir.
    • En Destinos, seleccione Etiquetas de destino especificadas.
    • En Etiquetas de destino, escriba allow-ssh.
    • En Filtro de origen, selecciona Intervalos de IPv4.
    • En Intervalos IPv4 de origen, introduce 0.0.0.0/0.
    • En Protocolos y puertos, selecciona Protocolos y puertos especificados y marca la casilla TCP. En Puertos, introduce 22.
  3. Haz clic en Crear.

gcloud

  1. Crea la regla de cortafuegos fw-allow-ssh para permitir la conectividad SSH a las VMs con la etiqueta de red 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
    

Crear un punto final

Crea un endpoint que apunte al servicio publicado que has creado.

Consola

  1. En la Google Cloud consola, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Puntos finales conectados.

  3. Haz clic en Conectar punto final.

  4. En Destino, selecciona Servicio publicado.

  5. En Servicio de destino, introduce projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.

    Sustituye PRODUCER_PROJECT por el ID del proyecto del servicio publicado. Sustituye REGION por la región del servicio publicado.

  6. En Endpoint name (Nombre del endpoint), introduce ep-1.

  7. En Red, selecciona consumer-network.

  8. En Subred, selecciona consumer-subnet.

  9. Haga clic en el menú desplegable Dirección IP y seleccione Crear dirección IP.

    1. En Nombre, escribe ep-ip-1.
    2. En Dirección IP estática, selecciona Quiero seleccionarlos yo.
    3. En Dirección IP personalizada, introduce 192.168.10.5.
    4. Haz clic en Reservar.
  10. Haz clic en Añadir endpoint.

gcloud

  1. Reserva una dirección IP interna para asignarla al endpoint.

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

    Sustituye REGION por la misma región que el servicio publicado que has creado.

  2. Crea una regla de reenvío para conectar el endpoint a la vinculación de servicio del productor del servicio.

    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
    

    Haz los cambios siguientes:

    • PRODUCER_PROJECT: el ID del proyecto del productor del servicio.

    • REGION: la región de la vinculación de servicio.

Probar el acceso al endpoint

Para comprobar que el endpoint y el servicio publicado funcionan, crea una VM de prueba y envíale una solicitud desde ella al endpoint.

Crear una VM de cliente para hacer pruebas

Crea una VM cliente en la misma región que el endpoint.

Consola

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a instancias de VM

  2. Haz clic en Crear instancia.

  3. En Nombre, escribe consumer-test.

  4. En Región, selecciona la misma región que las VMs de backend.

  5. En Zona, selecciona una zona de esa región.

  6. Haga clic en Redes y configure los siguientes campos:

    1. En Etiquetas de red, introduce allow-ssh.
    2. En Interfaces de red, selecciona lo siguiente:
      • En Red, selecciona consumer-network.
      • En Subred, selecciona consumer-subnet.
  7. Haz clic en Crear.

gcloud

gcloud compute instances create consumer-test \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=consumer-subnet

Sustituye ZONE por una zona que esté en la misma región que las VMs de backend.

Probar la conectividad

Esta prueba se pone en contacto con el endpoint desde una VM cliente. El comportamiento esperado es que el tráfico se distribuya entre las VMs backend del balanceador de carga.

  1. Conéctate a la instancia de VM cliente.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Sustituye ZONE por la zona de la VM del cliente.
  2. Haz una solicitud web al endpoint mediante curl para ponerte en contacto con su dirección IP. Repite la solicitud para ver que las respuestas proceden de diferentes VMs backend. El nombre de la VM que genera la respuesta se muestra en el texto de la respuesta HTML debido al contenido de /var/www/html/index.html en cada VM backend. Por ejemplo, las respuestas esperadas son como Page served from: vm-1 y Page served from: vm-2.
    curl -s http://192.168.10.5
    

Limpieza

Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.

Eliminar los proyectos

Elimina tanto el proyecto de productor (PRODUCER_PROJECT) como el de 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.

Siguientes pasos