Connettiti a un'istanza Cloud SQL dall'esterno del suo VPC

In questa pagina viene descritto come connettersi a un account Cloud SQL dall'esterno del VPC (Virtual Private Cloud) configurato.

Prima di iniziare

Prima di iniziare, assicurati di completare le seguenti azioni:

  1. Devi creare un'istanza Cloud SQL.
  2. Puoi configurare l'istanza in modo che utilizzi un indirizzo IP interno invece di un indirizzo IP esterno.

Informazioni sulle connessioni esterne

L'istanza Cloud SQL è composta da un numero di nodi all'interno di un VPC gestito da Google. Quando crei un'istanza, configuri anche l'accesso privato ai servizi o Private Service Connect tra uno dei tuoi VPC e il VPC gestito da Google, contenente in esecuzione in un'istanza Compute Engine. Questa connessione in peering ti consente di utilizzare indirizzi IP interni per accedere alle risorse sul VPC dell'istanza come se facessero parte del tuo VPC.

Nelle situazioni seguenti, connettiti all'istanza dall'esterno di VPC connesso:

  • L'applicazione viene eseguita all'esterno del VPC che hai utilizzato per connetterti all'istanza tramite l'accesso privato ai servizi o Private Service Connect.

  • L'applicazione viene eseguita su un VPC esterno alla rete Google.

  • L'applicazione viene eseguita su una macchina che si trova da qualche parte altro ancora sulla rete internet pubblica.

In tutti questi casi, devi configurare un servizio aggiuntivo per abilitare di questo tipo di connessione esterna all'istanza Cloud SQL.

Consigliamo le seguenti soluzioni per la creazione di connessioni esterne, a seconda delle tue esigenze:

Nelle sezioni seguenti vengono descritte queste soluzioni.

Connettiti tramite una VM intermedia

Per stabilire una connessione a un'istanza Cloud SQL da all'esterno del VPC utilizzando strumenti open source e un numero di risorse, eseguire un servizio proxy su una VM intermediaria configurata al suo interno in un VPC. Puoi configurare una nuova VM o utilizzarne una già in esecuzione VPC dell'istanza Cloud SQL.

Come soluzione autogestita, l'utilizzo di una VM intermediaria di solito costa e ha tempi di configurazione più rapidi rispetto all'utilizzo di una connettività di rete prodotto. Presenta anche degli svantaggi: la disponibilità della connessione, la sicurezza e la velocità effettiva dei dati dipendono tutte dall'intermediario che devi gestire come parte del progetto.

Connettiti tramite IAP

Con Identity-Aware Proxy (IAP), puoi connettersi all'istanza Cloud SQL in modo sicuro senza dover esporre l'indirizzo IP interno della VM intermediaria. Utilizzi una combinazione di firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questa route. Questo rende IAP una buona soluzione per gli utilizzi non di produzione come sviluppo e prototipazione.

Architettura di Identity-Aware Proxy

In questo diagramma, IAP funge da gateway tra il client esterno all'esterno del VPC e la VM intermedia all'interno del VPC. Il client crea un tunnel SSH a IAP. Il proxy di autenticazione Cloud SQL cripta il traffico tra la VM e l'istanza Cloud SQL. Attraverso questi due proxy, viene stabilita la comunicazione tra il client e l'istanza.

Per configurare l'accesso IAP all'istanza, segui questi passaggi:

  1. Sul client esterno, installa gcloud CLI.

  2. Sulla VM intermedia, scarica e installa il proxy di autenticazione Cloud SQL.

  3. Sulla VM intermedia, avvia il proxy di autenticazione Cloud SQL.

    Poiché la VM è configurata con un indirizzo IP interno, quando avvii il proxy di autenticazione Cloud SQL, devi fornire l'opzione --private-ip.

  4. Nel progetto Google Cloud, attiva l'inoltro TCP IAP.

    Quando definisci la nuova regola firewall, consenti il traffico TCP in entrata verso porta 22 (SSH). Se utilizzi le impostazioni predefinite del progetto con la sua precompilata default-allow-ssh di Google Cloud abilitata, non occorre definire una regola aggiuntiva.

  5. Configura il port forwarding tra il client esterno e una VM intermedia SSH tramite IAP:

    gcloud compute ssh VM_NAME \
    --tunnel-through-iap \
    --zone=ZONE_NAME \
    --ssh-flag="-L 3306:localhost:3306"
    

    Effettua le seguenti sostituzioni:

    • VM_NAME: il nome della VM
    • ZONE_NAME: il nome della zona associata alla VM
  6. Sul client esterno, verifica la connessione utilizzando mysql.

Connettiti tramite un proxy SOCKS

L'esecuzione di un servizio SOCKS sulla VM intermedia fornisce un servizio scalabile all'istanza Cloud SQL con la crittografia end-to-end fornita dal proxy di autenticazione Cloud SQL.

Per saperne di più sull'utilizzo di un proxy SOCKS per la connessione all'istanza Cloud SQL, consulta Connettiti utilizzando un proxy intermedio (SOCKS5).

Connettiti tramite un pooler

Se devi installare ed eseguire il proxy di autenticazione Cloud SQL sulla VM intermedia, anziché un client esterno, puoi abilitare accoppiandolo con un proxy sensibile al protocollo, inoltre noto come pooler. Un popolare pooler open source per MySQL è SQL proxy.

In questa soluzione, eseguirai sia il proxy di autenticazione Cloud SQL che il pooler sulla una VM intermediaria. Il client o la tua applicazione potranno quindi connettersi direttamente al pooler tramite SSL, senza la necessità di eseguire servizi aggiuntivi. Il pooler si occupa di trasferire PostgreSQL query all'istanza Cloud SQL tramite Proxy di autenticazione Cloud SQL.

Poiché ogni istanza Cloud SQL ha un indirizzo IP interno separato, ciascun servizio proxy può comunicare una sola istanza specifica: l'istanza principale, quella in standby o un pool di lettura. Pertanto, per ogni istanza, devi eseguire un servizio pooler separato con un certificato SSL configurato in modo appropriato.

Connettiti tramite Cloud VPN o Cloud Interconnect

Per i lavori di produzione che richiedono l'alta disponibilità, consigliamo il l'utilizzo di un modello Google Cloud Connettività di rete, come Cloud VPN o Cloud Interconnect, a seconda delle esigenze del servizio esterno e della topologia di rete. Tu quindi configura Router Cloud per pubblicizzare i percorsi appropriati.

Per saperne di più sulle soluzioni di connettività di rete, vedi Scelta di un prodotto per la connettività di rete.

Passaggi successivi