Amazon RDS Proxy para Aurora - Amazon Aurora

Amazon RDS Proxy para Aurora

Con Amazon RDS Proxy puede permitir a las aplicaciones agrupar y compartir conexiones de base de datos para mejorar su capacidad de escala. RDS Proxy 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. RDS Proxy puede gestionar parte de ese trabajo en nombre de la base de datos.

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. Para ver una lista de las versiones de motor admitidas, consulte Regiones y motores de base de datos Aurora para Amazon RDS Proxy.

Disponibilidad en regiones y versiones

Para obtener información sobre la compatibilidad de versiones del motor de base de datos y la disponibilidad de RDS Proxy en una determinada Región de AWS, consulte Regiones y motores de base de datos Aurora 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 Soporte.

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

  • En un clúster de Aurora, todas las conexiones que utilizan el punto de conexión de proxy predeterminado se gestionan por la instancia de escritor Aurora. A fin de llevar a cabo el balanceo de carga para cargas de trabajo de lectura intensiva, puede crear un punto de enlace de solo lectura para un proxy. Ese punto de enlace pasa las conexiones al punto de enlace del lector del clúster. De esta manera, sus conexiones de proxy pueden aprovechar la escalabilidad de lectura Aurora. Para obtener más información, consulte Información general de los puntos de enlace de proxy.

  • Puede utilizar el RDS Proxy con clústeres de Aurora Serverless v2 pero no con clústeres de Aurora Serverless v1.

  • Su RDS Proxy debe estar en la misma nube privada virtual (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.

    nota

    Para los clústeres de bases de datos de Aurora, puede activar el acceso entre VPC. Para ello, cree un punto de conexión adicional para un proxy y especifique una VPC, subredes y grupos de seguridad diferentes con ese punto de conexión. Para obtener más información, consulte Acceso a las bases de datos de Aurora en todas las VPC.

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

  • Si utiliza RDS Proxy con un clúster de base de datos de Aurora 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 para RDS Proxy y Configuración de políticas de AWS Identity and Access Management (IAM) para RDS Proxy.

  • 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 un único clúster de base de datos de destino. Sin embargo, puede asociar varios proxies con el mismo clúster 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.

  • No se puede utilizar RDS Proxy con RDS Custom para SQL Server.

  • Para reflejar cualquier modificación del grupo de parámetros de la base de datos en el proxy, es necesario reiniciar la instancia aunque decida aplicar los cambios inmediatamente. Es necesario reiniciar todo el clúster para los parámetros de clúster.

  • Su proxy crea automáticamente el usuario de base de datos rdsproxyadmin cuando registra un destino de proxy. Eliminar o modificar el usuario rdsproxyadmin o sus permisos puede afectar a la disponibilidad del proxy en su aplicación.

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

Limitaciones adicionales para Aurora MySQL

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

  • La compatibilidad con RDS Proxy para la autenticación de caching_sha2_password requiere una conexión segura (TLS).

  • Se sabe que caching_sha2_password presenta problemas de compatibilidad con RDS Proxy si se usan determinadas versiones del controlador go-sql.

  • Cuando se utiliza el controlador C de MySQL 8.4, la API mysql_stmt_bind_named_param puede formar paquetes con un formato incorrecto si el recuento de parámetros supera el recuento de marcadores de posición en una instrucción preparada. Esto da como resultado respuestas incorrectas. Para obtener más información, consulte MySQL bug report.

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

  • 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 Cómo evitar la fijación de RDS Proxy.

  • 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 Aurora PostgreSQL

Las siguientes limitaciones adicionales se aplican a RDS Proxy con bases de datos de Aurora 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.

  • La base de datos default debe existir.

  • Si usa ALTER ROLE o SET ROLE para cambiar el rol de usuario, es posible que las conexiones posteriores con ese usuario al proxy no usen esta configuración de rol si esas conexiones se encuentran con alguna fijación. Para evitarlo, cuando utilice un proxy, emplee SET ROLE en la consulta de inicialización del proxy. Para obtener más información, consulte Consulta de inicialización en Creación de un RDS Proxy.

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.