Accede al servicio desde otra red de VPC

En este instructivo, se explica cómo tú, como consumidor de servicios, puedes acceder a tu servicio publicado creando un extremo de Private Service Connect. Cuando envías solicitudes al extremo, Private Service Connect las reenvía al servicio publicado.

Este instructivo está dirigido a arquitectos de nube, arquitectos de red, administradores de red y administradores de TI.

Objetivos

  • Configura las redes para los recursos del consumidor de servicios
  • Crear un extremo
  • Prueba el acceso al extremo

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para obtener una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

Antes de comenzar

  1. Completa los dos instructivos anteriores de esta serie:
  2. Crea o selecciona un proyecto para usarlo con los recursos del consumidor de servicios. Este proyecto se conoce como 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 Otorgar acceso.
    4. En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. Haz clic en Seleccionar un rol y, luego, busca el rol.
    6. Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
    7. Haz clic en Guardar.

Configura las redes

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

Crea una red y una subred

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

Console

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

    Ir a Redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa consumer-network.

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

  5. En la sección Subred nueva, ingresa la siguiente información.

    1. En Nombre, ingresa consumer-subnet.
    2. En Región, selecciona la misma región que el servicio publicado que creaste.
    3. En Tipo de pila de IP, elige IPv4 (pila única).
    4. En el Rango de IPv4, ingresa 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
    

    Reemplaza REGION por la misma región que el servicio publicado que creaste.

Configura reglas de firewall

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

Console

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

    Ir a Políticas de firewall

  2. Para permitir conexiones SSH entrantes, haz clic en Crear regla de firewall y usa la siguiente configuración:

    • En Nombre, ingresa fw-allow-ssh.
    • En Red, selecciona consumer-network.
    • En Prioridad, ingresa 1000.
    • En Dirección del tráfico, selecciona Ingress.
    • En Acción en caso de coincidencia, selecciona Permitir.
    • En Destinos, selecciona Etiquetas de destino especificadas.
    • En Etiquetas de destino, ingresa allow-ssh.
    • En Filtro de fuente, selecciona Rangos de IPv4.
    • En Rangos de IPv4 de origen, ingresa 0.0.0.0/0.
    • En Protocolos y puertos, selecciona Protocolos y puertos especificados y, luego, la casilla de verificación TCP. En Puertos, ingresa 22.
  3. Haz clic en Crear.

gcloud

  1. Crea la regla de firewall fw-allow-ssh para permitir la conectividad SSH a las VM 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 extremo

Crea un extremo que apunte al servicio publicado que creaste.

Console

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

    Ir a Private Service Connect

  2. Haz clic en la pestaña Extremos conectados.

  3. Haz clic en Conectar extremo.

  4. En Destino, selecciona Servicio publicado.

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

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

  6. En Nombre del extremo, ingresa ep-1.

  7. En Red, selecciona consumer-network.

  8. En Subred, selecciona consumer-subnet.

  9. Haz clic en el menú desplegable Dirección IP y selecciona Crear dirección IP.

    1. En Nombre, ingresa ep-ip-1.
    2. En Dirección IP estática, selecciona Let me choose.
    3. En Dirección IP personalizada, ingresa 192.168.10.5.
    4. Haz clic en Reservar.
  10. Haz clic en Agregar extremo.

gcloud

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

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

    Reemplaza REGION por la misma región que el servicio publicado que creaste.

  2. Crea una regla de reenvío para conectar el extremo al adjunto de servicio del productor de servicios.

    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
    

    Reemplaza lo siguiente:

    • PRODUCER_PROJECT: Es el ID del proyecto del proyecto del productor de servicios.

    • REGION: la región del adjunto de servicio.

Prueba el acceso al extremo

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

Crea una VM de cliente para realizar pruebas

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

Console

  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, ingresa 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. Haz clic en Herramientas de redes y configura los siguientes campos:

    1. En Etiquetas de red, ingresa 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

Reemplaza ZONE por una zona que se encuentre en la misma región que las VMs de backend.

Prueba la conectividad

En esta prueba, se contacta al extremo desde una VM de cliente. El comportamiento esperado es que el tráfico se distribuya entre las VMs de backend del balanceador de cargas.

  1. Conéctate a la instancia de VM de cliente.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Reemplaza ZONE por la zona de la VM del cliente.
  2. Realiza una solicitud web al extremo con curl para establecer contacto con su dirección IP. Repite la solicitud para que puedas ver que las respuestas provienen de diferentes VM de 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 de backend. Por ejemplo, las respuestas esperadas tienen el aspecto Page served from: vm-1 y Page served from: vm-2.
    curl -s http://192.168.10.5
    

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra los proyectos

Borra el proyecto productor (PRODUCER_PROJECT) y el proyecto 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.

¿Qué sigue?