Las bases de datos relacionales son un pilar fundamental de la mayoría de las aplicaciones. Sin embargo, cuando se trata de escalabilidad y baja latencia, no hay mucho que se pueda hacer para mejorar el rendimiento. Por más que agregue réplicas a las lecturas a escala, hay un límite físico impuesto por el almacenamiento basado en discos. La estrategia más efectiva para lidiar con ese límite es complementar las bases de datos en disco con el almacenamiento en caché en memoria.

En este tutorial, aprenderá a aumentar el rendimiento de sus aplicaciones con la incorporación de una capa de almacenamiento en caché en memoria a su base de datos relacional. Se implementará la estrategia cache-aside mediante Amazon ElastiCache for Redis sobre una base de datos de MySQL. La estrategia cache-aside es una de las opciones más populares para aumentar el rendimiento de la base de datos. Cuando una aplicación necesita leer datos de una base de datos, primero consulta el caché. Si no se encuentran los datos, la aplicación consulta la base de datos y llena el caché con el resultado. Hay muchas maneras de invalidar el caché si se modifican los registros pertinentes en la base de datos subyacente, pero para este tutorial utilizaremos la función de vencimiento Tiempo de vida (TTL) que proporciona Redis.

El nodo ElastiCache for Redis y la base de datos de MySQL creada en este tutorial son elegibles para la capa gratuita de AWS.

Implementación de cache-aside con Amazon ElastiCache for Redis

Duración: 120 minutos

Costo: apto para la capa gratuita

Casos de uso: almacenamiento en caché, escalado, alta disponibilidad, aplicación en tiempo real

Productos: Amazon ElastiCache for Redis, Amazon RDS MySQL y Capa gratuita de AWS

Público: desarrolladores

Nivel: principiante a intermedio

Última actualización: 25 de julio de 2019

*En esta estimación se supone que usted sigue las configuraciones recomendadas a lo largo del tutorial y termina todos los recursos en 2 horas.

**Es posible que las cuentas que se hayan creado en las últimas 24 horas aún no tengan acceso a los recursos necesarios para este proyecto.

Dedique 20 minutos para completar la sección de requisitos previos. 

Este tutorial muestra algunos mecanismos con ejemplos escritos en Python para ilustrar algunas técnicas de almacenamiento en caché. Esperamos que el código sea fácil de traducir al lenguaje que elija.

Para completar este tutorial, necesita acceso a una instancia EC2. Si aún no tiene una en ejecución, siga estas instrucciones para aprovisionar una.

Una vez que tenga acceso a la instancia EC2, ejecute los siguientes comandos: 

$ sudo yum install git -y
$ sudo yum install mysql -y
$ sudo yum install python3 -y
$ pip3 install --user virtualenv
$ git clone https://github.com/aws-samples/amazon-elasticache-samples/
$ cd amazon-elasticache-samples/database-caching
$ virtualenv venv
$ source ./venv/bin/activate
$ pip3 install -r requirements.txt

Ya está todo listo para comenzar el tutorial.