Accueil
Qu'est-ce qu'Amazon DynamoDB ? Découvrez la base de données NoSQL d'AWS

Qu'est-ce qu'Amazon DynamoDB ? Découvrez la base de données NoSQL d'AWS

Intéressé par les formations de Jedha ?
Voir le syllabus de Jedha
Nos derniers articles !

Dynamo est le service développé en 2004 par Amazon pour gérer les transactions de son site e-commerce. Développé et managé par AWS depuis 2012, Amazon DynamoDB cherche à répondre à de nombreuses problématiques de charges. Il s'agit en effet d'un service serverless de base de données NoSQL qui supporte aussi bien le stockage clé-valeur que document.

Pour maitriser l'utilisation de ce service, il est nécessaire d'avoir des connaissances et des compétences spécifiques. Jedha propose à cet effet une formation Data Lead qui permet d'utiliser DynamoDB avec facilité.

Introduction à Amazon DynamoDB

Développé par Amazon, DynamoDB est une base de données NoSQL clé-valeur. Contrairement à d'autres produits proposés par Amazon, DynamoDB n'est pas simplement un système open source hébergé sur la plateforme du fournisseur. Il s'agit d'un service de base de données NoSQL qui offre des performances prévisibles et rapides avec une évolutivité transparente.

Amazon DynamoDB permet de créer des tables de base de données qui permettent de stocker et de récupérer n'importe quelle quantité de données. Ce système aide à traiter n'importe quel niveau de trafic de requêtes. Pour maitriser le fonctionnement et l'utilisation d'Amazon DynamoDB, une formation Data Lead est souvent nécessaire.

Qu'est-ce qu'une base de données NoSQL ?

Le NoSQL (Not Only SQL) est un système de base de données dont la spécificité est d'être non relationnelle. Il est principalement utilisé pour stocker des données sous une forme non structurée, ceci, sans véritablement suivre de schémas de construction fixe.

Ce système permet d'organiser les data de façon libre, sans toutefois respecter la structure contraignante des bases de données relationnelles (le cas de SQL par exemple). Très utiles pour les Data Stores distribuées, les bases de données NoSQL sont principalement réparties en 4 catégories :

  • Orienté clé-valeur ;
  • Orienté colonne ;
  • Orienté graphes ;
  • Orienté document.

En plus de ne plus nécessiter l'utilisation des jointures, il offre la possibilité de faciliter le scaling.

Qu'est-ce qu'AWS ?

Leader du marché du Cloud Computing, Amazon Web Services (AWS) est la plateforme Cloud du géant américain la plus complète et incontestablement la plus utilisée au monde. Elle offre à ses clients plus de 200 services complets accessibles via internet, notamment dans la Data Science et le Machine Learning. AWS dispose aussi de nombreuses fonctionnalités telles que le calcul, le stockage et l'analyse des objets.

Les principaux concurrents d'AWS sont Google Cloud Platform et Microsoft Azure. La plateforme possède également l'une des plus grandes communautés de clients et de partenaires répartis dans le monde entier.

Pourquoi utiliser DynamoDB ?

Amazon DynamoDB aide au développement d'applications logicielles. La base de données aide ainsi à créer des applications à l'échelle d'internet tout en prenant en charge les métadonnées et les caches de contenu utilisateur. Ceux-ci nécessitent d'ailleurs une simultanéité élevée ainsi que des connexions pour des millions d'utilisateurs.

De plus, DynamoDB permet de créer des magasins de métadonnées multimédias. La plateforme offre en effet une simultanéité et un débit évolutifs pour les charges de travail multimédia et de divertissement telles que le contenu interactif et le streaming vidéo en temps réel. Ajouté à cela, Amazon DynamoDB permet aux utilisateurs de bénéficier des expériences de vente au détail transparentes.

Fonctionnement de DynamoDB

Cette plateforme divise les informations en tables, en attributs et en articles. À noter qu'il ne s'agit pas de tables relationnelles. Chaque table est composée d'articles qui contiennent à leur tour au moins un attribut. Les articles se différencient les uns des autres par les attributs qui les composent ainsi que les données stockées par ces attributs.

Contrairement à de nombreuses bases de données NoSQL, la base de données Amazon DynamoDB n'est donc pas régie par des schémas. Chaque article est identifiable grâce à sa clé de partitionnement et dispose également d'une clé de tri qui permet de le classer avec les autres articles sur les partitions au sein des tables.

L'architecture de DynamoDB

À un très haut niveau, Amazon DynamoDB est spécialement conçu pour une durabilité, une grande disponibilité et des performances de latence constamment faibles, qui sont en général de l'ordre de quelques millisecondes. Amazon DynamoDB s'exécute sur une flotte de serveurs, qui à leur tour sont gérés par AWS. Ce dernier se sert des disques SSD pour créer une plateforme de stockage de haute densité optimisée.

Cette plateforme dissocie les performances de la taille de celles de la table et élimine par la même occasion le besoin de tenir en mémoire tout en renvoyant des réponses cohérentes à faible latence aux requêtes. En tant que base de données non relationnelle, Amazon DynamoDB extrait ses détails architecturaux sous-jacents chez l'utilisateur.

