Saltar al contenido

¿Cómo superviso los grupos de conexiones de Amazon RDS Proxy y optimizo las conexiones a las bases de datos?

6 minutos de lectura
0

Quiero supervisar los grupos de conexiones de proxy de Amazon Relational Database Services (Amazon RDS) y optimizar las conexiones a mis bases de datos.

Resolución

Supervisión de las métricas de RDS Proxy y de la base de datos de RDS de destino

Sigue estos pasos:

  1. Abre la consola de Amazon CloudWatch.
  2. En el panel de navegación, elige Métricas y, a continuación, Todas las métricas.
  3. En la pestaña Examinar, elige RDS y, a continuación, elige Métricas por proxy.
  4. Busca las siguientes métricas:
    ClientConnections para la cantidad de conexiones entrantes desde tu aplicación.
    MaxDatabaseConnectionsAllowed para la cantidad máxima de conexiones a bases de datos que permite RDS Proxy.
    DatabaseConnections para el número actual de conexiones que RDS Proxy establece con la base de datos de destino.
  5. En la pestaña Examinar, elige RDS y, a continuación, selecciona DBInstanceIdentifier.
  6. Busca la métrica DatabaseConnections para obtener el número total de conexiones que RDS Proxy establece con la base de datos de destino y todas las demás conexiones a la base de datos de destino.

Se recomienda revisar estas métricas con una granularidad de 1 minuto y usar la estadística Sum para obtener más información sobre los patrones de uso de la conexión.

Revisión de los eventos de registro de RDS Proxy

Modifica RDS Proxy para activar el registro mejorado, de modo que puedas obtener detalles avanzados, como las conexiones que se abren o cierran. También puedes obtener información sobre las operaciones internas, como anclar y pedir préstamos.

Nota: El registro mejorado se desactiva automáticamente después de 24 horas.

Para revisar los eventos de registro de RDS Proxy, sigue estos pasos:

  1. Abre la consola de CloudWatch.
  2. En el panel de navegación, elige Registros y, a continuación, selecciona Grupos de registros.
  3. Selecciona el grupo de registros para tu proxy /aws/rds/proxy/.
  4. En la pestaña Secuencias de registro, selecciona la secuencia de registro para ver los eventos de registro.

Ejecución de consultas de Información de registros de CloudWatch para detectar anomalías

Para acceder al editor de consultas de Información de registros de CloudWatch, sigue estos pasos:

  1. Abre la consola de CloudWatch.
  2. En el panel de navegación, elige Registros y, a continuación, selecciona Información de registros.

Utiliza el editor de consultas para ejecutar las siguientes consultas. En cada consulta, sustituye prx-000##### por tu ID de proxy.

Para obtener errores o advertencias, ejecuta la siguiente consulta:

fields @timestamp, @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000#####'  
| filter @message like / ERROR: / or @message like / WARN: /

Para determinar por qué se cerró la conexión del cliente, ejecuta la siguiente consulta:

fields @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000#####'  
| filter @message like /The client connection closed/ and @message like /CUSTOMER/  
| parse 'Reason: *' as reason  
| stats count() as reasonCount by reason  
| sort by reasonCount desc  
| limit 20

Para determinar por qué se cerró la conexión a la base de datos, ejecuta la siguiente consulta:

fields @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000xxxxx'  
| filter @message like /The database connection closed/ and @message like /CUSTOMER/  
| parse 'Reason: *' as reason  
| stats count() as reasonCount by reason  
| sort by reasonCount desc  
| limit 20

Modificación de la configuración de conexión de RDS Proxy

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

MaxConnectionsPercent

Si la base de datos ha alcanzado la configuración de conexión máxima, recibirás el siguiente mensaje de error: 

"The database connection closed. Reason: The pool reached the maximum connection setting, and a connection with different properties was required."

Para resolver este problema, supervisa las métricas de CloudWatch DatabaseConnections y MaxDatabaseConnectionsAllowed. Si DatabaseConnections alcanza MaxDatabaseConnectionsAllowed, limita el tráfico entrante. O bien, ejecuta el comando modify-db-proxy-target-group de la AWS CLI o la operación de la API ModifyDBProxyTargetGroup para aumentar la configuración de MaxConnectionsPercent. Establece MaxConnectionsPercent en al menos un 30 % por encima del uso máximo supervisado recientemente.

MaxIdleConnectionsPercent

Si hay demasiadas conexiones inactivas en el grupo, recibirás el siguiente mensaje: 

"The database connection closed. Reason: There were too many idle connections in the connection pool. A new slot in the connection pool is now available."

Para resolver este problema, supervisa las métricas de CloudWatch ClientConnections y DatabaseConnections. Si ClientConnections es continuamente inferior a DatabaseConnections, significa que hay conexiones inactivas a la base de datos de destino. De forma predeterminada, la configuración de MaxIdleConnectionsPercent es el 50 % del valor de MaxConnectionsPercent. Para modificar MaxIdleConnectionsPercent, ejecuta el comando modify-db-proxy-target-group de la AWS CLI o la operación de la API ModifyDBProxyTargetGroup. Mantén abierto un alto porcentaje de conexiones a bases de datos inactivas. Utiliza valores más bajos para cargas de trabajo consistentes para evitar el uso de recursos inactivos.

IdleClientTimeout

Si la base de datos supera el tiempo de espera de inactividad de la conexión del cliente, recibirás el siguiente mensaje:

"The client connection closed. Reason: The idle timeout was exceeded."

Para eliminar las conexiones inactivas, reduce IdleClientTimeout. Si tu carga de trabajo establece conexiones frecuentes con el proxy, aumenta IdleClientTimeout para no tener que establecer conexiones. Para modificar IdleClientTimeout, ejecuta el comando modify-db-proxy de la AWS CLI o la operación de la API ModifyDBProxy.

ConnectionBorrowTimeout

Si aparece un error de tiempo de espera, RDS Proxy no puede establecer una conexión a la base de datos.

Para establecer la configuración de ConnectionBorrowTimeout en un valor inferior al valor del tiempo de espera de la conexión, ejecuta el comando modify-db-proxy-target-group de la AWS CLI o la operación de la API ModifyDBProxyTargetGroup.

Cierre manual de las conexiones abiertas

Si una conexión a una base de datos está inactiva durante más de 24 horas, recibirás el siguiente mensaje de error:

"The database connection closed. Reason: The idle connection exceeded the maximum connection duration."

No puedes modificar la duración máxima de una conexión a una base de datos inactiva en RDS Proxy. En su lugar, se recomienda cerrar manualmente las conexiones que la aplicación no necesite reutilizar.

Información relacionada

Conceptos y terminología de RDS Proxy

Supervisión de las métricas de RDS Proxy con Amazon CloudWatch