En esta página se analizan las diferentes formas de conectarse a un clúster de AlloyDB para PostgreSQL desde fuera de su nube privada virtual (VPC) configurada. Se da por supuesto que ya has creado un clúster de AlloyDB.
Acerca de las conexiones externas
Tu clúster de AlloyDB consta de varios nodos en unaGoogle Cloud VPC. Cuando creas un clúster, también configuras el acceso privado a los servicios entre una de tus VPCs y la VPC gestionada por Google que contiene tu nuevo clúster. Esta conexión de peering te permite usar direcciones IP privadas para acceder a los recursos de la VPC del clúster como si formaran parte de tu propia VPC, mediante direcciones IP privadas.
Hay 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 del ecosistema de Google Cloud , fuera de la VPC a la que te has conectado a tu clúster mediante el acceso a servicios privados.
Tu aplicación se ejecuta en una VPC que está fuera de la red de Google.
Tu aplicación se ejecuta "en las instalaciones", en una máquina ubicada en otro lugar de 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
Te recomendamos dos soluciones generales para establecer conexiones externas, en función de tus necesidades:
Para el desarrollo o la creación de prototipos de proyectos, o para un entorno de producción relativamente económico, configura una máquina virtual (VM) intermedia, también conocida como bastión, en tu VPC. Hay varios métodos para usar esta VM intermediaria como conexión segura entre un entorno de aplicación externo y tu clúster de AlloyDB.
En los entornos de producción que requieren alta disponibilidad, te recomendamos que establezcas una conexión permanente entre la VPC y tu aplicación mediante Cloud VPN o Cloud Interconnect.
En las siguientes secciones se describen estas soluciones de conexión externa en detalle.
Conectarse a través de una VM intermediaria
Para establecer una conexión con un clúster de AlloyDB desde fuera de su VPC mediante herramientas de código abierto y un mínimo de recursos adicionales, ejecuta un servicio proxy en una VM intermediaria configurada en esa VPC. Puedes configurar una máquina virtual para este fin o usar una que ya se esté ejecutando en la VPC de tu clúster de AlloyDB.
Como solución autogestionada, el uso de una máquina virtual 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 inconvenientes: la disponibilidad, la seguridad y el rendimiento de los datos de la conexión dependen de la VM intermediaria, que debes mantener como parte de tu proyecto.
Conectarse a través de IAP
Con Identity-Aware Proxy (IAP), puedes conectarte de forma segura a tu clúster sin tener que exponer la dirección IP pública de la VM intermediaria. Para limitar el acceso a través de esta ruta, se usa una combinación de reglas de firewall y gestión de identidades y accesos (IAM). Por eso, las compras en la aplicación son una buena solución para usos no productivos, como el desarrollo y la creación de prototipos.
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.
Al definir la nueva regla de cortafuegos, permite el tráfico TCP de entrada al puerto
22
(SSH). Si usas la red predeterminada de tu proyecto con la regladefault-allow-ssh
predefinida habilitada, no tienes que definir ninguna regla adicional.Configura el reenvío de puertos entre tu cliente externo y la VM intermediaria 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"
Haz los cambios siguientes:
ZONE_ID
: 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 quieres 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 has especificado en el paso anterior. Por ejemplo, para conectarte como rol de usuariopostgres
al puerto5432
:psql -h localhost -p 5432 -U USERNAME
Haz los cambios siguientes:
USERNAME
: el usuario de PostgreSQL al que quieres conectarte a la instancia. Por ejemplo, el usuario predeterminadopostgres
.
Conectarse a través de un proxy SOCKS
Ejecutar un servicio SOCKS en la VM intermediaria proporciona una conexión flexible y escalable a tu clúster de AlloyDB, con cifrado de extremo a extremo proporcionado por el proxy de autenticación de AlloyDB. Con la configuración adecuada, puedes hacer que sea apto para cargas de trabajo de producción.
Esta solución incluye los siguientes pasos:
Instala, configura y ejecuta un servidor SOCKS en la VM intermediaria. Un ejemplo es Dante, una solución de código abierto popular.
Configura el servidor para que se enlace a la interfaz de red
ens4
de la VM para las conexiones externas e internas. Especifica el puerto que quieras para las conexiones internas.Configura el cortafuegos de tu VPC para permitir el tráfico TCP desde la dirección IP o el intervalo de direcciones IP adecuados al puerto configurado del servidor SOCKS.
Instala AlloyDB Auth Proxy en el cliente externo.
Ejecuta el proxy de autenticación de AlloyDB en tu cliente externo, con la variable de entorno
ALL_PROXY
definida en la dirección IP de la VM intermediaria y especificando el puerto que usa el servidor 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 emparejada, puedes usar la dirección IP interna de la VM intermediaria. De lo contrario, usa su dirección IP externa.
Prueba tu conexión con
psql
en tu cliente externo, haciéndolo conectar al puerto en el que escucha el proxy de autenticación de AlloyDB. Por ejemplo, para conectarte como rol de usuariopostgres
al puerto5432
:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Conectarse 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 en un cliente externo, puedes habilitar conexiones seguras con él emparejándolo con un proxy compatible con protocolos, también conocido como agrupador. Entre los gestores de conexiones de código abierto más populares para PostgreSQL se incluyen Pgpool-II y PgBouncer.
En esta solución, ejecutas tanto el proxy de autenticación de AlloyDB como el agrupador en la VM intermediaria. Tu cliente o aplicación podrá conectarse de forma segura directamente al pooler a través de SSL, sin necesidad de ejecutar ningún servicio adicional. El gestor de conexiones se encarga de enviar las consultas de PostgreSQL a tu clúster de AlloyDB a través del proxy de autenticación.
Como cada instancia de un clúster de AlloyDB tiene una dirección IP interna independiente, cada servicio de proxy solo puede comunicarse con una instancia específica: la instancia principal, la de reserva o un grupo de lectura. Por lo tanto, debes ejecutar un servicio de agrupador independiente, con un certificado SSL configurado correctamente, para cada instancia del clúster.
Conectarse a través de Cloud VPN o Cloud Interconnect
Para el trabajo de producción que requiera alta disponibilidad, recomendamos usar un producto de Google Cloud Network Connectivity: Cloud VPN o Cloud Interconnect, según las necesidades de tu servicio externo y la topología de la red. A continuación, configure Cloud Router para que anuncie las rutas adecuadas.
Aunque usar un producto de conectividad de red es un proceso más complejo que configurar una VM intermediaria, este enfoque traslada las responsabilidades del tiempo de actividad y la disponibilidad de Google a ti. En concreto, las VPN de alta disponibilidad ofrecen un acuerdo de nivel de servicio del 99,99 %, por lo que son adecuadas para entornos de producción.
Las soluciones de conectividad de red también te liberan de la necesidad de mantener una VM independiente y segura como parte de tu aplicación, lo que evita los riesgos de un único punto de fallo inherentes a ese enfoque.
Para obtener más información sobre estas soluciones, consulta el artículo Elegir un producto de conectividad de red.
Siguientes pasos
- Consulta más información sobre el acceso a servicios privados y la conectividad local en Google Cloud VPCs.