

# Amazon RDS Proxy para Aurora
<a name="rds-proxy"></a>

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. Con RDS Proxy, puede aplicar la autenticación de AWS Identity and Access Management (IAM) a los clientes que se conectan al proxy, y el proxy puede conectarse a las bases de datos mediante la autenticación de bases de datos de IAM o las credenciales almacenadas en AWS Secrets Manager. 

![\[Información general sobre cómo se conectan las aplicaciones a RDS Proxy\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/Proxy-Overview.png)


 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. 

![\[Una vista detallada de cómo se conectan las aplicaciones a RDS Proxy y de los tipos de conexiones involucradas.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/Proxy-detail.png)


 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](Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.md). 

**Topics**
+ [Disponibilidad en regiones y versiones](#rds-proxy.RegionVersionAvailability)
+ [Cuotas y limitaciones de RDS Proxy](#rds-proxy.limitations)
+ [Planificación del lugar de uso de RDS Proxy](rds-proxy-planning.md)
+ [Conceptos y terminología de RDS Proxy](rds-proxy.howitworks.md)
+ [Introducción al proxy de RDS](rds-proxy-setup.md)
+ [Administración de un RDS Proxy](rds-proxy-managing.md)
+ [Trabajo con puntos de enlace del proxy de Amazon RDS](rds-proxy-endpoints.md)
+ [Supervisión de las métricas de RDS Proxy con Amazon CloudWatch](rds-proxy.monitoring.md)
+ [Trabajo con eventos de RDS Proxy](rds-proxy.events.md)
+ [Ejemplos de línea de comandos del proxy de RDS](rds-proxy.examples.md)
+ [Solución de problemas de RDS Proxy](rds-proxy.troubleshooting.md)
+ [Uso del proxy de RDS con AWS CloudFormation](rds-proxy-cfn.md)
+ [Uso de RDS Proxy con bases de datos globales de Aurora](rds-proxy-gdb.md)

## Disponibilidad en regiones y versiones
<a name="rds-proxy.RegionVersionAvailability"></a>

 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](Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.md). 

## Cuotas y limitaciones de RDS Proxy
<a name="rds-proxy.limitations"></a>

 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 Consola de administración de AWS. 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, lo que limita las conexiones hasta a 200 cuentas de usuario diferentes cuando se utilizan secretos. 
+  Cada proxy tiene un punto de conexión predeterminado que se aprovisiona solo en dos zonas de disponibilidad seleccionadas de las subredes configuradas del proxy. Si se configuran subredes en más de dos zonas de disponibilidad, se seleccionarán dos de ellas. 
+  Puede agregar hasta 20 puntos de conexión de proxy adicionales para cada proxy. Estos puntos de conexión adicionales se aprovisionan en todas las zonas de disponibilidad especificadas durante su creación. 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](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 
+ 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](rds-proxy-endpoints.md#rds-proxy-cross-vpc).
+  No se puede utilizar RDS Proxy con una VPC que tenga su tenencia establecida en `dedicated`. 
+  No se puede usar RDS Proxy en una VPC que tenga habilitados los controles de cifrado con `Enforce Mode`. 
+ Para tipos de redes de puntos de conexión de IPv6, configure la VPC y las subredes para admitir solo IPv6. Para los tipos de red de conexión de destino de IPv4 e IPv6, configure la VPC y las subredes para que admitan el modo de doble pila. 
+ Si utiliza RDS Proxy con un clúster de base de datos de Aurora que tenga habilitada la autenticación de IAM, el proxy puede conectarse a la base de datos mediante autenticación de IAM o credenciales almacenadas en Secrets Manager. Los clientes que se conecten al proxy deben autenticarse con credenciales de IAM. Para obtener instrucciones de configuración detalladas, consulte [Configuración de credenciales de base de datos para RDS Proxy](rds-proxy-secrets-arns.md) y [Configuración de la autenticación de IAM para RDS Proxy](rds-proxy-iam-setup.md)
+  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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 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. Este es un usuario protegido que es esencial para la funcionalidad del proxy. Debe evitar cualquier alteración del usuario de `rdsproxyadmin` de cualquier forma. Eliminar o modificar el usuario de `rdsproxyadmin` o sus permisos puede provocar la total falta de disponibilidad del proxy en la aplicación.

Para conocer las limitaciones adicionales de cada motor de base de datos, consulte las secciones siguientes:
+ [Limitaciones adicionales para Aurora MySQL](#rds-proxy.limitations-my)
+ [Limitaciones adicionales para Aurora PostgreSQL](#rds-proxy.limitations-pg)

### Limitaciones adicionales para Aurora MySQL
<a name="rds-proxy.limitations-my"></a>

 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](https://bugs.mysql.com/bug.php?id=116860&thanks=4).
+ 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](rds-proxy-pinning.md).
+ 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.
+ RDS Proxy no admite las contraseñas duales de MySQL.
+ Es posible que el proxy de RDS no funcione según lo esperado al configurar el parámetro `init_connect` en el grupo de parámetros de la base de datos de RDS para establecer las variables de estado de la sesión. En su lugar, establezca la consulta de inicialización para que el proxy ejecute las instrucciones de inicialización de la sesión cuando utilice el proxy para conectarse a la base de datos.

**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
<a name="rds-proxy.limitations-pg"></a>

 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 \$1 C. 
+  Los resultados de la función de PostgreSQL [lastval](https://www.postgresql.org/docs/current/functions-sequence.html) no siempre son precisos. Como alternativa, utilice la instrucción [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) con la cláusula `RETURNING`.
+ Actualmente, RDS Proxy no admite el modo de replicación en streaming.
+ La base de datos de `postgres` predeterminada debe existir en la instancia de RDS para PostgreSQL para que funcione RDS Proxy. No elimine esta base de datos aunque la aplicación utilice bases de datos diferentes.
+ Si usa `ALTER ROLE` para cambiar el rol de usuario con `SET ROLE`, 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 proxy para Amazon Aurora](rds-proxy-creating.md).

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