DynamoDB est une base de données NoSQL en­tiè­re­ment gérée offrant une ar­chi­tec­ture sans serveur, dé­ve­lop­pée par Amazon. Le service se distingue par sa sca­la­bi­lité trans­pa­rente, ses temps de réponse en mil­li­se­condes et son effort d’ex­ploi­ta­tion minimal, ainsi que par une in­té­gra­tion AWS sim­pli­fiée. Les cas d’usage incluent le dé­ve­lop­pe­ment logiciel, la sca­la­bi­lité des pla­te­formes 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 ap­pli­ca­tions modernes de toute taille, dis­po­nible depuis 2012 via AWS (Amazon Web Services). Con­trai­re­ment à de nombreux produits con­cur­rents, DynamoDB est une solution en­tiè­re­ment gérée. Il n’est donc pas né­ces­saire de s’occuper de tâches telles que les mises à niveau, les mises à jour ou la sca­la­bi­lité. Ce système de gestion de base de données offre également un large éventail de fonc­tion­na­li­tés de sécurité et de standards de con­for­mité. De plus, DynamoDB s’intègre par­fai­te­ment avec d’autres services AWS comme Lambda ou le service Amazon Open­Search.

Bases de données managées
Des bases de données gérées et sûres
  • Solutions flexibles, adaptées à vos besoins
  • Ar­chi­tec­ture de niveau pro­fes­sion­nel, gérée par des experts
  • Hébergées en Europe, con­for­mé­ment aux normes de pro­tec­tion des données les plus strictes

La structure de DynamoDB

La structure de la base de données présente une hié­rar­chie claire avec des tables comme éléments prin­ci­paux, entre les­quelles il n’existe pas de relations strictes, con­trai­re­ment aux bases de données re­la­tion­nelles. Amazon DynamoDB stocke les données dans des par­ti­tions qui sont ré­pli­quées au­to­ma­ti­que­ment. Chaque partition est cons­ti­tuée de trois nœuds, chacun con­ser­vant une copie des données, ce qui permet une sca­la­bi­lité facile et assure la re­don­dance en cas de dé­fail­lance d’un nœud. Les dé­ve­lop­peurs sau­ve­gar­dent les en­re­gis­tre­ments 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 per­for­mance et la structure des coûts des tables DynamoDB. Les uti­li­sa­teurs peuvent choisir entre deux classes et basculer entre elles deux fois en 30 jours sans in­ter­rup­tion pour ajuster les coûts aux schémas d’uti­li­sa­tion :

  • DynamoDB Standard est conçu comme classe de table standard pour les charges de travail haute per­for­mance et les tables avec des charges de travail im­pré­vi­sibles. En com­pa­rai­son, les tables standard se dis­tin­guent par des coûts de lecture et d’écriture plus bas.
  • DynamoDB Standard In­fre­quent Access a été optimisé pour les tables où le stockage est le principal facteur de coût. Les tables IA standard se dis­tin­guent par des coûts de stockage plus bas. Cette classe est également idéale pour les tables avec des données rarement con­sul­tées.

Quelles fonc­tion­na­li­tés offre DynamoDB ?

DynamoDB propose une variété de fonc­tion­na­li­tés puis­santes per­met­tant le dé­ve­lop­pe­ment d’ap­pli­ca­tions évo­lu­tives, hautement dis­po­nibles et réactives. Le résumé ci-dessous en présente les prin­ci­pales ca­rac­té­ris­tiques :

  • Modèles de données par clé et document : DynamoDB dispose d’un schéma flexible qui permet l’at­tri­bu­tion de nombreux attributs dif­fé­rents à des éléments in­di­vi­duels.
  • Tran­sac­tions ACID : cette base de données NoSQL offre des tran­sac­tions avec Atomicité, Cohérence, Isolation et Du­ra­bi­lité (ACID) pour une grande variété d’ap­pli­ca­tions. Cela permet d’étendre la sca­la­bi­lité et les per­for­mances de DynamoDB à un éventail plus large de processus métier critiques.
  • Tables globales avec ré­pli­ca­tion active-active : les tables globales de DynamoDB sont multi-actives, ce qui permet aux uti­li­sa­teurs d’écrire et de lire depuis chaque réplique. La capacité est au­to­ma­ti­que­ment ajustée aux charges de travail ré­gio­nales.
  • Streams DynamoDB : cette fonc­tion­na­lité sert à capturer les données de chan­ge­ment. Lorsqu’un élément est créé, modifié ou supprimé dans une table, DynamoDB Streams en­re­gistre le chan­ge­ment de données et le conserve pendant 24 heures.
  • Index se­con­daires : DynamoDB prend en charge des index se­con­daires locaux et globaux pour permettre des requêtes via des clés al­ter­na­tives. Ils peuvent être im­plé­men­tés en tant qu’index clair­se­més (sparse indexes), afin d’indexer uni­que­ment des sous-ensembles ciblés de donnée.
  • Par­ti­tion­ne­ment au­to­ma­tique : les données sont au­to­ma­ti­que­ment réparties sur plusieurs par­ti­tions et ajustées en cas de besoin.
  • Fonc­tion­na­li­tés de sécurité : la base de données offre de vastes fonc­tion­na­li­tés pour garantir la sécurité de vos données. Cela inclut des contrôles d’accès dif­fé­ren­ciés, le chif­fre­ment au repos, la res­tau­ra­tion ponc­tuelle, les sau­ve­gardes à la demande et la con­nec­ti­vité réseau privée.
  • Modèles de capacité : les uti­li­sa­teurs ont la pos­si­bi­lité de choisir entre un mode de capacité à la demande et un mode de capacité pro­vi­sion­née.
  • DynamoDB Ac­ce­le­ra­tor (DAX) : il s’agit d’un service optionnel pour un meilleur caching, qui augmente les per­for­mances jusqu’à dix fois.

