PERF03-BP05 Mise en œuvre de modèles d’accès aux données utilisant la mise en cache - Framework AWS Well-Architected

PERF03-BP05 Mise en œuvre de modèles d’accès aux données utilisant la mise en cache

Mettez en œuvre des modèles d’accès qui peuvent tirer parti de la mise en cache des données pour une récupération rapide des données fréquemment consultées.

Anti-modèles courants :

  • Vous mettez en cache des données qui changent fréquemment.

  • Vous utilisez les données mises en cache comme si elles étaient stockées de manière durable et toujours disponibles.

  • Vous ne tenez pas compte de la cohérence de vos données mises en cache.

  • Vous ne surveillez pas l’efficacité de la mise en cache.

Avantages liés au respect de cette bonne pratique : le stockage des données dans un cache contribue à améliorer la latence et le débit de lecture, l’expérience utilisateur et l’efficacité globale, tout en réduisant les coûts.

Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : moyen

Directives d’implémentation

Un cache est un composant logiciel ou matériel destiné à stocker des données afin que les requêtes futures portant sur les mêmes données puissent être traitées plus rapidement ou plus efficacement. Les données stockées dans un cache peuvent être reconstruites en cas de perte en répétant un calcul antérieur ou en les récupérant dans un autre magasin de données.

La mise en cache des données peut être l’une des stratégies les plus efficaces pour améliorer les performances globales de votre application et réduire la charge qui pèse sur vos sources de données principales sous-jacentes. Les données peuvent être mises en cache à plusieurs niveaux de l’application, par exemple au sein de l’application en effectuant des appels à distance ou mise en cache côté client ou en utilisant un service secondaire rapide pour stocker les données mise en cache à distance.

Mise en cache côté client

Grâce à la mise en cache côté client, chaque client (une application ou un service qui interroge l’entrepôt de données dorsales) peut stocker les résultats de ses requêtes uniques localement pendant une durée spécifiée. Cela permet de réduire le nombre de requêtes adressées à un entrepôt de données sur le réseau en vérifiant d’abord le cache du client local. En l’absence de résultats, l’application peut alors interroger l’entrepôt de données et stocker ces résultats localement. Ce modèle permet à chaque client de stocker les données dans l’emplacement le plus proche possible (le client lui-même), ce qui se traduit par la latence la plus faible possible. Les clients peuvent également continuer à répondre à certaines requêtes lorsque l’entrepôt de données dorsales n’est pas disponible, ce qui augmente la disponibilité de l’ensemble du système.

L’un des inconvénients de cette approche est que lorsque plusieurs clients sont impliqués, ils peuvent stocker les mêmes données mises en cache localement. Cela entraîne à la fois une double utilisation du stockage et une incohérence des données entre ces clients. Un client peut mettre en cache les résultats d’une requête et, une minute plus tard, un autre client peut exécuter la même requête et obtenir un résultat différent.

Mise en cache à distance

Pour résoudre le problème de duplication de données entre clients, un service externe rapide ou un cache distant, peut être utilisé pour stocker les données demandées. Au lieu de vérifier un magasin de données local, chaque client vérifie le cache distant avant d’interroger l’entrepôt de données dorsales. Cette stratégie permet d’obtenir des réponses plus cohérentes entre les clients, d’améliorer l’efficacité des données stockées et d’augmenter le volume de données mises en cache, car l’espace de stockage évolue indépendamment des clients.

L’inconvénient d’un cache distant est que l’ensemble du système peut connaître une latence plus élevée, car un saut de réseau à réseau supplémentaire est nécessaire pour vérifier le cache distant. La mise en cache côté client peut être utilisée parallèlement à la mise en cache à distance pour une mise en cache à plusieurs niveaux afin d’améliorer la latence.

Étapes d’implémentation

Ressources

Documents connexes :

Vidéos connexes :

Exemples connexes :