Accesso da sud di Looker PSC a Cloud SQL PSC

1. Introduzione

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

Private Service Connect è una funzionalità della rete di Google Cloud che consente ai consumer di accedere ai servizi gestiti in privato dall'interno della loro rete VPC. Analogamente, 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, sei il consumer del servizio e Google è il producer del servizio, 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 produttore 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 è 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
  • Creare un endpoint Private Service Connect in Looker come consumer di servizi

Che cosa ti serve

def88091b42bfe4d.png

2. Cosa creerai

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

Le seguenti azioni convalidano l'accesso al servizio Producer:

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

3. Topologia del codelab

1e7035ea608d7d23.png

4. Configurazione e requisiti

Configurazione dell'ambiente a tuo ritmo

  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 al progetto. Si tratta di una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
  • L'ID progetto è univoco per tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca; di solito non ti interessa quale sia. Nella maggior parte dei codelab, dovrai fare riferimento al tuo ID progetto (in genere identificato come PROJECT_ID). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare il tuo e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane invariato per tutta la durata del progetto.
  • Per tua informazione, esiste un terzo valore, un Numero progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare le API/risorse Cloud. La partecipazione a questo codelab non ha costi, o quasi. Per arrestare le risorse ed evitare di incorrere in fatturazione al termine di questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud sono idonei al programma Prova senza costi di 300$.

Avvia Cloud Shell

Sebbene Google Cloud possa essere utilizzato 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

Dovrebbe richiedere solo pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere qualcosa di simile a questo:

7ffe5cbb04455448.png

Questa macchina virtuale contiene tutti gli strumenti di sviluppo 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 di rete. Tutto il lavoro in questo codelab può essere svolto in 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. Identifica il progetto PSC di Looker

La creazione di un'istanza PSC Cloud SQL 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 PSC di Looker per ottenere l'ID progetto PSC di Looker:

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

Nell'output di esempio, t7ec792caf2a609d1-tp è il progetto PSC di 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",

Determinare il progetto Looker PSC utilizzando la console Cloud

In Cloud Console, vai a:

Looker → Istanza PSC di Looker

1367ec0136aa5ad6.png

7. Crea l'istanza Cloud SQL del produttore

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

Creazione di un PSC Cloud SQL

In Cloud Shell, crea un'istanza e abilita Private Service Connect, aggiorna [INSTANCE_PROJECT] con il tuo 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'attacco del servizio Cloud SQL

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

In Cloud Shell, svolgi i seguenti passaggi:

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

L'output di esempio genera 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 a un servizio PSC Cloud SQL:

In Cloud Console, vai a:

SQL → Istanza SQL → Connessioni

18940483f646ed15.png

8. Stabilire una connessione all'endpoint PSC in Looker

Nella sezione seguente, assocerai il collegamento a un servizio dei produttori Cloud SQL a Looker Core PSC tramite l'utilizzo dei flag –psc-service-attachment in Cloud Shell per un singolo dominio.

In Cloud Shell, crea l'associazione psc aggiornando i seguenti parametri in base 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 PSC Cloud SQL
  • REGION: la regione in cui è ospitata l'istanza di Looker (Google Cloud core)

In Cloud Shell, svolgi i seguenti passaggi:

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, convalida che lo stato connectionStatus di serviceAttachments sia "ACCEPTED". Assicurati di aggiornare il valore INSTANCE_NAME del tuo 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 nella console Cloud

Dalla console Cloud puoi convalidare la connessione al PSC

In Cloud Console, vai a:

Looker → Istanza Looker → Dettagli

2d4684d722d31e4b.png

9fa909f826dec963.png

9. Integrare il PSC di Looker con il PSC di Cloud SQL

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

Vai ad AMMINISTRAZIONE → DATABASE → CONNESSIONI → seleziona AGGIUNGI CONNESSIONE.

Compila i dettagli della connessione come indicato nello screenshot di seguito, quindi seleziona COLLEGA.

eb3ef74d3ae71f1a.png

La connessione è ora configurata

29017202470ad81f.png

10. Convalida la connettività di Looker

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

Vai alla connessione dati AMMINISTRAZIONE → DATABASE → CONNESSIONI → cloud-sql-psc-demo → Test

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

d9729caf9a61bfc2.png

Esegui la pulizia

Eliminare 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 di Looker basata su Private Service Connect.

Hai creato istanze PSC Cloud SQL come servizio di produzione e endpoint PSC di Looker che consentivano la connettività al servizio di produzione.

Cosmopup pensa che i codelab siano fantastici.

c911c127bffdee57.jpeg

Passaggi successivi

Dai un'occhiata ad alcuni di questi codelab…

Letture e video di approfondimento

Documentazione di riferimento