Descripción general de la conexión

En esta página, se describe la conectividad a las bases de datos que ofrece AlloyDB para PostgreSQL. Para obtener más información, consulta Elige cómo conectarte a AlloyDB.

  • Redes: Las instancias de AlloyDB usan IPs públicas o privadas en una nube privada virtual (VPC). Existen varias técnicas que permiten conexiones seguras desde aplicaciones que se ejecutan fuera de la VPC.

  • Autorización: El proxy de autenticación de AlloyDB te permite usar Identity and Access Management (IAM) para controlar quién tiene acceso a tus datos. El firewall de tu VPC te permite ajustar aún más el acceso a los recursos de AlloyDB.

  • Autenticación: Usa técnicas estándar de autenticación de usuarios de PostgreSQL para acceder a tus instancias. AlloyDB también admite la autenticación basada en IAM con roles de usuario estándar de PostgreSQL.

  • Agrupación: Para mejorar la confiabilidad, el rendimiento y la escalabilidad, usa la agrupación de conexiones estándar del cliente de PostgreSQL y la agrupación de conexiones administradas del servidor.

Redes

Aunque una instancia de AlloyDB contiene muchos nodos, tus aplicaciones se conectan a una instancia a través de una sola dirección IP estática. Esta dirección puede ser privada para la VPC que especificas cuando configuras por primera vez el clúster de una instancia o una IP pública que permite conexiones directas desde fuera de la VPC.

IP privada

Cuando configuras AlloyDB con una IP privada, tu instancia obtiene una dirección IP privada dentro de tu VPC.

Las direcciones IP privadas afectan las conexiones a tu aplicación de dos maneras:

  • Las aplicaciones que se ejecutan en otro lugar dentro de la VPC de tu proyecto pueden conectarse a la instancia (o a un proxy que representa la instancia) sin pasos ni recursos adicionales.

    Por ejemplo, Conecta un cliente psql a una instancia muestra cómo conectarte a tu instancia de AlloyDB ejecutando el psql programa de línea de comandos en una VM de Compute Engine dentro de tu VPC.

  • Las aplicaciones que se ejecutan fuera de la VPC requieren un servicio intermediario para conectarse a la instancia de AlloyDB. Las soluciones incluyen ejecutar servicios de proxy en una VM dentro de la VPC de la instancia o usar otros Google Cloud productos para establecer una conexión permanente entre tu aplicación y tu VPC.

    Para obtener más información, consulta Conéctate a un clúster desde fuera de su VPC.

Las conexiones mediante IP privadas suelen proporcionar una latencia más baja y vectores de ataque limitados porque no requieren atravesar Internet.

Para obtener más información sobre la IP privada en AlloyDB, consulta Descripción general de la IP privada.

IP pública

Cuando configuras AlloyDB con una IP pública, tu instancia obtiene una dirección IP pública para las conexiones entrantes, a la que se puede acceder en la Internet pública. De manera opcional, puedes usar redes externas autorizadas para especificar un rango de direcciones IP en formato CIDR que puedan acceder a tu instancia.

Te recomendamos que uses la IP pública con los conectores de lenguaje de AlloyDB para garantizar conexiones seguras entre el cliente y tu instancia.

Para obtener más información sobre cómo agregar una IP pública y redes externas autorizadas a tu instancia, consulta Conéctate con una IP pública.

AlloyDB también admite conexiones salientes desde tu instancia a la Internet pública. Cuando habilitas la IP pública saliente, AlloyDB proporciona una dirección IP de origen coherente y predecible para el tráfico que sale de tu instancia de AlloyDB a la Internet pública. Cuando habilitas esta función, AlloyDB aprovisiona un par de direcciones IP públicas estáticas que se usan exclusivamente para las conexiones salientes de tu instancia.

Las conexiones salientes son especialmente útiles en las siguientes situaciones:

  • Migración de bases de datos: Cuando migras tus datos de una base de datos externa a AlloyDB con el Database Migration Service (DMS), puedes configurar el firewall de la base de datos externa para permitir conexiones desde las direcciones IP salientes específicas de tu instancia de AlloyDB, lo que garantiza una ruta de transferencia de datos segura.

  • Wrappers de datos externos: Si necesitas consultar datos de una base de datos externa dentro de AlloyDB con wrappers de datos externos como postgres_fdw o oracle_fdw, puedes agregar las direcciones IP salientes de tu instancia a la lista de entidades permitidas de la base de datos externa. Esto permite que AlloyDB se conecte y consulte de forma segura la fuente de datos externa.

Cuando habilitas la IP pública saliente, puedes ver las direcciones IP asignadas en la Google Cloud consola o con la herramienta de línea de comandos gcloud. Luego, puedes usar estas direcciones IP para configurar reglas de firewall o listas de control de acceso (LCA) en tus sistemas externos para otorgar acceso a tu instancia de AlloyDB a tus sistemas externos.

Para obtener más información sobre cómo habilitar la IP pública saliente, consulta Agrega conectividad saliente a una instancia.

Autorización

Puedes controlar el acceso a un clúster de AlloyDB con los conectores de lenguaje de AlloyDB, el proxy de autenticación de AlloyDB o con reglas de firewall de VPC.

Conectores de lenguaje de AlloyDB

Los conectores de lenguaje de AlloyDB son bibliotecas cliente que proporcionan mTLS automatizada con TLS 1.3 y autorización de IAM cuando se conectan a un clúster de AlloyDB.

