Conéctate a un clúster desde fuera de su VPC

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:

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:

  1. Instala Google Cloud CLI en tu cliente externo.

  2. 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 regla default-allow-ssh prepropagada habilitada, no debes definir una regla adicional.

  3. 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.
  4. 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 usuario postgres al puerto 5432, 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 predeterminado postgres.

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:

  1. 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.

  2. 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.

  3. Instala el proxy de autenticación de AlloyDB en el cliente externo.

  4. 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 en 198.51.100.1 en el puerto 1080:

    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.

  5. 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 usuario postgres al puerto 5432, 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?