Qu’est-ce qu’Amazon DynamoDB ?
Amazon DynamoDB est une base de données NoSQL entièrement gérée sans serveur avec des performances de moins de 10 millisecondes, quelle que soit l’échelle.
DynamoDB vous permet de surmonter les complexités des bases de données relationnelles en matière d’opérations et de mise à l’échelle. DynamoDB est spécifiquement conçu et optimisé pour les charges de travail opérationnelles qui nécessitent des performances constantes à n’importe quelle échelle. Par exemple, DynamoDB fournit des performances constantes inférieures à 10 millisecondes pour les cas d’utilisation de panier d’achat, que vous ayez 10 ou 100 millions d’utilisateurs. Lancé en 2012
Des clients de toutes tailles, de tous secteurs et de toutes zones géographiques utilisent DynamoDB pour créer des applications modernes sans serveur qui peuvent commencer modestement et se mettre à l’échelle dans le monde entier. DynamoDB s’adapte pour prendre en charge des tables de pratiquement toutes tailles, tout en offrant des performances constantes inférieures à 10 millisecondes ainsi qu’une haute disponibilité.
Pour les événements tels que l’Amazon Prime Day
Rubriques
Caractéristiques de DynamoDB
sans serveur
Avec DynamoDB, vous n’avez besoin de provisionner aucun serveur, ni de corriger, gérer, installer, maintenir ou exploiter aucun logiciel. DynamoDB assure la maintenance sans durée d’indisponibilité. Il n’implique aucune version (majeure, mineure ou correctif) ni aucune fenêtre de maintenance.
Le mode de capacité à la demande de DynamoDB offre une tarification à l’usage où vous ne payez que les demandes de lecture et d’écriture que vous exécutez. Grâce au mode à la demande, DynamoDB augmente ou diminue verticalement et de manière instantanée la capacité de vos tables en fonction des besoins et préserve les performances sans aucune administration. Il réduit également verticalement la capacité à zéro afin que vous n’ayez pas de frais de débit à payer lorsque votre table n’a pas de trafic et qu’il n’y a pas de démarrage à froid.
NoSQL
En tant que base de données NoSQL, DynamoDB est spécifiquement conçu pour optimiser les performances, la capacité de mise à l’échelle, la gérabilité et la flexibilité par rapport aux bases de données relationnelles traditionnelles. Pour permettre un large éventail de cas d’utilisation, DynamoDB prend en charge à la fois les modèles clé-valeur et les modèles de données documentaires.
Contrairement aux bases de données relationnelles, DynamoDB ne prend pas en charge l’opérateur JOIN. Nous vous recommandons de dénormaliser votre modèle de données afin de réduire les allers-retours avec votre base de données et la puissance de traitement nécessaire pour répondre aux requêtes. En tant que base de données NoSQL, DynamoDB fournit une forte cohérence de lecture et des transactions ACID
Entièrement géré
En tant que service de base de données entièrement géré, DynamoDB prend en charge le gros du travail indifférencié lié à la gestion d’une base de données afin que vous puissiez vous concentrer sur la création de valeur pour vos clients. Il gère l’installation, les configurations, la maintenance, la haute disponibilité, la mise en service du matériel, la sécurité, les sauvegardes, la surveillance, etc. Ainsi, lorsque vous créez une table DynamoDB, celle-ci est immédiatement prête pour les charges de travail de production. DynamoDB améliore constamment sa disponibilité, sa fiabilité, ses performances, sa sécurité et son fonctionnement sans nécessiter de mises à niveau ni de durée d’indisponibilité.
Performances inférieures à 10 millisecondes, quelle que soit l’échelle
DynamoDB est spécifiquement conçu pour améliorer les performances et la capacité de mise à l’échelle des bases de données relationnelles afin d’offrir des performances inférieures à 10 millisecondes à n’importe quelle échelle. Pour atteindre cette échelle et ces performances, DynamoDB est optimisé pour les charges de travail à hautes performances et fournit des API qui favorisent une utilisation efficace des bases de données. Il omet les fonctionnalités inefficaces et peu performantes à grande échelle, par exemple les opérations JOIN. DynamoDB garantit à votre application des performances constantes inférieures à 10 millisecondes, que vous comptiez 100 ou 100 millions d’utilisateurs.
Cas d’utilisation de DynamoDB
Des clients de toutes tailles, de tous secteurs et de toutes zones géographiques utilisent DynamoDB pour créer des applications modernes sans serveur qui peuvent commencer modestement et se mettre à l’échelle dans le monde entier. DynamoDB est idéal pour les cas d’utilisation qui nécessitent des performances constantes, quelle que soit l’échelle, avec des frais opérationnels minimes, voire nuls. La liste suivante présente certains cas d’utilisation adaptés à DynamoDB :
-
Applications de services financiers : supposons que vous soyez une société de services financiers qui développe des applications, telles que le trading et le routage en temps réel, la gestion des prêts, la génération de jetons et les registres de transactions. Grâce aux tables globales DynamoDB, vos applications peuvent répondre aux événements et gérer le trafic des Régions AWS de votre choix avec des performances de lecture et d’écriture rapides et locales.
DynamoDB convient aux applications soumises aux exigences de disponibilité les plus strictes. Il élimine le fardeau opérationnel lié à la mise à l’échelle manuelle des instances pour faire face à la hausse du stockage ou du débit, à la gestion des versions et aux licences.
Vous pouvez utiliser les transactions DynamoDB pour assurer l’atomicité, la cohérence, l’isolement et la durabilité (ACID) sur une ou plusieurs tables avec une seule requête. Les transactions (ACID) conviennent aux charges de travail qui incluent le traitement des transactions financières ou l’exécution des commandes. DynamoDB s’adapte instantanément à l’accroissement ou à la baisse de vos charges de travail, ce qui vous permet de mettre à l’échelle votre base de données efficacement en fonction des conditions du marché, telles que les heures de trading.
-
Applications de jeu : en tant que société de jeux, vous pouvez utiliser DynamoDB pour toutes les parties des plateformes de jeu, par exemple pour l’état du jeu, les données des joueurs, l’historique des sessions et les classements. Choisissez DynamoDB pour sa capacité de mise à l’échelle, ses performances constantes et la facilité de fonctionnement qu’offre son architecture sans serveur. DynamoDB convient parfaitement aux architectures évolutives nécessaires aux jeux les plus populaires. Il met rapidement à l’échelle le débit de votre jeu à la hausse ou à la baisse (avec la possibilité de réduire la capacité à zéro sans démarrage à froid). Cette capacité de mise à l’échelle optimise l’efficacité de votre architecture, que vous augmentiez la capacité horizontalement en cas de pic de trafic ou que vous la réduisiez lorsque l’utilisation du jeu est faible.
-
Applications de streaming : les entreprises du secteur des médias et du divertissement utilisent DynamoDB comme index de métadonnées pour le contenu, le service de gestion de contenu ou la diffusion de statistiques sportives en temps quasi réel. Elles utilisent également DynamoDB pour exécuter des services utilisateur de liste de suivi et de mise en favoris et pour traiter des milliards d’événements de clients quotidiens afin de générer des recommandations. Ces clients bénéficient de la capacité de mise à l’échelle, des performances et de la résilience de DynamoDB. DynamoDB s’adapte à l’accroissement ou à la baisse des charges de travail, ce qui donne lieu à des cas d’utilisation de streaming multimédia pouvant répondre à tous les niveaux de la demande.
Pour en savoir plus sur la façon dont les clients de différents secteurs utilisent DynamoDB, consultez Amazon DynamoDB Customers
Fonctionnalités de DynamoDB
Réplication multiactive avec les tables globales
Les tables globales fournissent une réplication multiactive de vos données sur l’ensemble des Régions AWS que vous avez choisies avec une disponibilité de 99,999 %
Vos applications distribuées dans le monde entier peuvent accéder aux données localement dans les régions que vous avez sélectionnées pour atteindre des performances de lecture et d’écriture inférieures à 10 millisecondes. Les tables globales étant multiactives, vous n’avez pas besoin d’une table principale. En d’autres termes, il n’y a pas de basculement compliqué ou différé, ni d’indisponibilité de la base de données en cas de basculement d’une application entre régions.
Transactions ACID
DynamoDB est conçu pour les charges de travail stratégiques. Il prend en charge les transactions (ACID) pour les applications qui nécessitent une logique métier complexe. DynamoDB offre une prise en charge côté serveur native des transactions, simplifiant ainsi l’expérience des développeurs lorsqu’il s’agit d’apporter des modifications coordonnées radicales à plusieurs éléments au sein de tables et entre elles.
Capture des données modifiées pour les architectures basées sur les événements
DynamoDB prend en charge le streaming des registres de capture des données modifiées (CDC) au niveau des éléments en quasi-temps réel. Il offre deux modèles de streaming pour la capture des données modifiées : DynamoDB Streams et Kinesis Data Streams pour DynamoDB. Chaque fois qu’une application crée, met à jour ou supprime des éléments dans une table, Streams enregistre une séquence chronologique de chaque modification au niveau des éléments en temps quasi réel. DynamoDB Streams est donc la solution idéale pour les applications dotées d’une architecture axée sur les événements afin de prendre en compte les modifications et d’agir en conséquence.
Index secondaires
DynamoDB offre la possibilité de créer des index secondaires globaux et locaux, qui vous permettent d’interroger les données de la table à l’aide d’une clé alternative. Ces index secondaires vous permettent d’accéder aux données avec des attributs autres que la clé primaire, ce qui offre une flexibilité maximale pour l’accès à vos données.
Intégrations de service
DynamoDB s’intègre largement à plusieurs Services AWS pour vous aider à tirer le meilleur parti de vos données, à éliminer le gros du travail indifférencié et à gérer vos charges de travail à grande échelle. Voici quelques exemples : AWS CloudFormation Amazon CloudWatch, Amazon S3, AWS Identity and Access Management (IAM) et AWS Auto Scaling. Les sections suivantes décrivent certaines des intégrations de service que vous pouvez exécuter à l’aide de DynamoDB :
Intégrations sans serveur
Pour créer des applications sans serveur de bout en bout, DynamoDB s’intègre nativement à divers Services AWS sans serveur. Par exemple, vous pouvez intégrer DynamoDB à AWS Lambda pour créer des déclencheurs, qui sont des éléments de code répondant automatiquement aux événements dans DynamoDB Streams. Avec les déclencheurs, vous pouvez créer des applications basées sur les événements, qui réagissent aux modifications de données dans les tables DynamoDB. Pour optimiser les coûts, vous pouvez filtrer les événements traités par Lambda à partir d’un flux DynamoDB.
La liste suivante présente quelques exemples d’intégrations sans serveur avec DynamoDB :
-
AWS AppSync pour créer des API GraphQL
-
Amazon API Gateway pour créer des API REST
-
Lambda pour le calcul sans serveur
-
Amazon Kinesis Data Streams pour la capture des données modifiées (CDC)
Importation et exportation de données vers Amazon S3
L’intégration de DynamoDB dans Amazon S3 vous permet d’exporter facilement des données vers un compartiment Amazon S3 à des fins d’analytique et de machine learning. DynamoDB prend en charge les exportations de tables complètes et les exportations incrémentielles pour exporter les données modifiées, mises à jour ou supprimées pendant une période de temps spécifiée. Vous pouvez également importer les données d’Amazon S3 dans une nouvelle table DynamoDB.
Intégration zéro ETL
DynamoDB prend en charge l’intégration zéro ETL avec Amazon Redshift et l’utilisation d’un pipeline d’ingestion OpenSearch avec Amazon DynamoDB. Ces intégrations vous permettent d’exécuter une analytique complexe et d’utiliser des fonctionnalités de recherche avancées au niveau des données de vos tables DynamoDB. Par exemple, vous pouvez effectuer une recherche vectorielle et en texte intégral, ainsi qu’une recherche sémantique sur vos données DynamoDB. Les intégrations zéro ETL n’ont aucun impact sur les charges de travail de production exécutées sur DynamoDB.
Mise en cache
DynamoDB Accelerator (DAX) est un service de mise en cache hautement disponible et entièrement géré conçu pour DynamoDB. DAX offre des performances jusqu’à 10 fois supérieures, de l’ordre de quelques microsecondes au lieu de quelques millisecondes, même lorsque le nombre de requêtes s’élève à plusieurs millions par seconde. DAX prend en charge toutes les tâches nécessaires pour ajouter une accélération en mémoire à vos tables DynamoDB, sans que vous ayez à gérer l’invalidation du cache, le remplissage des données ni la gestion des clusters.
Sécurité
DynamoDB utilise IAM pour vous aider à contrôler en toute sécurité l’accès à vos ressources DynamoDB. Avec IAM, vous pouvez gérer de manière centralisée les autorisations qui déterminent quels utilisateurs DynamoDB peuvent accéder aux ressources. Vous pouvez utiliser IAM pour contrôler les personnes qui s’authentifient (sont connectées) et sont autorisées (disposent d’autorisations) à utiliser des ressources. Comme DynamoDB utilise IAM, aucun nom d’utilisateur ni mot de passe n’est nécessaire pour accéder à DynamoDB. Comme vous n’avez aucune politique complexe de rotation des mots de passe à gérer, la sécurité est simplifiée. Avec IAM, vous pouvez également activer un contrôle d’accès précis pour fournir une autorisation au niveau des attributs. Vous pouvez également définir des politiques basées sur les ressources avec la prise en charge de l’analyseur d’accès IAM et du blocage de l’accès public (BPA) afin de simplifier la gestion des politiques.
Par défaut, DynamoDB chiffre toutes les données client au repos. Le chiffrement au repos améliore la sécurité de vos données en utilisant les clés de chiffrement stockées dans AWS Key Management Service (AWS KMS). Le chiffrement au repos vous permet de créer des applications sensibles en matière de sécurité qui sont conformes aux exigences réglementaires et de chiffrement strictes. Lorsque vous accédez à une table chiffrée, DynamoDB déchiffre les données de la table de manière transparente. Vous n’avez pas besoin de changer de code ou d’application pour utiliser ou gérer des tables chiffrées. DynamoDB continue d’offrir la latence inférieure à 10 millisecondes habituelle, et toutes les requêtes DynamoDB fonctionnent sans heurt sur vos données chiffrées.
Vous pouvez spécifier si DynamoDB doit utiliser une Clé détenue par AWS (type de chiffrement par défaut), une Clé gérée par AWS ou une clé gérée par le client pour chiffrer les données utilisateur. Le chiffrement par défaut à l’aide de clés KMS appartenant à AWS est disponible sans frais supplémentaires. Pour le chiffrement côté client, vous pouvez utiliser le kit SDK AWS Database Encryption
DynamoDB respecte également plusieurs normes de conformité
Résilience
Par défaut, DynamoDB réplique automatiquement vos données sur trois zones de disponibilité
DynamoDB inclut les fonctionnalités suivantes qui contribuent à répondre à vos besoins en matière de résilience et de sauvegarde de données :
Fonctionnalités
Tables globales
Les tables globales DynamoDB garantissent un SLA de disponibilité de 99,999 %
Sauvegardes continues et reprise ponctuelle
Les sauvegardes continues vous offrent une granularité à la seconde et la possibilité d’initier une restauration ponctuelle (PITR). Grâce à la restauration ponctuelle (PITR), vous pouvez restaurer une table à n’importe quel instant dans le passé au cours des 35 derniers jours, avec une précision allant jusqu’à la seconde. Vous pouvez définir la période de restauration sur une valeur comprise entre 1 et 35 jours.
Les sauvegardes continues et le lancement d’une restauration ponctuelle (PITR) n’utilisent pas la capacité provisionnée. Ils n’ont pas non plus d’impact sur les performances ni sur la disponibilité de vos applications.
Sauvegarde et restauration à la demande
Les fonctionnalités de sauvegarde et restauration à la demande vous permettent de créer des sauvegardes complètes d’une table pour l’archivage et la conservation à long terme, à des fins de conformité réglementaire. Les sauvegardes n’ont aucun impact sur les performances de la table, et vous pouvez sauvegarder des tables de n’importe quelle taille. Avec l’intégration AWS Backup, vous pouvez utiliser AWS Backup pour planifier, copier, baliser et gérer automatiquement le cycle de vie de vos sauvegardes à la demande DynamoDB. AWS Backup vous permet de copier des sauvegardes à la demande entre comptes et régions, et de transférer les anciennes sauvegardes vers un stockage à froid pour optimiser les coûts.
Accès à DynamoDB
Vous pouvez utiliser DynamoDB à l’aide de la AWS Management Console
Pour plus d’informations, consultez Accès à DynamoDB.
Tarification de DynamoDB
DynamoDB facture la lecture, l’écriture et le stockage de données dans vos tables, ainsi que toutes les fonctionnalités facultatives que vous choisissez d’activer. DynamoDB propose deux modes de capacité, qui offrent des options de facturation respectives pour traiter les lectures et les écritures dans vos tables : à la demande et provisionné.
DynamoDB est également inclus dans l’offre toujours gratuite, qui fournit 25 Go de stockage. L’offre toujours gratuite inclut également 25 unités de capacité d’écriture et 25 unités de capacité de lecture provisionnées (WCU, RCU), ce qui est suffisant pour traiter 200 millions de demandes par mois.
Pour plus d’informations, consultez Tarification Amazon DynamoDB
Mise en route avec DynamoDB
Si vous utilisez DynamoDB pour la première fois, nous vous recommandons de commencer par lire les rubriques suivantes :
-
Mise en route avec DynamoDB : vous guide tout au long du processus de configuration de DynamoDB, de création des exemples de tables et de chargement des données. Cette rubrique fournit également des informations sur l’exécution de certaines opérations de base de données clés à l’aide de la AWS Management Console, d’AWS CLI, de NoSQL Workbench et des API DynamoDB.
-
Composants principaux de DynamoDB : décrit les concepts de base de DynamoDB.
-
Bonnes pratiques de conception et d’architecture avec DynamoDB : fournit des recommandations concernant la conception NoSQL, DynamoDB Well-Architected Lens, la conception de tables et plusieurs autres fonctionnalités de DynamoDB. Ces bonnes pratiques vous aideront à optimiser les performances et à minimiser les coûts de débit lorsque vous travaillerez avec DynamoDB.
Nous vous conseillons également de vérifier les didacticiels suivants, qui présentent des procédures complètes pour vous familiariser avec DynamoDB. Vous pouvez suivre ces didacticiels en utilisant la fonctionnalité de l’offre toujours gratuite.
Pour plus d’informations sur les ressources, les outils et les stratégies de migration vers DynamoDB, consultez Migration vers DynamoDB. Pour lire les derniers blogs et livres blancs, consultez Amazon DynamoDB resources