En esta página, se examinan diferentes formas de conectarse a un clúster de AlloyDB para PostgreSQL desde fuera de su nube privada virtual (VPC) configurada. Se da por sentado que ya creaste un clúster de AlloyDB.
Acerca de las conexiones externas
Tu clúster de AlloyDB consta de una cantidad de nodos dentro de una VPC deGoogle Cloud . Cuando creas un clúster, también configuras el acceso a servicios privados entre una de tus VPC y la VPC administrada por Google que contiene tu nuevo clúster. Esta conexión de intercambio de tráfico te permite usar direcciones IP privadas para acceder a los recursos en la VPC del clúster como si fueran parte de tu propia VPC.
Existen situaciones en las que tu aplicación debe conectarse a tu clúster desde fuera de esta VPC conectada:
Tu aplicación se ejecuta en otro lugar dentro del Google Cloud ecosistema, fuera de la VPC que conectaste a tu clúster a través del acceso a servicios privados.
Tu aplicación se ejecuta en una VPC que existe fuera de la red de Google.
Tu aplicación se ejecuta de forma "local", en una máquina ubicada en otro lugar del Internet público.
En todos estos casos, debes configurar un servicio adicional para habilitar este tipo de conexión externa a tu clúster de AlloyDB.
Resumen de las soluciones de conexión externa
Recomendamos dos soluciones generales para realizar conexiones externas, según tus necesidades:
Para el desarrollo o el prototipado de proyectos, o para un entorno de producción de costo relativamente bajo, configura una máquina virtual (VM) intermediaria, también conocida como bastión, dentro de tu VPC. Existen variados métodos para usar esta VM intermediaria como una conexión segura entre un entorno de aplicaciones externo y tu clúster de AlloyDB.
Para entornos de producción que requieren alta disponibilidad, considera establecer una conexión permanente entre la VPC y tu aplicación a través de Cloud VPN o Cloud Interconnect.
En las siguientes secciones, se describen estas soluciones de conexión externa con detalle.
Conéctate a través de una VM intermediaria
Para establecer una conexión con un clúster de AlloyDB desde fuera de su VPC con herramientas de código abierto y un mínimo de recursos adicionales, ejecuta un servicio de proxy en una VM intermediaria configurada dentro de esa VPC. Puedes configurar una VM nueva para este fin o usar una VM que ya se esté ejecutando dentro de la VPC de tu clúster de AlloyDB.
Como solución autoadministrada, el uso de una VM intermediaria suele costar menos y tiene un tiempo de configuración más rápido que usar un producto de Conectividad de red. También tiene desventajas: la disponibilidad, la seguridad y la capacidad de procesamiento de los datos de la conexión dependen de la VM intermediaria, que debes mantener como parte del proyecto.
Conéctate a través de IAP
Con Identity-Aware Proxy (IAP), puedes conectarte de forma segura a tu clúster sin necesidad de exponer la dirección IP pública de la VM intermediaria. Usa una combinación de reglas de firewall y Identity and Access Management (IAM) para limitar el acceso a través de esta ruta. Esto hace que IAP sea una buena solución para usos que no son de producción, como el desarrollo y el prototipado.
Para configurar el acceso de IAP a tu clúster, sigue estos pasos:
Instala Google Cloud CLI en tu cliente externo.
Prepara tu proyecto para el reenvío de TCP de IAP.
Cuando definas la regla de firewall nueva, permite el tráfico de TCP de entrada al puerto
22
(SSH). Si usas la red predeterminada de tu proyecto con su regladefault-allow-ssh
prepropagada habilitada, no debes definir una regla adicional.Configura la redirección de puertos entre tu cliente externo y la VM intermedia mediante SSH a través de IAP:
gcloud compute ssh my-vm \ --tunnel-through-iap \ --zone=ZONE_ID \ --ssh-flag="-L PORT_NUMBER:ALLOYDB_IP_ADDRESS:5432"
Reemplaza lo siguiente:
ZONE_ID
: Es el ID de la zona en la que se encuentra el clúster, por ejemplo,us-central1-a
.ALLOYDB_IP_ADDRESS
: La dirección IP de la instancia de AlloyDB a la que deseas conectarte.PORT_NUMBER
: El número de puerto de tu VM.
Prueba tu conexión con
psql
en tu cliente externo y haz que se conecte al puerto local que especificaste en el paso anterior. Por ejemplo, para conectarte como el rol de usuariopostgres
al puerto5432
, haz lo siguiente:psql -h localhost -p 5432 -U USERNAME
Reemplaza lo siguiente:
USERNAME
: Es el usuario de PostgreSQL al que deseas conectarte a la instancia; por ejemplo, el usuario predeterminadopostgres
.
Conéctate a través de un proxy de SOCKS
Ejecutar un servicio SOCKS en la VM intermediaria proporciona una conexión flexible y escalable a tu clúster de AlloyDB, con encriptación de extremo a extremo proporcionada por el proxy de autenticación de AlloyDB. Con la configuración adecuada, puedes adaptarlo para que sea adecuado para cargas de trabajo de producción.
Esta solución incluye los siguientes pasos:
Instala, configura y ejecuta un servidor SOCKS en la VM intermedia. Un ejemplo es Dante, una solución popular de código abierto.
Configura el servidor a fin de que se vincule a la interfaz de red
ens4
de la VM para conexiones internas y externas. Especifica cualquier puerto que desees para las conexiones internas.Configura el firewall de tu VPC para permitir el tráfico de TCP desde la dirección IP o el rango adecuado al puerto configurado del servidor SOCKS.
Instala el proxy de autenticación de AlloyDB en el cliente externo.
Ejecuta el proxy de autenticación de AlloyDB en tu cliente externo, con la variable de entorno
ALL_PROXY
configurada en la dirección IP de la VM intermedia y especificando el puerto que usa el servidor de SOCKS.En este ejemplo, se configura el proxy de autenticación de AlloyDB para conectarse a la base de datos en
my-main-instance
a través de un servidor SOCKS que se ejecuta en198.51.100.1
en el puerto1080
:ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \ /projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Si te conectas desde una VPC de intercambio de tráfico, puedes usar la dirección IP interna de la VM intermediaria. De lo contrario, usa la dirección IP externa.
Prueba tu conexión con
psql
en tu cliente externo y haz que se conecte al puerto en el que escucha el proxy de autenticación de AlloyDB. Por ejemplo, para conectarte como el rol de usuariopostgres
al puerto5432
, haz lo siguiente:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Conéctate a través de un agrupador de PostgreSQL
Si necesitas instalar y ejecutar el proxy de autenticación de AlloyDB en la VM intermediaria, en lugar de un cliente externo, puedes habilitar las conexiones seguras a él si lo sincronizas con un proxy adaptado al protocolo, también conocido como agrupador. Entre los agrupadores de código abierto populares para PostgreSQL se incluyen Pgpool-II y PgBouncer.
En esta solución, ejecutarás el proxy de autenticación de AlloyDB y el agrupador en la VM intermediaria. Tu cliente o aplicación puede conectarse de forma segura directamente al agrupador a través de SSL, sin necesidad de ejecutar ningún servicio adicional. El agrupador se encarga de pasar consultas de PostgreSQL a tu clúster de AlloyDB a través del proxy de autenticación.
Debido a que cada instancia dentro de un clúster de AlloyDB tiene una dirección IP interna diferente, cada servicio de proxy puede comunicarse con una sola instancia específica: la instancia principal, la instancia en espera o un grupo de lectura. Por lo tanto, debes ejecutar un servicio de agrupación independiente, con un certificado SSL configurado de forma adecuada, para cada instancia del clúster.
Conéctate a través de Cloud VPN o Cloud Interconnect
Para el trabajo de producción que requiere alta disponibilidad (HA), te recomendamos usar un producto de Conectividad de red de Google Cloud: Cloud VPN oCloud Interconnect, según las necesidades de tu servicio externo y la topología de red. Luego, configura Cloud Router para anunciar las rutas adecuadas.
Si bien usar un producto de conectividad de red es un proceso más complejo que configurar una VM intermedia, este enfoque transfiere la carga del tiempo de actividad y la disponibilidad de Google a ti. En particular, la VPN con alta disponibilidad ofrece un ANS del 99.99%, lo que la hace adecuada para entornos de producción.
Las soluciones de conectividad de red también te liberan de la necesidad de mantener una VM segura y separada como parte de tu aplicación, lo que evita los riesgos de un solo punto de fallo inherentes a ese enfoque.
Para obtener más información sobre estas soluciones, consulta Elige un producto de Conectividad de red.
¿Qué sigue?
- Obtén más información sobre el acceso a los servicios privados y la conectividad local en las VPC de Google Cloud .