Acceso de PSC de Looker a PSC de Cloud SQL

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.

145ea4672c3a3b14.png

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.

259493afd914f68b.png

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

def88091b42bfe4d.png

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

1e7035ea608d7d23.png

4. Configuración y requisitos

Configuración del entorno de autoaprendizaje

  1. 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.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 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.
  1. 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:

55efc1aaa7a4d3ad.png

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:

7ffe5cbb04455448.png

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

1367ec0136aa5ad6.png

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

18940483f646ed15.png

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

2d4684d722d31e4b.png

9fa909f826dec963.png

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.

eb3ef74d3ae71f1a.png

La conexión ya está configurada

29017202470ad81f.png

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:

d9729caf9a61bfc2.png

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.

c911c127bffdee57.jpeg

¿Qué sigue?

Consulta algunos codelabs sobre los siguientes temas:

Lecturas adicionales y videos

Documentos de referencia