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 generar 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. En la consola de Google Cloud , ve a la página del selector de proyectos.

      Ir al selector de proyectos

    2. Selecciona o crea un proyecto de Google Cloud .

      Roles necesarios para seleccionar o crear un proyecto

      • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
      • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
  3. Habilita la API de Compute Engine.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar la API

  4. Asegúrate de tener los siguientes roles en el proyecto: Compute Engine > Administrador de red de Compute, Compute Engine > Administrador de instancias de Compute

    Verifica los roles

    1. En la consola de Google Cloud , dirígete a la página IAM.

      Ir a IAM
    2. Selecciona el proyecto.
    3. En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo en el que se te incluya. Para saber en qué grupos estás incluido, comunícate con tu administrador.

    4. Para todas las filas en las que se te especifique o se te incluya, verifica la columna Rol para ver si la lista de roles incluye los roles necesarios.

    Otorga los roles

    1. En la consola de Google Cloud , dirígete a la página IAM.

      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.

Probar 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 del productor (PRODUCER_PROJECT) y el proyecto del consumidor (CONSUMER_PROJECT).

    Borra un Google Cloud proyecto:

    gcloud projects delete PROJECT_ID

¿Qué sigue?