Les bases de données relationnelles sont la pierre angulaire de la plupart des applications. Néanmoins, en matière d'évolutivité et de faible latence, il y a des limites à ce que l'on peut faire pour améliorer les performances. Même en ajoutant des réplicas pour mettre les lectures à l'échelle, il y a une limite physique imposée par le stockage sur disque. Pour surmonter cette limite, la stratégie la plus efficace consiste à compléter les bases de données sur disque par une mise en cache en mémoire.

Au terme de ce tutoriel, vous saurez comment améliorer les performances de vos applications en ajoutant une couche de mise en cache en mémoire à votre base de données relationnelle. Vous pourrez mettre en œuvre un modèle cache-aside avec Amazon ElastiCache for Redis sur une base de données MySQL. Le recours au modèle cache-aside est l'une des stratégies les plus couramment employées pour améliorer les performances des bases de données. Avec ce modèle, une application interroge d'abord le cache chaque fois qu'elle doit lire des données dans une base de données. Si elle ne trouve pas les données, l'application interroge la base de données et alimente le cache avec le résultat. L'invalidation du cache si les enregistrements pertinents sont modifiés dans la base de données sous-jacente peut se faire de plusieurs façons. Pour les besoins de ce tutoriel, nous utiliserons la fonction d'expiration appelée Durée de vie (TTL) qui est fournie par Redis.

Le nœud ElastiCache for Redis et la base de données MySQL créés dans ce tutoriel sont susceptibles d'être inclus dans l'offre gratuite AWS.

Mise en œuvre du modèle cache-aside avec Amazon ElastiCache for Redis

Durée : 120 minutes

Coût : peut faire partie de l'offre gratuite

Cas d'utilisation : mise en cache, mise à l'échelle, haute disponibilité, application en temps réel

Produits : Amazon ElastiCache for Redis, Amazon RDS MySQL et offre gratuite AWS

Cible : développeurs

Niveau : débutant à intermédiaire

Date de la dernière mise à jour : 25 juillet 2019

*Cette estimation suppose que vous suiviez les configurations recommandées dans le tutoriel et exploitiez toutes les ressources dans les 2 heures.

**Les comptes créés dans les dernières 24 heures sont susceptibles de ne pas encore avoir accès aux ressources nécessaires pour ce projet.

Veuillez prévoir 20 minutes pour la section des préalables. 

Ce tutoriel présente certains mécanismes à l'aide d'exemples écrits en langage Python pour illustrer certaines techniques de mise en cache. Nous espérons que vous pourrez facilement traduire le code dans la langue de votre choix.

Vous devez avoir accès à une instance EC2 pour pouvoir suivre ce tutoriel. Si vous n'en avez pas déjà une en cours, suivez ces instructions pour l'obtenir.

Exécutez les commandes suivantes dès que vous avez accès à votre instance EC2 : 

$ 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

Vous voilà prêt à commencer le tutoriel.