Accélération en mémoire avec DynamoDB Accelerator (DAX) - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accélération en mémoire avec DynamoDB Accelerator (DAX)

Amazon DynamoDB est conçu pour la mise à l'échelle et les performances. Dans la plupart des cas, les temps de réponse de DynamoDB sont de l'ordre de quelques millisecondes. Cependant, certains cas d'utilisation requièrent des temps de réponse de l'ordre de quelques microsecondes. Pour ces cas d'utilisation, DynamoDB Accelerator (DAX) offre des temps de réponse rapides pour accéder aux données éventuellement cohérentes.

DAX est un service de mise en cache compatible avec DynamoDB, qui vous permet de bénéficier de performances en mémoire rapides pour les applications exigeantes. DAX convient pour trois scénarios principaux :

  1. En tant que cache en mémoire, DAX réduit les temps de réponse des charges de travail de lecture éventuellement cohérentes de manière très significative, de quelques millisecondes à quelques microsecondes.

  2. DAX réduit la complexité opérationnelle et applicative en fournissant un service géré compatible API avec DynamoDB. Par conséquent il nécessite uniquement des modifications fonctionnelles minimales pour une utilisation avec une application existante.

  3. Pour des charges de travail de lecture intensive ou en rafales, DAX offre un débit accru et peut permettre de réaliser des économies de coûts opérationnels en réduisant la nécessité de sur-approvisionner les unités de capacité de lecture. Cela s'avère particulièrement avantageux pour les applications qui nécessitent plusieurs lectures pour des clés individuelles.

DAX prend en charge le chiffrement côté serveur. Avec le chiffrement au repos, les données que DAX conserve sur disque sont chiffrées. DAX écrit les données sur disque dans le cadre de la propagation des modifications du nœud principal aux nœuds de réplica en lecture. Pour plus d'informations, consultez Chiffrement au repos DAX.

DAX prend également en charge le chiffrement en transit garantissant que toutes les demandes et réponses entre votre application et le cluster sont chiffrées par TLS (Transport Level Security), et que les connexions au cluster peuvent être authentifiées par vérification d'un certificat x509 de cluster. Pour plus d'informations, consultez Chiffrement DAX en transit.

Cas d'utilisation pour DAX

DAX donne accès à des données éventuellement cohérentes issues de tables DAX, avec une latence de l'ordre de quelques microsecondes. Un cluster DAX Multi-AZ peut traiter plusieurs millions de demandes par seconde.

DAX est une solution idéale pour les types d'applications suivants :

  • Les applications qui ont besoin du temps de réponse le plus rapide possible pour les opérations de lecture. Ce peut être le cas, par exemple, d'applications d'enchères en temps réel, de jeux sociaux et d'opérations boursières. DAX offre des performances de lecture en mémoire élevées pour ces cas d'utilisation.

  • Les applications qui lisent un petit nombre d'éléments plus souvent que d'autres. Prenons l'exemple d'un système d'e-commerce qui propose une vente d'un jour pour un produit à succès. En cours de vente, la demande de ce produit (et ses données dans DynamoDB) augmente brusquement par rapport à celle de tous les autres produits. Pour atténuer les effets de la forte activité et d'une distribution du trafic non uniforme, vous pouvez décharger l'activité de lecture sur un cache DAX, jusqu'à ce que la vente d'un jour se termine.

  • Les applications qui demandent beaucoup d'opérations de lecture, mais qui sont également sensibles aux coûts. Avec DynamoDB, vous approvisionnez le nombre d'opération de lecture par seconde dont votre application a besoin. Si l'activité de lecture s'accroît, vous pouvez augmenter le débit de lecture alloué de vos tables (moyennant un coût supplémentaire). Vous pouvez également décharger l'activité de votre application sur un cluster DAX et réduire la quantité d'unités de capacité de lecture que vous devriez autrement acheter.

  • Les applications qui imposent des opérations de lecture à répétition dans un ensemble de données volumineux. Une application de ce type peut potentiellement détourner les ressources de base de données d'autres applications. Par exemple, une analyse longue de données météorologiques régionales pourrait consommer temporairement toute la capacité de lecture d'une table . Cette pourrait impacter négativement d'autres applications qui doivent accéder aux mêmes données. Avec DAX, l'analyse météorologique pourrait être effectuée sur des données mises en cache.

DAX n'est pas une solution idéale pour les types d'applications suivants :

  • Les applications qui nécessitent des lectures à cohérence forte (ou qui ne peuvent pas tolérer les lectures cohérentes à terme).

  • Les applications qui ne nécessitent pas des temps de réponse de l'ordre de la microseconde pour les opérations de lecture, ou qui n'ont pas besoin de décharger une activité de lecture répétée à partir de tables sous-jacentes.

  • Les applications qui génèrent beaucoup d'écritures ou qui n'ont pas une grande activité de lecture.

  • Les applications qui utilisent déjà une autre solution de mise en cache avec DynamoDB, et qui se servent de leur propre logique côté client pour fonctionner avec cette solution de mise en cache.

Notes d'utilisation de DAX

  • Pour obtenir la liste des régions AWS où DAX est disponible, consultez Tarification Amazon DynamoDB.

  • DAX prend en charge les applications écrites en Go, Java, Node.js, Python et .NET, en utilisant des clients fournis par AWS pour ces langages de programmation.

  • DAX est disponible uniquement pour la plateforme EC2-VPC.

  • La politique de rôle de service de cluster de DAX doit autoriser l'action dynamodb:DescribeTable pour la conservation des métadonnées relatives à la table DynamoDB.

  • Les clusters DAX conservent les métadonnées sur les noms d'attribut des éléments qu'ils stockent. Ces métadonnées sont conservées indéfiniment (même après que l'élément a expiré ou été exclu du cache). Les applications qui utilisent un nombre illimité de noms d'attributs peuvent entraîner au fil du temps un épuisement de la mémoire du cluster DAX. Cette limitation s'applique uniquement aux noms d'attributs de niveau supérieur, et non aux noms d'attributs imbriqués. Citons comme exemple de noms d'attributs de haut niveau posant problème les horodatages, les UUID et les ID de session.

    Cette limitation s'applique uniquement aux noms d'attributs et non à leurs valeurs. Les éléments suivants ne posent pas de problème.

    { "Id": 123, "Title": "Bicycle 123", "CreationDate": "2017-10-24T01:02:03+00:00" }

    Mais les éléments tels que les suivants en posent s'ils sont suffisamment nombreux et que chacun a un horodatage différent.

    { "Id": 123, "Title": "Bicycle 123", "2017-10-24T01:02:03+00:00": "created" }