Uso de Amazon RDS Proxy - Amazon Relational Database Service

Uso de Amazon RDS Proxy

Con el proxy de Amazon RDS puede permitir a las aplicaciones agrupar y compartir conexiones de base de datos para mejorar su capacidad de escala. El proxy de RDS hace que las aplicaciones sean más resistentes a los errores de base de datos al conectarse automáticamente a una instancia de base de datos en espera mientras se preservan las conexiones de las aplicaciones. RDS Proxy también le permite aplicar autenticación de AWS Identity and Access Management (IAM) para bases de datos y almacenar las credenciales de forma segura en AWS Secrets Manager.

Con RDS Proxy puede gestionar aumentos imprevistos en el tráfico de base de datos. De lo contrario, estas sobrecargas podrían causar problemas debido a la suscripción excesiva de conexiones o a la creación de nuevas conexiones a un ritmo rápido. RDS Proxy establece un grupo de conexiones de base de datos y reutiliza las conexiones de este grupo. Este enfoque evita la sobrecarga de memoria y de CPU que supone abrir una nueva conexión de base de datos cada vez. Para proteger una base de datos frente a un exceso de suscripciones, puede controlar el número de conexiones de base de datos que se crean.

RDS Proxy pone en cola o limita las conexiones de aplicaciones que no se pueden atender de inmediato desde el grupo de conexiones. Aunque las latencias pueden aumentar, la aplicación puede seguir ajustando la escala sin fallar bruscamente ni sobrecargar la base de datos. Si las solicitudes de conexión superan los límites especificados, RDS Proxy rechaza las conexiones de aplicación (es decir, se desprende de la carga). Al mismo tiempo, mantiene un rendimiento predecible para la carga que RDS puede servir con la capacidad disponible.

Puede reducir la sobrecarga para procesar credenciales y establecer una conexión segura para cada nueva conexión. El proxy de RDS puede gestionar parte de ese trabajo en nombre de la base de datos.

El RDS Proxy es totalmente compatible con las versiones de motor admitidas. Puede habilitar RDS Proxy para la mayoría de las aplicaciones sin cambios de código.

Disponibilidad en regiones y versiones

La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos y entre Regiones de AWS. Para obtener más información sobre la disponibilidad en versiones y regiones de Amazon RDS con RDS Proxy, consulte Regiones y motores de base de datos para Amazon RDS Proxy.

Cuotas y limitaciones de RDS Proxy

Las siguientes cuotas y limitaciones se aplican a RDS Proxy:

  • Cada ID de Cuenta de AWS está limitado a 20 proxies. Si su aplicación requiere más proxies, solicite un aumento a través de la página Service Quotas dentro de la AWS Management Console. En la página Service Quotas, seleccione Amazon Relational Database Service (Amazon RDS) y busque Proxies para solicitar un aumento de cuota. AWS puede aumentar automáticamente su cuota o, en espera de la revisión de su solicitud, mediante AWS Support.

  • Cada proxy puede tener hasta 200 secretos de Secrets Manager asociados. Por lo tanto, cada proxy puede conectarse con hasta 200 cuentas de usuario distintas en un momento dado.

  • Cada proxy tiene un punto de conexión predeterminado. También puede agregar hasta 20 puntos de conexión de proxy para cada proxy. Puede crear, ver, modificar y eliminar estos puntos de conexión.

  • Para las instancias de base de datos de RDS en configuraciones de reproducción, solo puede asociar un proxy con la instancia de base de datos de escritura, no con una réplica de lectura.

  • Su RDS Proxy debe estar en la misma nube virtual privada (VPC) que la base de datos. Aunque se puede acceder públicamente a la base de datos, no sucede lo mismo con el proxy. Por ejemplo, si va a crear prototipos de base de datos en un host local, no puede conectarse a su proxy, a menos que configure los requisitos de red necesarios para permitir la conexión al proxy. Esto es porque el host local está fuera de la VPC del proxy.

  • No se puede utilizar RDS Proxy con una VPC que tenga su tenencia establecida en dedicated.

  • Si utiliza RDS Proxy con una instancia de base de datos de RDS que tenga habilitada la autenticación de IAM, compruebe la autenticación del usuario. Los usuarios que se conecten a través de un proxy deben autenticarse con credenciales de inicio de sesión. Para obtener más información sobre la compatibilidad de Secrets Manager y IAM en RDS Proxy, consulte Configuración de credenciales de base de datos en AWS Secrets Manager y Configuración de políticas de AWS Identity and Access Management (IAM).

  • No se puede usar el proxy de RDS con DNS personalizados cuando se utiliza la validación de nombres de host SSL.

  • Cada proxy se puede asociar con una única instancia de base de datos de destino. Sin embargo, puede asociar varios proxies con la misma instancia de base de datos.

  • Cualquier instrucción con un tamaño de texto superior a 16 KB hace que el proxy fije la sesión a la conexión actual.

  • Algunas regiones tienen restricciones de zona de disponibilidad (AZ) que debe tener en cuenta al crear el proxy. La región Este de EE. UU. (Norte de Virginia) no admite RDS Proxy en la zona de disponibilidad use1-az3. La región Oeste de EE. UU. (Norte de California) no admite RDS Proxy en la zona de disponibilidad usw1-az2. Al seleccionar subredes al crear el proxy, asegúrese de no seleccionar subredes en las zonas de disponibilidad mencionadas anteriormente.

  • Actualmente, RDS Proxy no admite claves de contexto de condición globales.

    Para obtener más información sobre las claves de condición globales, consulte Claves de contexto de condición globales de AWS en la Guía del usuario de IAM.

