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.
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
- Completa los dos tutoriales anteriores de esta serie:
- Crea un servicio con balanceo de carga.
- Haz que el servicio sea accesible desde otras redes de VPC. Para completar este tutorial, necesitas el ID de la vinculación de servicio.
- Crea o selecciona un proyecto para usarlo en los recursos del consumidor del servicio.
Este proyecto se denomina
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 Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- Haz clic en Selecciona un rol y busca el rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- 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
En la Google Cloud consola, ve a la página Redes de VPC.
Haz clic en Crear red VPC.
En Nombre, escribe
consumer-network.En Modo de creación de subred, selecciona Personalizado.
En la sección Nueva subred, introduce la siguiente información.
- En Nombre, escribe
consumer-subnet. - En Región, selecciona la misma región que el servicio publicado que has creado.
- En Tipo de pila de IP, selecciona IPv4 (pila única).
- En Intervalo de IPv4, introduce
192.168.10.0/24. - Haz clic en Listo.
- En Nombre, escribe
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=REGIONSustituye
REGIONpor 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
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
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.
- En Nombre, escribe
Haz clic en Crear.
gcloud
Crea la regla de cortafuegos
fw-allow-sshpara permitir la conectividad SSH a las VMs 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 punto final
Crea un endpoint que apunte al servicio publicado que has creado.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haz clic en la pestaña Puntos finales conectados.
Haz clic en Conectar punto final.
En Destino, selecciona Servicio publicado.
En Servicio de destino, introduce
projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.Sustituye
PRODUCER_PROJECTpor el ID del proyecto del servicio publicado. SustituyeREGIONpor la región del servicio publicado.En Endpoint name (Nombre del endpoint), introduce
ep-1.En Red, selecciona
consumer-network.En Subred, selecciona
consumer-subnet.Haga clic en el menú desplegable Dirección IP y seleccione Crear dirección IP.
- En Nombre, escribe
ep-ip-1. - En Dirección IP estática, selecciona Quiero seleccionarlos yo.
- En Dirección IP personalizada, introduce
192.168.10.5. - Haz clic en Reservar.
- En Nombre, escribe
Haz clic en Añadir endpoint.
gcloud
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.5Sustituye
REGIONpor la misma región que el servicio publicado que has creado.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-serviceHaz 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
En la consola de Google Cloud , ve a la página Instancias de VM.
Haz clic en Crear instancia.
En Nombre, escribe
consumer-test.En Región, selecciona la misma región que las VMs de backend.
En Zona, selecciona una zona de esa región.
Haga clic en Redes y configure los siguientes campos:
- En Etiquetas de red, introduce
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, introduce
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.
- Conéctate a la instancia de VM cliente.
Sustituyegcloud compute ssh consumer-test --zone=ZONE
ZONEpor la zona de la VM del cliente. - Haz una solicitud web al endpoint mediante
curlpara 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.htmlen cada VM backend. Por ejemplo, las respuestas esperadas son comoPage served from: vm-1yPage 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).
- 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.
Siguientes pasos
- Más información sobre los servicios publicados de Private Service Connect
- Más información sobre cómo acceder a servicios publicados a través de endpoints
- Consulta arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Centro de arquitectura de Cloud.