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.
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
- Completa los dos instructivos anteriores de esta serie:
- Crea un servicio con balanceo de cargas.
- Haz que el servicio sea accesible desde otras redes de VPC. Necesitas el ID de la vinculación del servicio para completar este instructivo.
- Crea o selecciona un proyecto para usarlo con los recursos del consumidor de servicios.
Este proyecto se conoce como
CONSUMER_PROJECT. -
En la consola de Google Cloud , ve a la página del selector de proyectos.
-
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 permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
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 permisoserviceusage.services.enable. Obtén más información para otorgar roles.-
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
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
-
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.
- 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
-
En la consola de Google Cloud , dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Otorgar acceso.
-
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.
- Haz clic en Seleccionar un rol y, luego, busca el rol.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- 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
En la consola de Google Cloud , ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
En Nombre, ingresa
consumer-network.En Modo de creación de subred, selecciona Personalizado.
En la sección Subred nueva, ingresa la siguiente información.
- En Nombre, ingresa
consumer-subnet. - En Región, selecciona la misma región que el servicio publicado que creaste.
- En Tipo de pila de IP, elige IPv4 (pila única).
- En el Rango de IPv4, ingresa
192.168.10.0/24. - Haz clic en Listo.
- En Nombre, ingresa
Haz clic en Crear.
gcloud
Crea una red de VPC en modo personalizado:
gcloud compute networks create consumer-network --subnet-mode=custom
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=REGIONReemplaza
REGIONpor 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
En la consola de Google Cloud , ve a la página Políticas de firewall.
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.
- En Nombre, ingresa
Haz clic en Crear.
gcloud
Crea la regla de firewall
fw-allow-sshpara permitir la conectividad SSH a las VM con la etiqueta de redallow-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
En la consola de Google Cloud , ve a la página Private Service Connect.
Haz clic en la pestaña Extremos conectados.
Haz clic en Conectar extremo.
En Destino, selecciona Servicio publicado.
En Servicio de destino, ingresa
projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.Reemplaza
PRODUCER_PROJECTpor el ID del proyecto del servicio publicado. ReemplazaREGIONpor la región del servicio publicado.En Nombre del extremo, ingresa
ep-1.En Red, selecciona
consumer-network.En Subred, selecciona
consumer-subnet.Haz clic en el menú desplegable Dirección IP y selecciona Crear dirección IP.
- En Nombre, ingresa
ep-ip-1. - En Dirección IP estática, selecciona Let me choose.
- En Dirección IP personalizada, ingresa
192.168.10.5. - Haz clic en Reservar.
- En Nombre, ingresa
Haz clic en Agregar extremo.
gcloud
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.5Reemplaza
REGIONpor la misma región que el servicio publicado que creaste.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-serviceReemplaza 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
En la consola de Google Cloud , ve a la página Instancias de VM.
Haz clic en Crear instancia.
En Nombre, ingresa
consumer-test.En Región, selecciona la misma región que las VMs de backend.
En Zona, selecciona una zona de esa región.
Haz clic en Herramientas de redes y configura los siguientes campos:
- En Etiquetas de red, ingresa
allow-ssh. - En Interfaces de red, selecciona lo siguiente:
- En Red, selecciona
consumer-network. - En Subred, selecciona
consumer-subnet.
- En Red, selecciona
- En Etiquetas de red, ingresa
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.
- Conéctate a la instancia de VM de cliente.
Reemplazagcloud compute ssh consumer-test --zone=ZONE
ZONEpor la zona de la VM del cliente. - Realiza una solicitud web al extremo con
curlpara 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.htmlen cada VM de backend. Por ejemplo, las respuestas esperadas tienen el aspectoPage served from: vm-1yPage 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?
- Más información sobre los servicios publicados de Private Service Connect
- Obtén más información para acceder a los servicios publicados a través de extremos
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.