Puedes usar estas bibliotecas directamente desde sus respectivos lenguajes de programación. Proporcionan las mismas capacidades que el proxy de AlloyDB sin requerir un proceso externo. Esto proporciona una seguridad mejorada y requisitos de configuración reducidos para conectarse a AlloyDB.

Para obtener más información, consulta Descripción general de los conectores de lenguaje de AlloyDB.

Conéctate con gcloud

Para las sesiones interactivas de bases de datos, puedes usar el comando gcloud beta alloydb connect. Este comando simplifica el proceso de conexión mediante la administración automática de una instancia local del proxy de autenticación de AlloyDB y el inicio de una sesión de cliente psql por ti.

Para obtener más información, consulta Conéctate con gcloud.

Controla el acceso con IAM y el proxy de autenticación de AlloyDB

Aunque puedes conectarte directamente a una instancia a través de su dirección IP, te recomendamos que uses el proxy de autenticación de AlloyDB en entornos de producción. Proporciona control de acceso basado en IAM y encriptación de extremo a extremo entre el proxy y tu clúster.

Para obtener más información, consulta Acerca del proxy de autenticación de AlloyDB.

Limita el acceso a la VPC con reglas de firewall

Al igual que con cualquier proyecto basado en la nube, debes ajustar las reglas de firewall de tu VPC para restringir el acceso a la red solo a los rangos de IP o las subredes desde las que se conectan tus aplicaciones. Esto es especialmente importante con las aplicaciones externas, como se detalla en Conéctate a un clúster desde fuera de su VPC.

Para obtener más información sobre cómo configurar el firewall de tu VPC, consulta Reglas de firewall de VPC.

Autenticación

AlloyDB admite dos tipos de usuarios de bases de datos, cada uno de los cuales tiene su propia forma de autenticarse con tus bases de datos:

  • Los roles de usuario estándar de PostgreSQL se autentican con un nombre de usuario y una contraseña. Puedes administrar estas cuentas con técnicas comunes de administración de usuarios de PostgreSQL. Para obtener más información, consulta Administra roles de usuario de AlloyDB.

  • Las cuentas de servicio y de usuario de IAM se autentican como usuarios de bases de datos con tokens de OAuth 2.0. Puedes administrar estas cuentas con el Google Cloud sistema de IAM. Para obtener más información, consulta Administra la autenticación de IAM.

Una vez autenticada con una instancia de AlloyDB, una aplicación puede tratar la instancia como un servidor de PostgreSQL normal. Después de establecer rutas de redes y autorización a una instancia, puedes usar técnicas estándar de PostgreSQL para acceder a una instancia y acceder a tus datos. Esto se aplica si accedes de forma manual con una herramienta como psql o si te conectas a tu base de datos de forma programática con una biblioteca de código de PostgreSQL.

Por lo general, tu primera autenticación con un clúster nuevo de AlloyDB implica acceder a su instancia principal como su usuario postgres, con la contraseña que especificas cuando creas el clúster. Desde allí, debes crear usuarios de bases de datos sin privilegios administrativos para el uso de tu aplicación.

Si no estableces una contraseña para postgres cuando creas un clúster, no podrás acceder a él. Para acceder, establece una contraseña para postgres o crea un usuario adicional. Para obtener más información, consulta Administra usuarios de PostgreSQL con autenticación integrada.

Agrupación

La agrupación de conexiones es una técnica que te ayuda a garantizar que tu carga de trabajo tenga una conexión confiable y con buen rendimiento a tu base de datos. Es útil tanto en el cliente como en el servidor.

Agrupación de conexiones del cliente

Cuando te conectes a AlloyDB, usa un grupo de conexiones del cliente. El grupo de conexiones del cliente crea varias conexiones a tu base de datos y se asegura de que esas conexiones permanezcan activas y en buen estado durante todo el ciclo de vida de tu carga de trabajo. Este enfoque garantiza que tu carga de trabajo tenga una conexión confiable a tu base de datos.

  • Cuando ejecutas consultas de forma manual desde la línea de comandos.
  • Cuando usas un lenguaje que no admite la agrupación de conexiones del cliente.
  • Cuando la carga de trabajo es efímera y no mantendrá una conexión de larga duración.

Puedes usar cualquier grupo de conexiones del cliente estándar que admita PostgreSQL. Ten en cuenta lo siguiente:

  • La biblioteca del grupo de conexiones del cliente a veces está separada del controlador de PostgreSQL.
  • El controlador de PostgreSQL a veces incluye la funcionalidad de agrupación de conexiones del cliente en la misma biblioteca.

Las siguientes son bibliotecas de grupos de conexiones de uso frecuente:

Si la biblioteca admite PostgreSQL, puedes usarla con AlloyDB.

Configura grupos de conexiones del cliente

Para obtener el mejor rendimiento de tu grupo de conexiones del cliente, es posible que debas configurar el tamaño del grupo. Usa la siguiente fórmula como punto de partida:

connections = (vCPU count * 2) + 1

Para obtener más información, consulta Acerca del tamaño del grupo. Según las cargas del mundo real, es posible que debas realizar ajustes adicionales.

Usa la agrupación de conexiones administradas

Además de la agrupación de conexiones del cliente, AlloyDB también admite la agrupación de conexiones del servidor con la agrupación de conexiones administradas.

Si bien puedes usar la agrupación de conexiones administradas para cualquier carga de trabajo transaccional, es más adecuada para aplicaciones que contienen más conexiones de corta duración o aplicaciones que podrían experimentar un aumento de conexión. Para obtener más información, consulta Configura la agrupación de conexiones administradas.

¿Qué sigue?