Accesso da sud di Looker PSC a Cloud SQL PSC

1. Introduzione

In questo codelab eseguirai una connessione in uscita a Cloud SQL di cui è stato eseguito il deployment con Private Service Connect come produttore di servizi.

Private Service Connect è una funzionalità di Google Cloud Networking che consente ai consumer di accedere ai servizi gestiti privatamente dall'interno della propria rete VPC. Allo stesso modo, consente ai producer di servizi gestiti di ospitare questi servizi nelle proprie reti VPC separate e di offrire una connessione privata ai propri consumer. Ad esempio, quando utilizzi Private Service Connect per accedere a Looker, tu sei il consumer di servizi e Google è il producer di servizi, come evidenziato nella Figura 1.

145ea4672c3a3b14.png

L'accesso in uscita, noto anche come PSC inverso, consente al consumer di creare un servizio pubblicato come producer per consentire a Looker di accedere agli endpoint on-premise, in un VPC, ai servizi gestiti e a internet. Le connessioni in uscita possono essere implementate in qualsiasi regione, indipendentemente da dove viene implementato Looker PSC, come evidenziato nella Figura 2.

259493afd914f68b.png

Cosa imparerai a fare

  • Crea un servizio producer di istanze Cloud SQL Private Service Connect
  • Crea un endpoint Private Service Connect in Looker come consumer di servizi

Che cosa ti serve

def88091b42bfe4d.png

2. Cosa creerai

Creerai un'istanza Cloud SQL PSC di cui è stato eseguito il deployment come produttore di servizi associato a Looker PSC come consumer di servizi.

Le seguenti azioni convalidano l'accesso al servizio Producer:

  • Crea un endpoint PSC in Looker associato al collegamento del servizio producer
  • Utilizza la console Looker per creare una connessione al database a Cloud SQL PSC
  • Testa la connettività a Cloud SQL PSC autenticandoti e accedendo a uno schema predefinito

3. Topologia del codelab

1e7035ea608d7d23.png

4. Configurazione e requisiti

Configurazione dell'ambiente autonomo

  1. Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
  • L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come PROJECT_ID). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto.
  • Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti in questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.

Avvia Cloud Shell

Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Nella console Google Cloud, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

55efc1aaa7a4d3ad.png

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere un risultato simile a questo:

7ffe5cbb04455448.png

Questa macchina virtuale è caricata con tutti gli strumenti per sviluppatori di cui avrai bisogno. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Tutto il lavoro in questo codelab può essere svolto all'interno di un browser. Non devi installare nulla.

5. Prima di iniziare

Abilita API

In Cloud Shell, assicurati che l'ID progetto sia configurato:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Attiva tutti i servizi necessari:

gcloud services enable compute.googleapis.com

6. Identificare il progetto PSC di Looker

La creazione di un'istanza Cloud SQL PSC richiede l'identificazione dei progetti PSC consentiti, pertanto il progetto tenant PSC di Looker deve essere fornito al momento della creazione dell'istanza Cloud SQL o aggiornato se si utilizza un'istanza esistente.

Determinare il progetto PSC di Looker utilizzando gcloud

In Cloud Shell, aggiorna [INSTANCE_NAME] con il nome dell'istanza Looker PSC per ottenere l'ID progetto Looker PSC:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri

Nell'output di esempio, t7ec792caf2a609d1-tp è il progetto Looker PSC:

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",

Determinare il progetto PSC di Looker utilizzando Cloud Console

In Cloud Console, vai a:

Looker → Istanza Looker PSC

1367ec0136aa5ad6.png

7. Crea l'istanza Cloud SQL del produttore

Nella sezione seguente, creerai un'istanza PSC di Cloud SQL utilizzata a scopo di test e implementata con una password predefinita che specifica il progetto PSC di Looker nell'elenco dei progetti PSC consentiti.

Creazione di Cloud SQL PSC

In Cloud Shell, crea un'istanza e abilita Private Service Connect, aggiorna [INSTANCE_PROJECT] con l'ID progetto PSC di 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

Esempio:

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

Ottieni l'allegato di servizio Cloud SQL

Dopo aver creato un'istanza Cloud SQL con Private Service Connect abilitato, recupera l'URI del collegamento al servizio utilizzato in un passaggio successivo per creare l'endpoint Private Service Connect in Looker.

In Cloud Shell, esegui le seguenti operazioni:

gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink

L'output di esempio produce l'URI del collegamento al servizio:

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

Da Cloud Console puoi ottenere il collegamento al servizio PSC Cloud SQL:

In Cloud Console, vai a:

SQL → Istanza SQL → Connessioni

18940483f646ed15.png

8. Stabilisci una connessione dell'endpoint PSC in Looker

Nella sezione seguente, assocerai il collegamento del servizio Cloud SQL Producers a Looker Core PSC utilizzando i flag --psc-service-attachment in Cloud Shell per un singolo dominio.

In Cloud Shell, crea l'associazione PSC aggiornando i seguenti parametri in modo che corrispondano al tuo ambiente:

  • INSTANCE_NAME: il nome dell'istanza di Looker (Google Cloud core).
  • DOMAIN_1: sql.database1.com
  • SERVICE_ATTACHMENT_1: URI acquisito durante la descrizione dell'istanza Cloud SQL PSC
  • REGIONE: la regione in cui è ospitata l'istanza di Looker (Google Cloud core)

In Cloud Shell, esegui le seguenti operazioni:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Esempio:

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

In Cloud Shell, verifica che serviceAttachments.connectionStatus sia "ACCEPTED". Assicurati di eseguire l'aggiornamento con il nome dell'istanza PSC di Looker:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Esempio:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Esempio:

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"
}

Convalida l'endpoint PSC in Cloud Console

Dalla console Cloud puoi convalidare la connessione PSC

In Cloud Console, vai a:

Looker → Istanza Looker → Dettagli

2d4684d722d31e4b.png

9fa909f826dec963.png

9. Integrare Looker PSC con Cloud SQL PSC

Nella sezione seguente utilizzerai la console Looker per creare una connessione al database all'istanza Cloud SQL PSC.

Vai ad ADMIN → DATABASE → CONNECTIONS (AMMINISTRAZIONE → DATABASE → CONNESSIONI) → seleziona ADD CONNECTION (AGGIUNGI CONNESSIONE).

Compila i dettagli della connessione come nello screenshot riportato di seguito, seleziona CONNETTI

eb3ef74d3ae71f1a.png

La connessione è ora configurata

29017202470ad81f.png

10. Convalidare la connettività di Looker

Nella sezione seguente imparerai a convalidare la connettività di Looker all'istanza Cloud SQL PSC utilizzando l'azione "test" di Looker.

Vai a Data Connection ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test (AMMINISTRAZIONE → DATABASE → CONNESSIONI → cloud-sql-psc-demo → Test).

Una volta selezionato Test, Looker si connetterà al database postgres come indicato di seguito:

d9729caf9a61bfc2.png

Esegui la pulizia

Elimina i componenti del lab da un singolo terminale Cloud Shell

gcloud sql instances delete cloud-sql-psc-demo -q

11. Complimenti

Congratulazioni, hai configurato e convalidato correttamente la connettività a Cloud SQL PSC utilizzando la console Looker basata su Private Service Connect.

Hai creato istanze Cloud SQL PSC come servizio produttore e l'endpoint Looker PSC che consentiva la connettività al servizio produttore.

Cosmopup pensa che i codelab siano fantastici.

c911c127bffdee57.jpeg

Passaggi successivi

Dai un'occhiata ad alcuni di questi codelab...

Ulteriori letture e video

Documentazione di riferimento