1. Introducción
En este codelab, realizarás una conexión de salida a Cloud SQL implementado con Private Service Connect como productor de servicios.
Private Service Connect es una función de las herramientas de redes de Google Cloud que permite a los consumidores acceder a los servicios administrados de forma privada desde su red de VPC. Del mismo modo, permite a los productores de servicios administrados alojar estos servicios en sus propias redes de VPC independientes y ofrecer una conexión privada a sus consumidores. Por ejemplo, cuando usas Private Service Connect para acceder a Looker, eres el consumidor del servicio y Google es el productor de servicios, como se destaca en la figura 1.

El acceso de salida, también conocido como PSC inverso, permite que el consumidor cree un servicio publicado como productor para permitir que Looker acceda a extremos locales, en una VPC, a servicios administrados y a Internet. Las conexiones de salida se pueden implementar en cualquier región, independientemente de dónde se implemente el PSC de Looker, como se destaca en la figura 2.

Qué aprenderás
- Crea un servicio de productor de instancias de Cloud SQL con Private Service Connect
- Crea un extremo de Private Service Connect en Looker como consumidor de servicios
Requisitos
- Proyecto de Google Cloud con permisos de propietario
- Instancia existente del PSC de Looker

2. Qué compilarás
Establecerás una instancia de PSC de Cloud SQL implementada como productor de servicios asociada con el PSC de Looker como consumidor de servicios.
Las siguientes acciones validan el acceso al servicio del productor:
- Crea un extremo de PSC en Looker asociado con el adjunto de servicio del productor
- Usa la consola de Looker para crear una conexión de base de datos al PSC de Cloud SQL
- Prueba la conectividad al PSC de Cloud SQL autenticando y accediendo a un esquema predefinido
3. Topología del codelab

4. Configuración y requisitos
Configuración del entorno de autoaprendizaje
- Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.



- El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla cuando quieras.
- El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID de tu proyecto (suele identificarse como
PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usa el mismo durante todo el proyecto. - Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.
Inicia Cloud Shell
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
En Google Cloud Console, haz clic en el ícono de Cloud Shell en la barra de herramientas en la parte superior derecha:

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Todo tu trabajo en este codelab se puede hacer en un navegador. No es necesario que instales nada.
5. Antes de comenzar
Habilita las APIs
En Cloud Shell, asegúrate de que tu ID del proyecto esté configurado:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
Habilita todos los servicios necesarios con el siguiente comando:
gcloud services enable compute.googleapis.com
6. Identifica el proyecto de PSC de Looker
Para crear una instancia de PSC de Cloud SQL, se deben identificar los proyectos de PSC permitidos. Por lo tanto, el proyecto de inquilino de PSC de Looker se debe proporcionar en el momento de la creación de la instancia de Cloud SQL o actualizarse si se usa una instancia existente.
Determina el proyecto de PSC de Looker con gcloud
Dentro de Cloud Shell, actualiza [INSTANCE_NAME] con el nombre de tu instancia de PSC de Looker para obtener el ID del proyecto de PSC de Looker:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri
En el resultado de ejemplo, t7ec792caf2a609d1-tp es el proyecto de PSC de Looker:
gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
Cómo determinar el proyecto del PSC de Looker con la consola de Cloud
En la consola de Cloud, navega a:
Looker → Instancia de PSC de Looker

7. Crea una instancia de Cloud SQL del productor
En la siguiente sección, crearás una instancia de PSC de Cloud SQL que se usa con fines de prueba y que se implementa con una contraseña predefinida que especifica el proyecto de PSC de Looker en la lista de proyectos de PSC permitidos.
Creación de PSC de Cloud SQL
Dentro de Cloud Shell, crea una instancia y habilita Private Service Connect. Actualiza [INSTANCE_PROJECT] con el ID de tu proyecto de PSC de Looker.
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Ejemplo:
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Obtén la vinculación de servicio de Cloud SQL
Después de crear una instancia de Cloud SQL con Private Service Connect habilitado, obtén el URI del adjunto de servicio que se usará en un paso posterior para crear el extremo de Private Service Connect en Looker.
Dentro de Cloud Shell, haz lo siguiente:
gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink
En el ejemplo de resultado, se genera el URI del adjunto de servicio:
projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
Desde Cloud Console, puedes obtener el adjunto de servicio de PSC de Cloud SQL:
En la consola de Cloud, navega a:
SQL → Instancia de SQL → Conexiones

8. Establece una conexión de extremo de PSC en Looker
En la siguiente sección, asociarás el adjunto de servicio de Cloud SQL Producers con el PSC de Looker Core a través de las marcas –psc-service-attachment en Cloud Shell para un solo dominio.
Dentro de Cloud Shell, crea la asociación de PSC actualizando los siguientes parámetros para que coincidan con tu entorno:
- INSTANCE_NAME: Es el nombre de tu instancia de Looker (Google Cloud Core).
- DOMAIN_1: sql.database1.com
- SERVICE_ATTACHMENT_1: URI capturado cuando se describe la instancia de PSC de Cloud SQL
- REGION: Es la región en la que se aloja tu instancia de Looker (Google Cloud Core).
Dentro de Cloud Shell, haz lo siguiente:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Ejemplo:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1
Dentro de Cloud Shell, valida que el valor de connectionStatus de serviceAttachments sea "ACCEPTED". Asegúrate de actualizar el INSTANCE_NAME de tu PSC de Looker:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Ejemplo:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Ejemplo:
user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/project/locations/us-central1/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/project/global/networks/looker-psc-demo",
"projects/project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "sql.database1.com",
"targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-04T14:40:05.613026012Z"
}
Valida el extremo de PSC en la consola de Cloud
Desde la consola de Cloud, puedes validar la conexión de PSC.
En la consola de Cloud, navega a:
Looker → Instancia de Looker → Detalles


9. Integra el PSC de Looker con el PSC de Cloud SQL
En la siguiente sección, usarás la consola de Looker para crear una conexión de base de datos a la instancia de PSC de Cloud SQL.
Navega a ADMIN → DATABASE → CONNECTIONS → Selecciona ADD CONNECTION
Completa los detalles de la conexión según la siguiente captura de pantalla y selecciona CONECTAR.

La conexión ya está configurada

10. Valida la conectividad de Looker
En la siguiente sección, aprenderás a validar la conectividad de Looker a la instancia de PSC de Cloud SQL con la acción "test" de Looker.
Navega a la conexión de datos ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test.
Una vez que se selecciona Test, Looker se conectará a la base de datos de Postgres como se indica a continuación:

Limpia
Borra los componentes del lab desde una sola terminal de Cloud Shell
gcloud sql instances delete cloud-sql-psc-demo -q
11. Felicitaciones
Felicitaciones. Configuraste y validaste correctamente la conectividad a PSC de Cloud SQL con la consola de Looker potenciada por Private Service Connect.
Creaste instancias de PSC de Cloud SQL como el servicio de productor y el extremo de PSC de Looker que permitieron la conectividad al servicio de productor.
Cosmopup cree que los codelabs son increíbles.

¿Qué sigue?
Consulta algunos codelabs sobre los siguientes temas:
- Usa Private Service Connect para publicar y consumir servicios
- Conéctate a servicios locales a través de redes híbridas con Private Service Connect y un balanceador de cargas de proxy TCP interno
- Acceso a todos los codelabs publicados de Private Service Connect