Questa pagina esamina diversi modi per connettersi a un cluster AlloyDB per PostgreSQL dall'esterno del VPC (Virtual Private Cloud) configurato. Presuppone che tu abbia già creato un cluster AlloyDB.
Informazioni sulle connessioni esterne
Il tuo cluster AlloyDB è composto da un numero 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, utilizzando indirizzi IP privati.
Esistono situazioni in cui l'applicazione deve connettersi al cluster dall'esterno di questo VPC connesso:
La tua applicazione viene eseguita altrove nell'ecosistema Google Cloud , al di fuori del VPC a cui ti sei connesso al cluster tramite l'accesso privato ai servizi.
La tua applicazione viene eseguita su un VPC che esiste al di fuori della rete di Google.
La tua applicazione viene eseguita "on-premise", su una macchina che si trova altrove su internet pubblico.
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, consigliamo due soluzioni generali per stabilire connessioni esterne:
Per lo sviluppo o la prototipazione di progetti oppure per un ambiente di produzione a costi relativamente contenuti, configura una macchina virtuale (VM) intermedia, nota anche come bastion, all'interno del VPC. Esistono diversi metodi per utilizzare questa VM intermediaria come connessione sicura tra un ambiente applicativo esterno e il tuo cluster AlloyDB.
Per gli ambienti di produzione che richiedono alta disponibilità, valuta la possibilità 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 intermediaria
Per stabilire una connessione a un cluster AlloyDB dall'esterno del relativo VPC utilizzando strumenti open source e un numero minimo di risorse aggiuntive, esegui un servizio proxy su una VM intermedia configurata all'interno di quel VPC. Puoi configurare una nuova VM per questo scopo o utilizzare una VM già in esecuzione nel VPC del cluster AlloyDB.
In quanto soluzione autogestita, l'utilizzo di una VM intermediaria in genere costa meno e ha un tempo di configurazione più rapido rispetto all'utilizzo di unaConnettività di reterk Connectivity. Ha anche degli svantaggi: la disponibilità, la sicurezza e la velocità effettiva 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 connetterti in modo sicuro al cluster senza dover esporre l'indirizzo IP pubblico della VM intermediaria. Utilizzi una combinazione di regole firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questo percorso. Ciò rende IAP una buona soluzione per utilizzi non di produzione come lo sviluppo e la 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 alla porta
22
(SSH). Se utilizzi la rete predefinita del tuo progetto con la regoladefault-allow-ssh
precompilata attivata, 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
psql
sul client esterno, facendolo connettere alla porta locale che hai specificato 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
.
Connessione 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 la configurazione appropriata, puoi renderlo adatto ai carichi di lavoro di produzione.
Questa soluzione include 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
ens4
della VM per le connessioni esterne e interne. Specifica la porta che vuoi per le connessioni interne.Configura il firewall del VPC per consentire il traffico TCP dall'indirizzo IP o dall'intervallo 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_PROXY
impostata sull'indirizzo IP della VM intermediaria 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 con peering, puoi utilizzare l'indirizzo IP interno della VM intermediaria; in caso contrario, utilizza il suo indirizzo IP esterno.
Testa la connessione utilizzando
psql
sul client esterno, facendolo connettere alla porta su cui è in ascolto il proxy di autenticazione AlloyDB. Ad esempio, per connetterti come ruolo utentepostgres
alla porta5432
:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Connettersi 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 associandolo a un proxy compatibile con il 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 intermediaria. Il client o l'applicazione possono quindi connettersi in modo sicuro direttamente al pooler tramite SSL, senza la necessità di eseguire servizi aggiuntivi. Il pooler si occupa di passare le query PostgreSQL al tuo cluster AlloyDB tramite 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 primaria, quella di standby o un pool di lettura. Pertanto, devi eseguire un servizio di pooling separato, con un certificato SSL configurato in modo appropriato, per ogni istanza del cluster.
Connettiti tramite Cloud VPN o Cloud Interconnect
Per il lavoro di produzione che richiede alta disponibilità, 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 configuri Cloud Router per annunciare le route appropriate.
L'utilizzo di un prodotto Connettività di rete è un processo più complesso rispetto alla configurazione di una VM intermedia, ma questo approccio trasferisce a Google gli oneri di uptime e disponibilità. In particolare, la 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 gestire una VM sicura separata come parte della tua applicazione, evitando i rischi di singolo punto di errore inerenti a questo approccio.
Per iniziare a scoprire di più su queste soluzioni, consulta Scegliere una Connettività di rete Connectivity.
Passaggi successivi
- Scopri di più sull'accesso privato ai servizi e sulla connettività on-premise nelle VPC Google Cloud .