DynamoDB Standard vs DynamoDB Standard-IA

DynamoDB Standard offre la possibilité de développer des applications logicielles et de créer des magasins de métadonnées multimédias. Il permet aussi d'offrir des expériences de vente aux détails transparents et de mettre à l'échelle des plateformes de jeu.

En ce qui concerne la classe de table Amazon DynamoDB Standard-IA (Infrequent Access), elle aide à réduire les coûts de la base de données jusqu'à 60 % pour les tables qui sauvegardent des data rarement consultées. Elle est parfaitement adaptée pour les cas d'utilisation qui nécessitent un stockage à long terme de données rarement consultées (anciennes publications, journaux d'application, historique des commandes d'e-commerce…).

Python sur AWS

Il est possible de déployer des applications Python dans le Cloud AWS, en se servant notamment de certains outils. Le kit SDK pour Python permet de simplifier l'utilisation des services AWS en fournissant un ensemble de bibliothèques courantes et cohérentes pour les développeurs Python.

Grâce aux boîtes à outils pour AWS, il est aussi possible d'utiliser les environnements IDE (Integrated Development Environment) courants pour la création, le débogage et le déploiement du code utilisateur sur la plateforme. Le kit AWS CDK (Cloud Development Kit) est enfin spécialement réservé pour l'infrastructure as code (iaC) avec Python.

Java sur AWS

Pour exécuter des applications Java sur AWS, il est nécessaire de télécharger les outils nécessaires. Parmi ceux-ci, on peut citer le kit SDK pour Java, les boîtes à outils pour AWS ainsi que l'AWS CDK (Cloud Development Kit) pour la plateforme. Pour accéder à AWS IoT en se servant de MQTT ou MQTT sur le protocole WebSocket via Python, le kit SDK pour Python d'AWS IoT est nécessaire.

Évolution d'Amazon DynamoDB

En tant que service de base de données Cloud, Amazon DynamoDB offre des performances constantes à n'importe quelle échelle. Des centaines de milliers d'utilisateurs font confiance à la base de données NoSQL pour ses propriétés fondamentales :

  • sa disponibilité,
  • ses performances constantes,
  • sa durabilité et son expérience sans serveur entièrement gérée…

Depuis le lancement de ce service en 2012, sa conception et sa mise en œuvre ont particulièrement évolué. Le système a réussi à résoudre les problèmes liés au déséquilibre du trafic entre partitions, à l'équité, à la surveillance et aux opérations système automatisées, sans toutefois avoir d'impact sur les performances et la disponibilité.

Avantages et inconvénients d'Amazon DynamoDB

Amazon DynamoDB offre de nombreux avantages pour les opérations. L'un des principaux points forts de la base de données est qu'il s'agit d'une plateforme très fiable sur laquelle les échecs d'écriture sont extrêmement limités. La plateforme offre également une mise à l'échelle très transparente. Les utilisateurs n'ont plus besoin de faire du partitionnement manuel.

DynamoDB fonctionne également comme Webservices. En d'autres termes, son utilisation ne nécessite pas la présence d'un serveur et l'utilisateur n'a pas besoin d'effectuer une configuration ou une installation.

Malgré ses nombreux avantages, DynamoDB présente également quelques inconvénients. L'un des principaux points faibles de cette plateforme est qu'elle ne peut être déployée que sur AWS. De plus, elle ne peut être installée que sur des postes de travail et des serveurs individuels. En ce qui concerne les requêtes sur AWS, l'interrogation des données est extrêmement limitée.

Offres de la plateforme

L'offre gratuite DynamoDB est calculée mensuellement sur la base d'un compte par souscripteur et par région. AWS offre 25 Go de stockage de données pour les tables de la catégorie de tables DynamoDB Standard et 2,5 millions de demandes de lecture de flux par mois depuis les flux de la plateforme.

Le service offre aussi 100 Go de transfert de données sortant vers internet, auquel s'ajoute l'ensemble des services AWS et des régions (à l'exception de GovCloud et de la Chine).

Amazon DynamoDB : quelle formation choisir ?

L'utilisation d'Amazon DynamoDB nécessite des compétences spécifiques qui ne peuvent être maitrisées que par le biais d'une formation qualifiante. Jedha propose à ses clients différentes formations pour acquérir des compétences d'un expert Data. Parmi celles-ci, on peut notamment citer la formation Data Lead qui permet d'acquérir les compétences d'un Data Engineer tout en performant celle d'un Machine Learning Engineer.

La formation Data Lead que nous proposons est disponible à temps complet, à temps partiel, à distance ou en présentiel. En plus d'aider l'apprenant à atteindre un niveau d'expertise poussé, notre formation Data Lead permet d'accéder à de nombreux métiers techniques tels que celui de Machine Learning Engineer, Data Engineer ou encore celui de ML Ops.

Conclusion

En tant que base de données non relationnelle, DynamoDB est un système qui aide les entreprises à faire évoluer leurs applications. Il est livré avec des options de restauration, de sauvegarde et de sécurisation des données. DynamoDB est capable de concevoir toutes les applications mobiles et web.

Richard Gastard
Écrit par
Richard Gastard
 - 
General Manager
 @
Jedha