Aumento de la escalabilidad, el rendimiento y la disponibilidad de las aplicaciones mediante el uso de Amazon RDS Proxy - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aumento de la escalabilidad, el rendimiento y la disponibilidad de las aplicaciones mediante el uso de Amazon RDS Proxy

Creado por Anand Komandooru, Noorul Hasan, Venkat Nalajala y Varun Kumar de Amazon Web Services (AWS)

Octubre de 2022

En esta guía, se explicará la necesidad de agrupar las conexiones de bases de datos, los desafíos asociados a la implementación de una solución con alojamiento propio y los beneficios del uso del Proxy de Amazon Relational Database Service (Amazon RDS) con Amazon RDS para PostgreSQL en una arquitectura de aplicaciones en Amazon Web Services (AWS).

Desafío

PostgreSQL se implementa mediante process-per-user un modelo cliente/servidor. Cuando se recibe una conexión nueva, el proceso principal inicia un proceso secundario para gestionar esta conexión nueva. Luego, el proceso principal espera a la siguiente conexión y el proceso secundario se encarga de todas las actividades relacionadas con esta conexión nueva con el cliente. Se inicia un proceso secundario nuevo por cada conexión nueva que recibe la base de datos.

Muchas aplicaciones, incluidas las que se basan en arquitecturas modernas sin servidor, pueden tener una gran cantidad de conexiones abiertas al servidor de la base de datos. Es posible que abran y cierren las conexiones de las bases de datos a gran velocidad, por lo que se agotará la memoria de la base de datos y los recursos de cómputo.

Las aplicaciones transaccionales que abren y cierran las conexiones con frecuencia experimentarán una latencia de conexión más alta, lo que se traducirá en menos transacciones por segundo. Esto aumentará la latencia de las aplicaciones.

Se produce una conmutación por error cuando no se puede acceder a la instancia de base de datos principal y otra instancia pasa a ser la instancia principal nueva. Esto interrumpe las conexiones de los clientes. Las conmutaciones por error pueden planificarse, cuando se producen por acciones administrativas, como una actualización progresiva, o no planificarse, cuando se producen a causa de errores. En ambos casos, los operadores deben reducir el tiempo de inactividad a fin de minimizar las interrupciones para los clientes.

Práctica común

Para abordar los desafíos de escalabilidad y rendimiento de las aplicaciones, se utiliza un grupo de conexiones. La agrupación de conexiones reduce de forma significativa la latencia de las conexiones al reutilizar las conexiones existentes y permite un mayor rendimiento de la base de datos (transacciones por segundo) en el servidor. Un grupo de conexiones pone en cola o limita las conexiones de aplicaciones que no se pueden atender de inmediato del grupo de conexiones.

Tras implementar esta agrupación de conexiones, surgen desafíos adicionales. Los operadores deben administrar por su cuenta la infraestructura y el software para operar el servicio de agrupación de conexiones. Para gestionar un evento de conmutación por error, los desarrolladores de aplicaciones deben administrar la complejidad de la conexión de cada aplicación. La aplicación debe detectar el error de conexión, descubrir un dispositivo principal nuevo y volver a conectarse a este lo antes posible.

Recomendación

A fin de reducir los desafíos asociados a una solución de agrupación de conexiones con alojamiento propio y, a la vez, aprovechar los beneficios, recomendamos evaluar Amazon RDS Proxy para sus cargas de trabajo.

RDS Proxy es un proxy de base de datos completamente administrado y de alta disponibilidad. RDS Proxy utiliza la agrupación de conexiones para hacer que las aplicaciones sean más escalables, más resistentes a los errores de las bases de datos y más seguras.