Questa pagina esamina diversi modi per connettersi a un cluster AlloyDB per PostgreSQL dall'esterno del Virtual Private Cloud (VPC) configurato. Presuppone che tu abbia già creato un cluster AlloyDB.
Informazioni sulle connessioni esterne
Il cluster AlloyDB è costituito da una serie di nodi all'interno di un Google Cloud VPC. Quando crei un cluster, configuri anche l'accesso privato ai servizi tra uno dei tuoi VPC e il VPC gestito da Google contenente il nuovo cluster. Questa connessione in peering ti consente di utilizzare indirizzi IP privati per accedere alle risorse nel VPC del cluster come se facessero parte del tuo VPC.
Esistono situazioni in cui l'applicazione deve connettersi al cluster dall'esterno di questo VPC collegato:
L'applicazione viene eseguita altrove all'interno dell' Google Cloud ecosistema, al di fuori del VPC che hai collegato al tuo cluster tramite l'accesso ai servizi privati.
L'applicazione viene eseguita in una VPC esistente al di fuori della rete di Google.
L'applicazione viene eseguita "on-premise", su un computer situato altrove sulla rete internet pubblica.
In tutti questi casi, devi configurare un servizio aggiuntivo per attivare questo tipo di connessione esterna al tuo cluster AlloyDB.
Riepilogo delle soluzioni di connessione esterna
Ti consigliamo due soluzioni generali per effettuare connessioni esterne, a seconda delle tue esigenze:
Per lo sviluppo o la prototipazione di progetti o per un ambiente di produzione relativamente a basso costo, configura una macchina virtuale (VM) intermedia, nota anche come bastione, all'interno del tuo VPC. Esistono diversi metodi per utilizzare questa VM intermedia come connessione sicura tra un ambiente di applicazione esterno e il tuo cluster AlloyDB.
Per gli ambienti di produzione che richiedono un'alta disponibilità, ti consigliamo di stabilire una connessione permanente tra il VPC e la tua applicazione tramite Cloud VPN o Cloud Interconnect.
Le sezioni successive descrivono in dettaglio queste soluzioni di connessione esterna.
Connettiti tramite una VM intermedia
Per stabilire una connessione a un cluster AlloyDB dall'esterno del suo VPC utilizzando strumenti open source e un numero minimo di risorse aggiuntive, esegui un servizio proxy su una VM intermedia 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 in genere ha un costo inferiore e un tempo di configurazione più rapido rispetto all'utilizzo di un prodotto di connettività di rete. Ha anche degli svantaggi: la disponibilità, la sicurezza e il throughput dei dati della connessione dipendono dalla VM intermediaria, che devi gestire nell'ambito del tuo progetto.
Connettiti tramite IAP
Utilizzando Identity-Aware Proxy (IAP), puoi collegarti in sicurezza al tuo cluster senza dover esporre l'indirizzo IP pubblico della VM intermediaria. Utilizza una combinazione di regole di firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questo percorso. Questo rende IAP una buona soluzione per usi non di produzione come sviluppo e prototipazione.
Per configurare l'accesso IAP al cluster:
Installa Google Cloud CLI sul client esterno.
Prepara il progetto per l'inoltro TCP di IAP.
Quando definisci la nuova regola firewall, consenti il traffico TCP in entrata sulla porta
22
(SSH). Se utilizzi la rete predefinita del progetto con la regoladefault-allow-ssh
precompilata attivata, non è necessario definire un'altra regola.Configura l'inoltro delle porte 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
psql
sul client esterno, collegandolo alla porta locale specificata nel passaggio precedente. Ad esempio, per connetterti come ruolo utentepostgres
alla porta5432
:psql -h localhost -p 5432 -U USERNAME
Sostituisci quanto segue:
USERNAME
: l'utente PostgreSQL a cui vuoi connetterti 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 carichi di lavoro di produzione.
Questa soluzione prevede i seguenti passaggi:
Installa, configura ed esegui un server SOCKS sulla VM intermediaria. Un esempio è Dante, una popolare soluzione open source.
Configura il server in modo che si associ all'interfaccia di rete
ens4
della VM per le connessioni esterne e interne. Specifica la porta che preferisci per le connessioni interne.Configura il firewall del VPC per consentire il traffico TCP dall'indirizzo IP o dall'intervallo IP appropriato alla porta configurata del server SOCKS.
Installa AlloyDB Auth Proxy sul client esterno.
Esegui il proxy di autenticazione AlloyDB sul client esterno, con la variabile di ambiente
ALL_PROXY
impostata 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-instance
tramite un server SOCKS in esecuzione all'indirizzo198.51.100.1
sulla porta1080
:ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \ /projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Se ti connetti da un VPC in peering, puoi utilizzare l'indirizzo IP interno della VM intermedia; in caso contrario, utilizza il suo indirizzo IP esterno.
Testa la connessione utilizzando
psql
sul client esterno, collegandolo alla porta su cui ascolta il proxy di autenticazione AlloyDB. Ad esempio, per connetterti come ruolo utentepostgres
alla porta5432
:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Connettiti tramite un pooler PostgreSQL
Se devi installare ed eseguire AlloyDB Auth Proxy sulla VM intermedia, invece che su un client esterno, puoi abilitare le connessioni sicure accoppiandolo a un proxy consapevole del protocollo, noto anche come pooler. Alcuni dei pooler open source più utilizzati per PostgreSQL sono Pgpool-II e PgBouncer.
In questa soluzione, esegui sia il proxy di autenticazione AlloyDB sia il pooler sulla VM intermediaria. Il client o l'applicazione può quindi connettersi in modo sicuro direttamente al pooler tramite SSL, senza dover eseguire servizi aggiuntivi. Il pooler si occupa di trasmettere le query PostgreSQL al tuo cluster AlloyDB tramite l'Auth Proxy.
Poiché ogni istanza all'interno di un cluster AlloyDB ha un indirizzo IP interno separato, ogni servizio proxy può comunicare con una sola istanza specifica: l'istanza principale, quella di standby o un pool di lettura. Pertanto, devi eseguire un servizio di pooler separato, con un certificato SSL configurato in modo appropriato, per ogni istanza del cluster.
Connettiti tramite Cloud VPN o Cloud Interconnect
Per le attività di produzione che richiedono alta disponibilità (HA), consigliamo di utilizzare un prodotto Google Cloud Connettività di rete: Cloud VPN o Cloud Interconnect, a seconda delle esigenze e della topologia di rete del servizio esterno. Poi, configura il router Cloud per pubblicizzare le route appropriate.
Sebbene l'utilizzo di un prodotto di connettività di rete sia un processo più complesso rispetto alla configurazione di una VM intermediaria, questo approccio trasferisce a Google il carico di uptime e disponibilità. In particolare, la VPN ad alta disponibilità offre uno SLA del 99,99%, il che la rende appropriata per gli ambienti di produzione.
Le soluzioni di connettività di rete ti liberano anche dalla necessità di gestire una VM sicura e separata all'interno della tua applicazione, evitando i rischi di un punto di errore singolo insiti in questo approccio.
Per scoprire di più su queste soluzioni, consulta Scegliere un prodotto Connettività di rete.
Passaggi successivi
- Scopri di più sull'accesso privato ai servizi e sulla connettività on-premise nelle Google Cloud VPC.