Tengo una RDS instance que aloja una base de datos mySQL. El tamaño de la instancia es db.t2.micro
También tengo un backend ExpressJS que se conecta a la RDS instance a través de un grupo de conexiones:
Además, tengo una aplicación móvil, el cliente, que se alimenta de la API de ExpressJS .
El problema al que me enfrento es que, ya sea a través de la aplicación móvil o a través de Postman, hay ocasiones en las que aparece el error " Demasiadas conexiones " y, por lo tanto, fallan varias solicitudes:
En la RDS instance . En la actividad actual, a veces obtengo 65 conexiones, lo que muestra que está llegando al límite. Lo que necesito claridad es:
RDS instance , ¿se registra como 200 conexiones o 1 conexión de ExpressJS ?Gracias y se agradecen sus comentarios.
Si su aplicación crea un grupo de conexiones de 100, esa es la cantidad de conexiones de base de datos que intentará abrir. Debe ser inferior al límite de conexión de MySQL.
Por lo general, los grupos de conexiones abren todas las conexiones para el grupo, por lo que están listos cuando un cliente llama a la API http. Es posible que las conexiones normalmente no ejecuten consultas SQL, si no hay muchos clientes que utilicen la API en un momento dado. No obstante, las conexiones de la base de datos están conectadas.
Algo así como cuando te ssh a un servidor Linux remoto pero te sientas allí en un indicador de shell por un tiempo antes de ejecutar cualquier comando. Todavía estás conectado.
Preguntó si no se recomendaba una instancia de db.t2.micro para producción. Sí, estaría de acuerdo con eso. Es tentador usar la instancia más pequeña posible para ahorrar dinero, pero en mi opinión, un db.t2.micro es demasiado pequeño para cualquier cosa que no sea una prueba ligera.
De hecho, no usaría ninguna instancia t2 para la producción, independientemente del tamaño. El tipo t2 utiliza un rendimiento "ampliable". Esto significa que solo puede proporcionar períodos breves de buen rendimiento. Una vez que la instancia agota sus créditos de rendimiento, se recargan lentamente y, mientras se recargan, el rendimiento de esa instancia es muy bajo. Esto está bien para las pruebas, pero no para la producción, si espera proporcionar un rendimiento constante en cualquier momento.