Avantages et in­con­vé­nients d’Amazon DynamoDB

Le service NoSQL d’Amazon se distingue prin­ci­pa­le­ment par les points forts suivants :

  • Sca­la­bi­lité au­to­ma­tique : AWS DynamoDB ajuste dy­na­mi­que­ment la capacité et le par­ti­tion­ne­ment en fonction du débit, ce qui permet une crois­sance ho­ri­zon­tale illimitée.
  • Ar­chi­tec­ture sans serveur : ce système de gestion de base de données est en­tiè­re­ment géré. Cela permet aux uti­li­sa­teurs de se con­cen­trer plei­ne­ment sur le dé­ve­lop­pe­ment d’ap­pli­ca­tions plutôt que de s’occuper de l’in­fras­truc­ture de base.
  • Haute dis­po­ni­bi­lité : les bases de données multi-région et la ré­pli­ca­tion au­to­ma­tique ga­ran­tis­sent une dis­po­ni­bi­lité 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 mil­li­se­conde. Avec le DynamoDB Ac­ce­le­ra­tor, les temps de réponse peuvent être réduits au besoin à l’échelle de la mi­cro­se­conde.
  • In­té­gra­tion AWS sim­pli­fiée : l’in­té­gra­tion trans­pa­rente de services AWS tels que Cloud­Watch ou Kinesis étend les fonc­tion­na­li­tés de DynamoDB et permet des analyses de données sup­plé­men­taires.

Bien que les avantages l’emportent clai­re­ment et que DynamoDB fasse dé­fi­ni­ti­ve­ment partie des meil­leures al­ter­na­tives à SQL, la pla­te­forme présente également quelques fai­blesses. D’une part, elle offre seulement des options de requête limitées, moins étendues que celles de nom­breuses offres con­cur­rentes. La forte dé­pen­dance aux services AWS rend difficile l’in­té­gra­tion avec des solutions tierces ou la migration vers d’autres four­nis­seurs de Cloud. Dans les modèles à la demande, il existe également un risque que les pics de charge en­traî­nent des frais élevés et im­pré­vi­sibles.

Quels sont les domaines d’ap­pli­ca­tion de DynamoDB ?

DynamoDB a été conçu spé­ci­fi­que­ment pour les charges de travail né­ces­si­tant le trai­te­ment, le di­men­sion­ne­ment et la dis­po­ni­bi­lité élevée de grandes quantités de données avec une très faible latence. Parmi les cas d’uti­li­sa­tion typiques, on trouve notamment :

  • Ap­pli­ca­tions Web et backends mobiles sans serveur, où les données de compte, les sessions et les con­fi­gu­ra­tions sont ré­cu­pé­rées avec une latence minimale.
  • Pla­te­formes de jeu, où des centaines de milliers voire des millions d’uti­li­sa­teurs accèdent si­mul­ta­né­ment aux serveurs de jeux.
  • Streaming de contenu pour un public mondial avec un trafic de données ir­ré­gu­lier ou en rafales.
  • Banques et en­tre­prises de services fi­nan­ciers, qui doivent traiter de nom­breuses tran­sac­tions si­mul­ta­né­ment et en temps réel, tout en relevant le défi de garantir l’actualité et la sécurité des tran­sac­tions fi­nan­cières.
  • Ap­pli­ca­tions IoT (Internet des objets), qui traitent et stockent des données de capteurs à grande échelle.

Les prin­ci­pales al­ter­na­tives à DynamoDB

Outre DynamoDB, il existe d’autres systèmes de gestion de bases de données qui peuvent être con­si­dé­rés comme des al­ter­na­tives en fonction des exigences, du modèle de données, de l’évo­lu­ti­vité et de l’in­fras­truc­ture. Ceux-ci incluent prin­ci­pa­le­ment :

  • MongoDB : grande flexi­bi­lité et évo­lu­ti­vité illimitée.
  • MySQL : système re­la­tion­nel avec une dis­po­ni­bi­lité ex­cep­tion­nelle.
  • MariaDB : al­ter­na­tive open source à DynamoDB.
  • Post­greSQL: solution de base de données re­la­tion­nelle avec support pour les types de données non re­la­tion­nels.
  • Firebase de Google : une ex­cel­lente al­ter­na­tive, surtout pour les ap­pli­ca­tions mobiles et Web.
  • Apache Cassandra : idéal pour les grandes quantités de données.
Aller au menu principal