6.71 Vue d'ensemble ELASTICACHE
ElastiCache est à la gestion du cache ce que RDS est aux bases de données relationnelles. Le service gère deux moteurs open source — Redis et Memcached — chargés en RAM pour offrir une très faible latence. Le cache soulage la charge en lecture des bases RDS en absorbant les requêtes répétitives, améliore la haute disponibilité en écriture via le sharding et facilite la mise à l'échelle horizontale grâce aux réplicas en lecture seule.
Cas d'usage typiques
Premier cas : un utilisateur interroge l'application, qui consulte d'abord ElastiCache. Si la donnée est présente, elle est renvoyée immédiatement sans solliciter RDS. Sinon, l'application interroge RDS, met la réponse en cache, puis la renvoie. Une stratégie d'invalidation est indispensable pour s'assurer que seules des données fraîches sont servies. Second cas : le magasin de sessions. Plusieurs instances d'application derrière un load balancer peuvent partager les sessions utilisateurs via ElastiCache, ce qui rend l'application stateless et tolérante aux bascules d'instance.
L'utilisation d'ElastiCache implique des modifications dans le code de l'application, qui doit explicitement écrire et lire le cache. AWS prend en charge la maintenance complète : patching, optimisation, monitoring, récupération automatique en cas de défaillance et sauvegardes.
Redis vs Memcached
- Redis : déploiement multi-AZ avec basculement automatique, réplicas en lecture seule pour la haute disponibilité, persistance via AOF (append-only file écrit toutes les secondes), sauvegarde et restauration intégrées.
- Memcached : architecture multi-nœuds avec sharding, données non persistantes, pas de sauvegarde, idéal pour le cache simple de gros volumes répartis sur plusieurs nœuds.
Redis convient aux cas nécessitant haute disponibilité, persistance et structures de données avancées. Memcached est plus adapté à un cache distribué pur, multi-thread, sans persistance, par exemple lorsque l'on partitionne le cache par segments métier (utilisateurs par lettre, par région, etc.).
En résumé
ElastiCache est un service AWS de gestion de cache qui stocke les données en mémoire RAM avec une latence très faible, permettant de réduire significativement la charge des bases de données relationnelles (RDS). Le service supporte Redis et Memcached, fonctionne sur plusieurs zones de disponibilité avec basculement automatique, et offre une maintenance complète assurée par AWS (correctifs, sauvegardes, récupération). ElastiCache est particulièrement utile pour les applications avec forte activité de lecture et pour le stockage distribué des sessions utilisateur dans une architecture multi-instance.
Points clés
- ElastiCache gère un cache en mémoire RAM (contrairement à RDS pour les bases de données relationnelles), réduisant la charge et la latence
- Permet de stocker les sessions utilisateur de manière centralisée, accessible par toutes les instances d'une application
- Supporte Redis (avec réplication, persistance AOF, sauvegardes) et Memcached (avec sharding, sans persistance)
- AWS gère la maintenance intégrale : correctifs, configurations, monitoring, récupération automatique en cas de défaillance
- Améliore la scalabilité horizontale en lecture grâce aux répliques en lecture seule
- Nécessite une stratégie d'invalidation du cache pour assurer la fraîcheur des données
Questions fréquentes
Quelle est la différence entre ElastiCache et RDS ?
RDS gère les bases de données relationnelles durables tandis qu'ElastiCache gère un cache en mémoire RAM pour accélérer l'accès aux données. ElastiCache se place généralement en amont de RDS pour réduire la charge des bases de données en stockant les réponses des requêtes fréquentes.
Comment fonctionne le stockage des sessions utilisateur avec ElastiCache ?
Lorsqu'un utilisateur se connecte via une instance d'application, sa session est écrite dans ElastiCache. Si l'utilisateur accède à nouveau via une autre instance du groupe d'application, cette instance récupère directement la session du cache, permettant une expérience transparente sans rechargement de session.
Quelles sont les différences entre Redis et Memcached dans ElastiCache ?
Redis offre une réplication en lecture seule, une durabilité via AOF (Append Only File), et des capacités de sauvegarde/restauration dans AWS. Memcached utilise le sharding pour distribuer les données sur plusieurs nœuds mais ne persiste pas les données et n'offre pas de sauvegarde.