1. Introducción
En este codelab, realizarás una conexión de norte a sur a Cloud SQL implementada 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, tú eres el consumidor del servicio y Google es el productor del servicio, 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 de 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 de 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 de productor:
- Crea un extremo de PSC en Looker asociado con el adjunto de servicio del productor
- Usa Looker Console para crear una conexión de base de datos a Cloud SQL PSC
- 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
La creación de una instancia de PSC de Cloud SQL requiere la identificación de los proyectos de PSC permitidos. Por lo tanto, se debe proporcionar el proyecto de inquilino de PSC de Looker 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
En 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 del 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 de 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 de productor
En la siguiente sección, crearás una instancia de PSC de Cloud SQL que se usará para pruebas y se implementará con una contraseña predefinida que especifique el proyecto de PSC de Looker en la lista de proyectos de PSC permitidos.
Creación de PSC de Cloud SQL
En Cloud Shell, crea una instancia y habilita Private Service Connect. Actualiza [INSTANCE_PROJECT] con el ID de 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 el archivo adjunto del 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.
En Cloud Shell, haz lo siguiente:
gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink
El resultado del ejemplo produce 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 la consola de Cloud, puedes obtener el archivo adjunto del 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 productores de Cloud SQL con el PSC de Looker Core mediante el uso de marcas –psc-service-attachment en Cloud Shell para un solo dominio.
En 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: Es el 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).
En 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
En Cloud Shell, valida que el estado de conexión de serviceAttachments sea “ACCEPTED”. Asegúrate de actualizar con tu INSTANCE_NAME de 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"
}
Cómo validar 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 Looker Console para crear una conexión de base de datos a la instancia de PSC de Cloud SQL.
Navega a ADMINISTRADOR → BASE DE DATOS → CONEXIONES → Selecciona AGREGAR CONEXIÓN.
Completa los detalles de la conexión según la captura de pantalla que aparece a continuación 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 con la instancia de PSC de Cloud SQL con la acción "probar" de Looker.
Navega a la conexión de datos ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test
Una vez que se seleccione Test, Looker se conectará a la base de datos de Postgres como se indica a continuación:
Realiza una limpieza
Borra 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 Looker Console potenciado 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 piensa que los codelabs son geniales.
¿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 de Private Service Connect publicados