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.
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 de 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. -
In the Google Cloud console, go to the project selector page.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
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.
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.
- 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 productor (PRODUCER_PROJECT) y el proyecto consumidor (CONSUMER_PROJECT).
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
¿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.