Para conocer las limitaciones adicionales de cada motor de base de datos, consulte las secciones siguientes:

Limitaciones adicionales para RDS para MariaDB

Las siguientes limitaciones adicionales se aplican a RDS Proxy con RDS para MariaDB:

  • Actualmente, todos los proxies escuchan en el puerto 3306 para MariaDB. Los proxies todavía se conectan a la base de datos mediante el puerto especificado en la configuración de la base de datos.

  • No se puede usar RDS Proxy con bases de datos MariaDB autoadministradas en instancias Amazon EC2.

  • No se puede usar RDS Proxy con una instancia de base de datos de RDS para MariaDB que tenga el parámetro read_only en su grupo de parámetros de base de datos establecido en 1.

  • RDS Proxy no admite el modo comprimido de MariaDB. Por ejemplo, no admite la compresión utilizada por las opciones --compress o -C del comando mysql.

  • Algunas instrucciones y funciones SQL pueden cambiar el estado de conexión sin causar fijación. Para conocer el comportamiento de fijación más actual, consulte Evitar la fijación.

  • MariaDB no admite el complemento auth_ed25519 de MariaDB.

  • El proxy RDS no admite la versión 1.3 de seguridad de la capa de transporte (TLS) para las bases de datos MariaDB.

  • Las conexiones a bases de datos que procesan un comando GET DIAGNOSTIC pueden devolver información inexacta cuando RDS Proxy vuelve a utilizar la misma conexión de base de datos para ejecutar otra consulta. Esto puede ocurrir cuando RDS Proxy multiplexa las conexiones de bases de datos. Para obtener más información, consulte Información general de los conceptos de RDS Proxy.

importante

Para proxies asociados con bases de datos de MariaDB, no establezca el parámetro de configuración sql_auto_is_null en true o un valor distinto de cero en la consulta de inicialización. Si lo hace, es posible que la aplicación se comporte incorrectamente.

Limitaciones adicionales para RDS para Microsoft SQL Server

Las siguientes limitaciones adicionales se aplican a RDS Proxy con RDS para Microsoft SQL Server:

  • El número de secretos de Secrets Manager que necesita crear para un proxy depende de la intercalación que utilice la instancia de base de datos. Por ejemplo, supongamos que la instancia de base de datos utiliza una intercalación que distingue mayúsculas Si su aplicación acepta tanto «Admin» como «admin», su proxy necesita dos secretos distintos. Para obtener más información sobre colación en SQL Server, consulte la documentación de Microsoft SQL Server.

  • RDS Proxy no admite conexiones que utilizan Active Directory.

  • No puede usar la autenticación de IAM con clientes que no admitan propiedades de token. Para obtener más información, consulte Consideraciones para conectarse a un proxy con Microsoft SQL Server.

  • Los resultados de @@IDENTITY, @@ROWCOUNT y SCOPE_IDENTITY no siempre son precisos. Como solución alternativa, recupere sus valores en la misma sentencia de sesión para asegurarse de que devuelven la información correcta.

  • Si la conexión usa varios conjuntos de resultados activos (MARS), RDS Proxy no ejecuta las consultas de inicialización. Para obtener más información sobre MARS, consulte la documentación de Microsoft SQL Server.

  • Actualmente, RDS Proxy no admite instancias de base de datos de RDS para SQL Server que se ejecuten en la versión principal de SQL Server 2022.

  • RDS Proxy no admite instancias de base de datos de RDS para SQL Server que se ejecuten en la versión principal de SQL Server 2014.

  • RDS Proxy no admite aplicaciones cliente que no puedan gestionar varios mensajes de respuesta en un registro TLS.

