DynamoDB : ce qu’il faut savoir sur la base de données d’Amazon
DynamoDB est une base de données NoSQL entièrement gérée offrant une architecture sans serveur, développée par Amazon. Le service se distingue par sa scalabilité transparente, ses temps de réponse en millisecondes et son effort d’exploitation minimal, ainsi que par une intégration AWS simplifiée. Les cas d’usage incluent le développement logiciel, la scalabilité des plateformes de jeux vidéo et le streaming vidéo en temps réel.
Qu’est-ce que DynamoDB ?
Amazon DynamoDB est un service de base de données NoSQL sans serveur pour les applications modernes de toute taille, disponible depuis 2012 via AWS (Amazon Web Services). Contrairement à de nombreux produits concurrents, DynamoDB est une solution entièrement gérée. Il n’est donc pas nécessaire de s’occuper de tâches telles que les mises à niveau, les mises à jour ou la scalabilité. Ce système de gestion de base de données offre également un large éventail de fonctionnalités de sécurité et de standards de conformité. De plus, DynamoDB s’intègre parfaitement avec d’autres services AWS comme Lambda ou le service Amazon OpenSearch.
- Solutions flexibles, adaptées à vos besoins
- Architecture de niveau professionnel, gérée par des experts
- Hébergées en Europe, conformément aux normes de protection des données les plus strictes
La structure de DynamoDB
La structure de la base de données présente une hiérarchie claire avec des tables comme éléments principaux, entre lesquelles il n’existe pas de relations strictes, contrairement aux bases de données relationnelles. Amazon DynamoDB stocke les données dans des partitions qui sont répliquées automatiquement. Chaque partition est constituée de trois nœuds, chacun conservant une copie des données, ce qui permet une scalabilité facile et assure la redondance en cas de défaillance d’un nœud. Les développeurs sauvegardent les enregistrements sous forme d’attributs et leur donnent une clé primaire unique. La base de données prend en charge aussi bien les modèles de données clé-valeur que les modèles orientés documents.
Classes de tables dans AWS DynamoDB
À l’aide des classes de tables, il est possible d’optimiser la performance et la structure des coûts des tables DynamoDB. Les utilisateurs peuvent choisir entre deux classes et basculer entre elles deux fois en 30 jours sans interruption pour ajuster les coûts aux schémas d’utilisation :
- DynamoDB Standard est conçu comme classe de table standard pour les charges de travail haute performance et les tables avec des charges de travail imprévisibles. En comparaison, les tables standard se distinguent par des coûts de lecture et d’écriture plus bas.
- DynamoDB Standard Infrequent Access a été optimisé pour les tables où le stockage est le principal facteur de coût. Les tables IA standard se distinguent par des coûts de stockage plus bas. Cette classe est également idéale pour les tables avec des données rarement consultées.
Quelles fonctionnalités offre DynamoDB ?
DynamoDB propose une variété de fonctionnalités puissantes permettant le développement d’applications évolutives, hautement disponibles et réactives. Le résumé ci-dessous en présente les principales caractéristiques :
- Modèles de données par clé et document : DynamoDB dispose d’un schéma flexible qui permet l’attribution de nombreux attributs différents à des éléments individuels.
- Transactions ACID : cette base de données NoSQL offre des transactions avec Atomicité, Cohérence, Isolation et Durabilité (ACID) pour une grande variété d’applications. Cela permet d’étendre la scalabilité et les performances de DynamoDB à un éventail plus large de processus métier critiques.
- Tables globales avec réplication active-active : les tables globales de DynamoDB sont multi-actives, ce qui permet aux utilisateurs d’écrire et de lire depuis chaque réplique. La capacité est automatiquement ajustée aux charges de travail régionales.
- Streams DynamoDB : cette fonctionnalité sert à capturer les données de changement. Lorsqu’un élément est créé, modifié ou supprimé dans une table, DynamoDB Streams enregistre le changement de données et le conserve pendant 24 heures.
- Index secondaires : DynamoDB prend en charge des index secondaires locaux et globaux pour permettre des requêtes via des clés alternatives. Ils peuvent être implémentés en tant qu’index clairsemés (sparse indexes), afin d’indexer uniquement des sous-ensembles ciblés de donnée.
- Partitionnement automatique : les données sont automatiquement réparties sur plusieurs partitions et ajustées en cas de besoin.
- Fonctionnalités de sécurité : la base de données offre de vastes fonctionnalités pour garantir la sécurité de vos données. Cela inclut des contrôles d’accès différenciés, le chiffrement au repos, la restauration ponctuelle, les sauvegardes à la demande et la connectivité réseau privée.
- Modèles de capacité : les utilisateurs ont la possibilité de choisir entre un mode de capacité à la demande et un mode de capacité provisionnée.
- DynamoDB Accelerator (DAX) : il s’agit d’un service optionnel pour un meilleur caching, qui augmente les performances jusqu’à dix fois.
Avantages et inconvénients d’Amazon DynamoDB
Le service NoSQL d’Amazon se distingue principalement par les points forts suivants :
- Scalabilité automatique : AWS DynamoDB ajuste dynamiquement la capacité et le partitionnement en fonction du débit, ce qui permet une croissance horizontale illimitée.
- Architecture sans serveur : ce système de gestion de base de données est entièrement géré. Cela permet aux utilisateurs de se concentrer pleinement sur le développement d’applications plutôt que de s’occuper de l’infrastructure de base.
- Haute disponibilité : les bases de données multi-région et la réplication automatique garantissent une disponibilité allant jusqu’à 99,999 %.
- Faible latence : la base de données NoSQL fournit par défaut des accès en lecture et écriture avec des latences de l’ordre de la milliseconde. Avec le DynamoDB Accelerator, les temps de réponse peuvent être réduits au besoin à l’échelle de la microseconde.
- Intégration AWS simplifiée : l’intégration transparente de services AWS tels que CloudWatch ou Kinesis étend les fonctionnalités de DynamoDB et permet des analyses de données supplémentaires.
- vCPU aux coûts avantageux et cœurs dédiés performants
- Sans engagement pour plus de flexibilité
- Assistance par des experts 24h/24 et 7j/7 incluse
Bien que les avantages l’emportent clairement et que DynamoDB fasse définitivement partie des meilleures alternatives à SQL, la plateforme présente également quelques faiblesses. D’une part, elle offre seulement des options de requête limitées, moins étendues que celles de nombreuses offres concurrentes. La forte dépendance aux services AWS rend difficile l’intégration avec des solutions tierces ou la migration vers d’autres fournisseurs de Cloud. Dans les modèles à la demande, il existe également un risque que les pics de charge entraînent des frais élevés et imprévisibles.
Quels sont les domaines d’application de DynamoDB ?
DynamoDB a été conçu spécifiquement pour les charges de travail nécessitant le traitement, le dimensionnement et la disponibilité élevée de grandes quantités de données avec une très faible latence. Parmi les cas d’utilisation typiques, on trouve notamment :
- Applications Web et backends mobiles sans serveur, où les données de compte, les sessions et les configurations sont récupérées avec une latence minimale.
- Plateformes de jeu, où des centaines de milliers voire des millions d’utilisateurs accèdent simultanément aux serveurs de jeux.
- Streaming de contenu pour un public mondial avec un trafic de données irrégulier ou en rafales.
- Banques et entreprises de services financiers, qui doivent traiter de nombreuses transactions simultanément et en temps réel, tout en relevant le défi de garantir l’actualité et la sécurité des transactions financières.
- Applications IoT (Internet des objets), qui traitent et stockent des données de capteurs à grande échelle.
Les principales alternatives à DynamoDB
Outre DynamoDB, il existe d’autres systèmes de gestion de bases de données qui peuvent être considérés comme des alternatives en fonction des exigences, du modèle de données, de l’évolutivité et de l’infrastructure. Ceux-ci incluent principalement :
- MongoDB : grande flexibilité et évolutivité illimitée.
- MySQL : système relationnel avec une disponibilité exceptionnelle.
- MariaDB : alternative open source à DynamoDB.
- PostgreSQL: solution de base de données relationnelle avec support pour les types de données non relationnels.
- Firebase de Google : une excellente alternative, surtout pour les applications mobiles et Web.
- Apache Cassandra : idéal pour les grandes quantités de données.