Per connetterti a un cluster AlloyDB per PostgreSQL da applicazioni in esecuzione al di fuori della sua rete Virtual Private Cloud (VPC) configurata, ad esempio ambienti on-premise, altri cloud provider o reti VPC separate, puoi instradare il traffico tramite una macchina virtuale (VM) intermediaria, Cloud VPN o Cloud Interconnect. Prima di iniziare, assicurati di aver creato un cluster AlloyDB.
Informazioni sulle connessioni esterne
Il cluster AlloyDB è composto da un numero di nodi all'interno di una rete VPCGoogle Cloud . Quando crei un cluster, puoi configurare l'accesso privato ai servizi tra una delle tue reti VPC e la rete VPC gestita da Google contenente il nuovo cluster. Questa connessione in peering ti consente di utilizzare indirizzi IP privati per accedere alle risorse sulla rete VPC del cluster come se facessero parte della tua rete VPC.
Esistono situazioni in cui l'applicazione deve connettersi al cluster dall'esterno di questa rete VPC connessa:
La tua applicazione viene eseguita altrove nell'ecosistema Google Cloud , all'esterno della rete VPC che hai connesso al cluster tramite l'accesso privato ai servizi.
La tua applicazione viene eseguita su una rete VPC che esiste al di fuori della rete di Google.
La tua applicazione viene eseguita "on-premise", su una macchina situata in un'altra posizione sulla rete internet pubblica.
In tutti questi casi, devi configurare un servizio aggiuntivo per abilitare questo tipo di connessione esterna al tuo cluster AlloyDB.
Riepilogo delle soluzioni di connessione esterna
A seconda delle tue esigenze, ti consigliamo due soluzioni generali per stabilire connessioni esterne:
Per lo sviluppo di progetti o la prototipazione o per un ambiente di produzione a costi relativamente bassi, configura una macchina virtuale (VM) intermedia, nota anche come bastion, all'interno del VPC. Esistono vari metodi per utilizzare questa VM intermediaria come connessione sicura tra un ambiente di applicazione esterno e il tuo cluster AlloyDB.
Per gli ambienti di produzione che richiedono alta affidabilità, valuta la possibilità di stabilire una connessione permanente tra il VPC e la tua applicazione tramite Cloud VPN o Cloud Interconnect.
Le sezioni seguenti descrivono in dettaglio queste soluzioni di connessione esterna.
Connettiti tramite una VM intermedia
Per stabilire una connessione a un cluster AlloyDB dall'esterno del VPC utilizzando strumenti open source e un numero minimo di risorse aggiuntive, esegui un servizio di proxy su una VM intermediaria configurata all'interno del VPC. Puoi configurare una nuova VM per questo scopo o utilizzare una VM già in esecuzione nel VPC del tuo cluster AlloyDB.
In quanto soluzione autogestita, l'utilizzo di una VM intermedia generalmente costa meno e ha un tempo di configurazione più rapido rispetto all'utilizzo di un prodotto Connettività di rete. Presenta anche degli svantaggi: la disponibilità, la sicurezza e la velocità effettiva dei dati della connessione dipendono tutte dalla VM intermedia, che devi gestire come parte del tuo progetto.
Connettiti tramite IAP
Utilizzando Identity-Aware Proxy (IAP), puoi connetterti in modo sicuro al tuo cluster senza dover esporre l'indirizzo IP pubblico della VM intermedia. Utilizzi una combinazione di regole firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questa route. Questo rende IAP una buona soluzione per utilizzi non di produzione, come lo sviluppo e la prototipazione.
Per configurare l'accesso IAP al tuo cluster, segui questi passaggi:
Installa Google Cloud CLI sul tuo client esterno.
Prepara il progetto per l'inoltro TCP di IAP.
Quando definisci la nuova regola firewall, consenti il traffico TCP in entrata alla porta
22(SSH). Se utilizzi la rete predefinita del progetto con la regoladefault-allow-sshprecompilata abilitata, non devi definire una regola aggiuntiva.Configura il port forwarding tra il client esterno e la VM intermedia utilizzando SSH tramite IAP.
gcloud compute ssh my-vm \ --tunnel-through-iap \ --zone=ZONE_ID \ --ssh-flag="-L PORT_NUMBER:ALLOYDB_IP_ADDRESS:5432"Sostituisci quanto segue:
ZONE_ID: l'ID della zona in cui si trova il cluster, ad esempious-central1-a.ALLOYDB_IP_ADDRESS: l'indirizzo IP dell'istanza AlloyDB a cui vuoi connetterti.PORT_NUMBER: il numero di porta della VM.
Testa la connessione utilizzando
psqlsul tuo client esterno, in modo che si connetta alla porta locale specificata nel passaggio precedente. Ad esempio, per connetterti come ruolo utentepostgresalla porta5432:psql -h localhost -p 5432 -U USERNAMESostituisci quanto segue:
USERNAME: l'utente PostgreSQL che vuoi connettere all'istanza, ad esempio l'utente predefinitopostgres.
Connettiti tramite un proxy SOCKS
L'esecuzione di un servizio SOCKS sulla VM intermedia fornisce una connessione flessibile e scalabile al cluster AlloyDB, con crittografia end-to-end fornita dal proxy di autenticazione AlloyDB. Con una configurazione appropriata, puoi renderlo adatto ai workload di produzione.
Questa soluzione prevede i seguenti passaggi:
Installa, configura ed esegui un server SOCKS sulla VM intermediaria. Un esempio è Dante, una soluzione open source molto diffusa.
Configura il server in modo che si associ all'interfaccia di rete
ens4della VM per le connessioni esterne e interne. Specifica la porta che preferisci per le connessioni interne.Configura le regole firewall VPC per consentire il traffico TCP dall'indirizzo o dall'intervallo IP appropriato alla porta configurata del server SOCKS.
Installa il proxy di autenticazione AlloyDB sul client esterno.
Esegui il proxy di autenticazione AlloyDB sul client esterno, con la variabile di ambiente
ALL_PROXYimpostata sull'indirizzo IP della VM intermedia e specificando la porta utilizzata dal server SOCKS.Questo esempio configura il proxy di autenticazione AlloyDB per connettersi al database all'indirizzo
my-main-instancetramite un server SOCKS in esecuzione all'indirizzo198.51.100.1sulla porta1080:ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \ projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_IDSe ti connetti da una rete VPC in peering, puoi utilizzare l'indirizzo IP interno della VM intermedia; altrimenti, utilizza il suo indirizzo IP esterno.
Testa la connessione utilizzando
psqlsul tuo client esterno, in modo che si connetta alla porta su cui è in ascolto il proxy di autenticazione AlloyDB. Ad esempio, per connetterti come ruolo utentepostgresalla porta5432:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Connettiti tramite un pooler PostgreSQL
Se devi installare ed eseguire il proxy di autenticazione AlloyDB sulla VM intermedia, anziché su un client esterno, puoi abilitare le connessioni sicure accoppiandolo a un proxy sensibile al protocollo, noto anche come pooler. I pooler open source più diffusi per PostgreSQL includono Pgpool-II e PgBouncer.
In questa soluzione, esegui sia il proxy di autenticazione AlloyDB sia il pooler sulla VM intermedia. Il client o l'applicazione può quindi connettersi direttamente al pooler in modo sicuro tramite SSL, senza la necessità di eseguire servizi aggiuntivi. Il pooler si occupa di trasmettere le query PostgreSQL al cluster AlloyDB tramite Auth Proxy.
Poiché ogni istanza all'interno di un cluster AlloyDB ha un indirizzo IP interno separato, ogni servizio di proxy può comunicare con una sola istanza specifica: l'istanza principale, l'istanza in standby o un pool di lettura. Pertanto, devi eseguire un servizio pooler separato, con un certificato SSL configurato in modo appropriato, per ogni istanza nel cluster.
Connettiti tramite Cloud VPN o Cloud Interconnect
Per il lavoro di produzione che richiede alta affidabilità (HA), consigliamo l'utilizzo di un prodotto Google Cloud Network Connectivity: Cloud VPN o Cloud Interconnect, a seconda delle esigenze del servizio esterno e della topologia di rete. Poi, configura router Cloud per annunciare le route appropriate.
Sebbene l'utilizzo di un prodotto Connettività di rete sia un processo più complesso rispetto alla configurazione di una VM intermedia, questo approccio trasferisce l'onere dell'uptime e della disponibilità da te a Google. In particolare, VPN ad alta disponibilità offre uno SLA del 99,99%, il che la rende adatta agli ambienti di produzione.
Le soluzioni di connettività di rete ti liberano anche dalla necessità di mantenere una VM sicura separata come parte della tua applicazione, evitando i rischi di single point of failure intrinseci in questo approccio.
Per saperne di più su queste soluzioni, consulta Scelta di un prodotto per la connettività di rete.
Passaggi successivi
- Scopri di più sull'accesso privato ai servizi e sulla connettività on-premise nelle reti VPC Google Cloud .