En varios de nuestros últimos artículos hemos venido analizando los últimos avances y desarrollos en torno a las herramientas y servicios que ofrece AWS. En esta oportunidad, daremos un vistazo al reciente lanzamiento de la nueva versión de Aurora Serverless, que sin duda tendrá un impacto muy positivo tanto para los desarrolladores como para las organizaciones. 

En Gravity tenemos alrededor de 2 años trabajando con Aurora en varios proyectos para distintos clientes. Nuestro ecosistema estándar de desarrollo nos lleva a conectar Lambdas desarrolladas en Nodejs con un cluster de Aurora, y realizamos todo el aprovisionamiento vía Cloudformation lo que nos agiliza el proceso de paso entre entornos. Pero, para quienes no estén tan familiarizados con Aurora, vamos a comenzar recordando qué es Aurora y cuál es su función, y luego pasaremos a comentar las novedades que nos ha traído el re:Invent 2020 relacionadas con este útil servicio que nos ofrece Amazon.

Aurora es un servicio completamente administrado que ofrece una es una base de datos relacional de AWS, compatible con MySQL y PostgreSQL y creada para funcionar en la nube. Ofrece ventajas importantes, ya que Aurora combina la rentabilidad característica de las bases de datos construidas sobre código abierto, con el rendimiento y disponibilidad propia de las bases de datos empresariales tradicionales. 

Entre las características más ventajosas que ofrece esta base de datos, cabe mencionar su bajo costo. Aurora ofrece los mismos estándares de fiabilidad, seguridad y disponibilidad propios de las bases de datos comerciales, pero a una décima parte del costo. Por otro lado, Aurora también ofrece ventajas en lo que respecta a la velocidad. En efecto, es tres veces más rápida que las bases de datos de PostgreSQL estándar, y cinco veces más rápida que las bases de datos MySQL estándar. 

Ahora bien, una vez que hemos entendido qué es Aurora, podemos pasar a explicar qué es Aurora serverless, a fin de entender la importancia de las nuevas características que ofrece la última versión.

Amazon Aurora Serverless es una configuración de escalado automático bajo demanda, desarrollada para Amazon Aurora. El lanzamiento de su primera versión preliminar ocurrió hace tres años, durante la conferencia de Amazon Re:Invent 2017. 

Aurora Serverless aumenta o reduce su capacidad de manera automática, en relación con las necesidades de capacidad puntuales de cada aplicación. El encendido y apagado de este servicio de escalado también ocurre de forma automática. 

La implementación de Aurora Serverless requiere tan sólo de la creación de un punto de enlace para la base de datos del cliente, especificar, de manera opcional, el rango de la capacidad de de la base de datos óptima según las necesidades del cliente, y conectar las aplicaciones. Sólo se debe pagar por cada segundo de uso de capacidad de la base de datos cuando esté activa. Adicionalmente, Aurora ofrece la posibilidad de migrar entre las configuraciones sin servidor y estándar, tan sólo efectuando unos pocos clics en la consola de administración de Amazon RDS. 

Sin embargo, a pesar del avance significativo que constituyó el lanzamiento de Aurora Serverles v1 en 2017, esta versión aún tendría varios elementos que mejorar, no obstante, y a pesar de los elementos que requerían ser mejorados, esa primera versión tuvo un impacto positivo sobre el desarrollo de aplicaciones por parte de los clientes.

Entre los elementos en contra de la primera versión, podemos señalar que sólo era compatible en principio con MySQL 5.6; el número de puerto para las conexiones debía ser 3306; únicamente se podía acceder a los clusters DB de Aurora Serverless desde adentro de un VPC; y no era posible conectar conexiones AWS VPN e interconexiones inter-región VPC a los clusters de Aurora Serverless.

Como puede verse, a pesar de la importancia de contar con una herramienta como Aurora Serverless, aún sería necesario continuar efectuando actualizaciones a la misma. Pasemos entonces a dar un vistazo a la nueva versión.

Uno de los cambios centrales presentes en esta nueva versión está relacionado al aprovisionamiento de cómputo. En vez de que sea necesario adjuntar la data a instancias de diferentes tamaños, las instancias de Aurora Serverless v2 ofrecen la posibilidad de auto escalado en intervalos de milisegundos, en función de la carga de cada aplicación. Esto se logró a partir de cómputo elástico, entre otros elementos, permitiendo a Aurora manejar cualquier tipo de carga de trabajo que demanden los clientes.

Además, debido a la elasticidad de la escalabilidad de las instancias, Aurora Serverless v2 incrementa los ACUs (unidades de capacidad de Aurora) en aumentos de 0.5. Esto significa que si se necesitan 18 ACUs, se obtendrán 18 ACUs, en cambio, con Aurora Serverless v1 ocurría que los ACUs tenían incrementos de 16, por lo tanto, para soportar una carga de trabajo de 18 se requería un incremento de hasta 32 ACUs. Asimismo, la latencia de escalamiento hacia abajo es hasta 15 mayor que en la versión anterior de Aurora Serverless, lo que es significativamente superior.

Más allá de estas extraordinarias capacidades de escalamiento, también es relevante comentar que la última versión da soporte al amplio rango de características que ofrece Aurora como base de datos, a saber, Global Database, despliegues Multi-AZ y réplicas de lectura. Con ello, se hace evidente que mediante esta nueva versión de Aurora Serverless se busca dar soporte a todas las geniales características de Aurora, incluyendo aquellas que no lograron ser incluidas en Aurora Serverless v1.

En Gravity, como siempre lo señalamos en nuestros artículos, estamos muy interesados en conocer todos y cada uno de los más recientes avances que AWS está desarrollando en torno a todos sus servicios, y en este caso particular, en torno a Aurora Serverless. Nuestro objetivo es poder aplicar dichos nuevos desarrollos y actualizaciones en nuestra oferta de servicios, para así poder mantenernos como un socio tecnológico de primer nivel para todos nuestros clientes. 

Jose Barragan

Jose Barragan

Senior enterprise architect, with over 20 years of experience in the business sector. With a high expertise on different technologies, and involved in a lot of high-performance business environments.