Connessione a Cloud SQL: IP pubblico e reti autorizzate

1. Introduzione

Ultimo aggiornamento: 2020-05-04

Valutare la connessione

Esistono molti tipi di applicazioni e framework. In questo codelab, illustreremo la connessione a Cloud SQL da qualsiasi luogo. La possibilità di connettersi viene attivata autorizzando gli IP autorizzati a connettersi esplicitamente. È probabilmente l'opzione meno sicura per connettersi a un database Cloud SQL, ma è anche la più facile da configurare e iniziare a utilizzare.

A volte è necessario eseguire questa operazione in produzione, ma se puoi evitarlo, ti consigliamo di optare per un'alternativa più sicura, ad esempio l'utilizzo del proxy Cloud SQL. Questa configurazione è ideale per lo sviluppo e i test.

Cosa creerai

Questo codelab è molto minimalista. L'idea è illustrare i dadi del pezzo di raccordo senza dover pensare troppo all'applicazione stessa. In un mondo perfetto, connettersi a Cloud SQL è come connettersi a qualsiasi altra istanza di un database SQL, quindi dovresti essere in grado di utilizzare ciò che crei in questo codelab e applicarlo a qualsiasi applicazione di produzione.

Le istruzioni includeranno sia una procedura dettagliata delle operazioni nella console di Google Cloud, sia gli equivalenti dei comandi gcloud per l'utilizzo nell'interfaccia a riga di comando o nell'automazione.

I singoli passaggi sono:

  • Crea un'istanza Cloud SQL (questo tutorial utilizza Postgres, ma funziona in modo simile per MySQL o SQL Server) e autorizza IP specifici autorizzati a connettersi all'istanza

Che cosa ti serve

  • Un account Google Cloud su cui disponi delle autorizzazioni per abilitare le API e creare servizi
  • Il client Postgres installato per verificare la connettività (o il client MySQL se vuoi utilizzare MySQL anziché Postgres)

2. Creazione dell'istanza Cloud SQL

Cloud SQL è la nostra offerta per i database relazionali gestiti. Supporta MySQL, PostgreSQL e SQL Server. Per questo codelab creeremo un database Postgres, ma le istruzioni sono simili per tutti e tre.

Nella console

Vai alla pagina Cloud SQL e fai clic sul pulsante 241836b315e11bf5.png.

Come accennato, la maggior parte di questo codelab è generico per qualsiasi versione SQL, ma per questo codelab scegli PostgreSQL.

  1. Assegna un ID all'istanza
  2. Scegli una regione vicina a dove ti trovi
  3. Inserisci una password per l'utente predefinito (il nome utente sarà quello predefinito per il database selezionato, ad es. root per MySQL o postgres per PostgreSQL)
  4. Scorri verso il basso e fai clic sulla show configuration options
  5. Espandi la sezione Connectivity
  6. Verifica che la casella Public IP sia selezionata e che Private IP sia deselezionata
  7. Fai clic sul pulsante 883b32ec2734de01.png
  8. Recupera l'indirizzo IP del luogo da cui ti stai connettendo. Il modo più semplice è cercare "Qual è il mio IP" su Google nei risultati di ricerca.
  1. Inserisci la specifica IP nel campo Rete, assegnale un nome, se lo desideri, e fai clic su Fine nella casella New Network.
  2. Scorri verso il basso e fai clic su Crea.

Generalmente l'avvio dell'istanza richiede qualche minuto.

Una volta creata l'istanza, fai clic al suo interno nell'elenco e nella pagina Panoramica, sotto l'intestazione Connect to this instance, copia il public IP address elencato. Non sarà presente fino a quando l'istanza non sarà completamente creata, anche se puoi fare clic sui dettagli prima di creare completamente l'istanza.

Utilizzo di gcloud

Innanzitutto, devi recuperare l'indirizzo IP che vuoi autorizzare a connettersi all'istanza Cloud SQL. Il modo più semplice per farlo è aprire un browser e cercare "Qual è il mio IP". e nei risultati di ricerca è visualizzato il tuo indirizzo IP pubblico. Se però non riesci ad aprire un browser da cui stai svolgendo questa operazione, puoi utilizzare una utility come dig.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

Dovrai specificare una regione per la tua istanza Cloud SQL più vicina a dove ti trovi. Per visualizzare l'elenco delle regioni, esegui:

gcloud sql tiers list

Ogni livello è disponibile solo in determinate regioni. Per la parte del tutorial dedicata a gcloud, stiamo semplicemente creando una micro istanza, quindi puoi trovare le regioni per questo livello disponibili eseguendole in modo specifico (purché grep sia installato):

gcloud sql tiers list | grep db-f1-micro

Il comando per creare l'istanza si presenta in questo modo (non dimenticare di sostituire <AUTHORIZED_IP> con l'IP che hai ottenuto dal browser o da dig e <REGION> con uno vicino a te e una password per l'utente root "postgres"):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

Il completamento dell'operazione richiede alcuni minuti.

Una volta completato, l'output nell'interfaccia a riga di comando mostrerà PRIMARY_ADDRESS dell'istanza. Copialo per il passaggio successivo.

3. Testa la connessione e la conclusione

Per verificare che l'istanza sia stata configurata correttamente, dalla macchina di cui hai inserito l'indirizzo IP, puoi eseguirla dalla riga di comando:

psql "host=<IP copiato dal passaggio precedente> port=5432 sslmode=disable user=postgres"

Quindi specifica la password dell'utente predefinita che hai impostato durante la creazione dell'istanza Cloud SQL.

Complimenti! Se tutto è andato bene, dovresti avere il prompt di Postgres e poter eseguire i comandi sul tuo database.

Passaggi successivi

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

Documenti di riferimento