Les bases de données non-relationnelles (NoSQL) stockent des données volumineuses et non structurées (sans schéma fixe). Voici ce que propose AWS :
DynamoDB
DocumentDB
OpenSearch
Keyspaces
Neptune
QLDB
DynamoDB
DynamoDB est le service de base de données clé-valeur NoSQL propriétaire et sans serveur, conçu pour exécuter des applications hautes performances à n'importe quelle échelle.
Le schéma ci-dessous présente ses principales caractéristiques :
A - Répond à des millions de requêtes par seconde.
B - Pour une utilisation peu fréquente et un stockage longue durée, utilisez la classe DynamoDB Standard – Accès peu fréquent (IA).
C - Un rôle IAM est nécessaire pour être authentifié et autorisé sur DynamoDB.
D - Haute disponibilité grâce à la réplication sur tous les AZ de façon transparente, sans approvisionnement et sans maintenance.
E - DynamoDB stocke une centaine de TB de données.
DynamoDB vous permet de créer des tables pour stocker des données appelées éléments (items) qui sont constitués d’attributs. Ci-dessous la structure d’une table :
A - La clé primaire doit toujours être unique pour chaque élément (item) de la table.
Il y a deux genres de clés primaires :
clé de partition
ou clé de partition + clé de tri
B - Tous les éléments avec la même valeur de clé de partition sont stockés dans la même partition, par ordre de valeur de la clé de tri.
C - Les attributs peuvent être différents selon les éléments. Créez un attribut comme index secondaire, vous permettant d'interroger les données grâce à une clé alternative, en plus des requêtes sur la clé primaire.
D - Time-To-Live (TTL) est un attribut optionnel permettant de définir un timestamp pour l'élément (item) au bout duquel DynamoDB le purge automatiquement.
1672444800=”2022/12/31 00:00:00”
E - La taille max d’un élément = 400 KB.
F - DynamoDB stocke les données d’une table dans des partitions. Une partition est une allocation de stockage, automatiquement répliquée dans plusieurs AZ d’une même région.
DynamoDB fournit d’autres fonctionnalités (features) pour s’intégrer plus efficacement avec d’autres services :
DynamoDB Streams : enclenche un flux (stream) ordonné d’informations, à chaque fois qu’un élément est créé/modifié/supprimé, pour invoquer d’autres services AWS qui y appliquent un traitement.
DynamoDB Accelerator (DAX) : un cache en mémoire entièrement géré, hautement disponible et transparent pour DynamoDB, qui réduit les temps de réponse jusqu'à dix fois.
A - DAX est compatible avec les API de DynamoDB, donc aucune modification de la logique du site web à réaliser.
B - Traite des millions de requêtes par seconde, avec des latences de plusieurs millisecondes à quelques microsecondes.
C - Par défaut : 5 minutes TTL pour le cache.
D - Idéal pour mettre en cache des requêtes fréquentes de type query/scan qui prennent du temps à être calculées par DynamoDB.
Tables Globales : créent des tables automatiquement répliquées dans plusieurs régions avec des temps de réponse très faibles.
A - Les données peuvent être lues et créées dans n’importe quelle région.
B - Réplication multiactive : chaque modification dans une région est automatiquement répliquée dans les autres régions.
C - Dans chaque région, DynamoDB Streams doit être activé.
DocumentDB
C’est un service entièrement géré et compatible avec MongoDB.
OpenSearch
Ce service est entièrement géré et compatible avec le moteur de recherche NoSQL ElasticSearch, avec lequel vous pouvez rechercher très rapidement n'importe quel mot/valeur. OpenSearch est couramment utilisé en complément d'une autre base de données.
Keyspaces
C’est un service entièrement géré et sans serveur compatible avec la base de données NoSQL Cassandra. Idéal pour stocker des données de l’Internet des Objets (IoT) ou de séries chronologiques.
Neptune
Ce service entièrement géré fournit des bases orientées graphes. Les réseaux sociaux sont un exemple de cas d’usages.
Quantum Ledger Database (QLDB)
Un service entièrement géré et sans serveur, qui fournit un registre centralisé et inaltérable stockant l’historique de transactions financières.
Questions types de l'examen
Voici un exemple de question sur les sujets vus dans ce chapitre que vous pourriez avoir à l'examen. Essayez d'y réfléchir vous-même avant de vérifier la réponse.
Une organisation de vente au détail déploie une nouvelle application qui lira et écrira des données dans une base de données. L'entreprise souhaite déployer l'application dans trois régions AWS différentes dans une configuration active-active. Les bases de données doivent être répliquées pour maintenir la synchronisation des informations.
Quelle solution répond le mieux à ces exigences ?
Amazon DynamoDB avec tables globales
Migrer les données avec AWS Batch
Amazon Athena avec réplication interrégionale Amazon S3
Base de données Amazon Aurora Globale
En résumé
DynamoDB est le service propriétaire d’AWS pour les bases de données non relationnelles.
Les services DocumentDB, OpenSearch, Keyspaces, Neptunes et QLDB permettent de créer des bases de données non relationnelles, basées sur des solutions open-source ou du marché.
Maintenant, comment créer une application pour mettre en cache des données en complément des bases de données relationnelles et non relationnelles ? Allons voir le chapitre suivant !