Limitaciones adicionales para RDS para MySQL

Las siguientes limitaciones adicionales se aplican a RDS Proxy con bases de datos RDS para MySQL:

  • RDS Proxy no admite sha256_password de MySQL ni los complementos de autenticación de caching_sha2_password. Estos complementos implementan la función de hash SHA-256 para contraseñas de cuentas de usuario.

  • Actualmente, todos los proxies escuchan en el puerto 3306 para MySQL. Los proxies todavía se conectan a la base de datos mediante el puerto especificado en la configuración de la base de datos.

  • No puede usar RDS Proxy con bases de datos MySQL autoadministradas en instancias EC2.

  • No se puede usar RDS Proxy con una instancia de base de datos RDS para MySQL que tenga el parámetro read_only en su grupo de parámetros de base de datos establecido en1.

  • RDS Proxy no admite el modo comprimido de MySQL. Por ejemplo, no admite la compresión utilizada por las opciones --compress o -C del comando mysql.

  • Las conexiones a bases de datos que procesan un comando GET DIAGNOSTIC pueden devolver información inexacta cuando RDS Proxy vuelve a utilizar la misma conexión de base de datos para ejecutar otra consulta. Esto puede ocurrir cuando RDS Proxy multiplexa las conexiones de bases de datos.

  • Algunas instrucciones y funciones SQL, como SET LOCAL, pueden cambiar el estado de conexión sin producir una fijación. Para conocer el comportamiento de fijación más actual, consulte Evitar la fijación.

  • No se admite el uso de la función ROW_COUNT() en una consulta de varias instrucciones.

  • RDS Proxy no admite aplicaciones cliente que no puedan gestionar varios mensajes de respuesta en un registro TLS.

importante

Para proxies asociados con bases de datos de MySQL, no establezca el parámetro de configuración sql_auto_is_null en true o un valor distinto de cero en la consulta de inicialización. Si lo hace, es posible que la aplicación se comporte incorrectamente.

Limitaciones adicionales para RDS para PostgreSQL

Las siguientes limitaciones adicionales se aplican a RDS Proxy con bases de datos de RDS para PostgreSQL:

  • RDS Proxy no admite los filtros de fijación de sesión para PostgreSQL.

  • Actualmente, todos los proxies escuchan en el puerto 5432 para PostgreSQL.

  • Para PostgreSQL, RDS Proxy no admite actualmente la cancelación de una consulta por parte de un cliente mediante la emisión de CancelRequest. Este es el caso, por ejemplo, cuando se cancela una consulta de larga duración en una sesión psql interactiva con Ctrl + C.

  • Los resultados de la función de PostgreSQL lastval no siempre son precisos. Como alternativa, utilice la instrucción INSERT con la cláusula RETURNING.

  • Actualmente, RDS Proxy no admite el modo de replicación en streaming.

  • Con RDS para PostgreSQL 16, las modificaciones del valor scram_iterations afectan exclusivamente al proceso de autenticación entre el proxy y la base de datos. En concreto, si configura ClientPasswordAuthType como scram-sha-256, las personalizaciones que se realicen en el valor scram_iterations no influirán en la autenticación mediante contraseña de cliente a proxy. En su lugar, el valor de iteración para la autenticación de contraseña de cliente a proxy se fija en 4096.

importante

En el caso de los proxies existentes con bases de datos de PostgreSQL, si modifica la autenticación de la base de datos para utilizar únicamente SCRAM, el proxy dejará de estar disponible durante un máximo de 60 segundos. Para evitar este problema, lleve a cabo alguna de las siguientes operaciones:

  • Asegúrese de que la base de datos permita la autenticación SCRAM y MD5.

  • Para utilizar únicamente la autenticación SCRAM, cree un nuevo proxy, migre el tráfico de la aplicación al nuevo proxy y, a continuación, elimine el proxy previamente asociado a la base de datos.