Qu'est-ce qu'Amazon DynamoDB ? - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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 à un chiffre en millisecondes à n'importe quelle échelle.

DynamoDB répond à vos besoins en matière de scalabilité et de complexité opérationnelle des bases de données relationnelles. DynamoDB est spécialement 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 à un chiffre en millisecondes pour un cas d'utilisation d'un panier d'achat, que vous ayez 10 ou 100 millions d'utilisateurs. Lancé en 2012, DynamoDB continue de vous aider à vous éloigner des bases de données relationnelles tout en réduisant les coûts et en améliorant les performances à grande échelle.

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 démarrer à petite échelle et évoluer à l'échelle mondiale. DynamoDB s'adapte pour prendre en charge des tables de pratiquement toutes tailles, tout en offrant des performances constantes à une milliseconde à un chiffre et une haute disponibilité.

Pour les événements tels que Amazon Prime Day, DynamoDB alimente plusieurs propriétés et systèmes Amazon à fort trafic, notamment Alexa, les sites Amazon.com et tous les centres de distribution Amazon. Lors de tels événements, les API DynamoDB ont traité des milliards d'appels provenant de propriétés et de systèmes Amazon. DynamoDB fournit en permanence à des centaines de clients des tables dont le trafic atteint un pic de trafic de plus d'un demi-million de demandes par seconde. Elle dessert également des centaines de clients dont la taille des tables dépasse 200 To et traite plus d'un milliard de demandes par heure.

Caractéristiques de DynamoDB

Sans serveur

Avec DynamoDB, vous n'avez pas besoin de provisionner de serveurs, ni de patcher, de gérer, d'installer, de maintenir ou d'exploiter un logiciel. DynamoDB assure la maintenance sans interruption de service. Il n'existe aucune version (majeure, mineure ou correctif) et il n'y a aucune fenêtre de maintenance.

Le mode de capacité à la demande de DynamoDB propose des pay-as-you-go tarifs pour les demandes de lecture et d'écriture afin que vous ne payiez que pour ce que vous utilisez. Grâce à la demande, DynamoDB augmente ou diminue instantanément vos tables pour ajuster la capacité et maintenir les performances sans aucune administration. Il est également réduit à zéro afin que vous ne payiez pas pour le débit 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écialement conçu pour améliorer les performances, l'évolutivité, la gérabilité et la flexibilité par rapport aux bases de données relationnelles traditionnelles. Pour prendre en charge 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 entre les bases 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 assure une forte cohérence de lecture et des transactions ACID pour créer des applications professionnelles.

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é, le provisionnement 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 ses fonctionnalités sans nécessiter de mises à niveau ni de temps d'arrêt.

Performances à un chiffre en millisecondes, quelle que soit l'échelle

DynamoDB a été spécialement conçu pour améliorer les performances et l'évolutivité des bases de données relationnelles afin de fournir des performances à un chiffre en 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 fournit des performances constantes à une milliseconde à un chiffre pour votre application, 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 démarrer à petite échelle et évoluer à l'échelle mondiale. DynamoDB est idéal pour les cas d'utilisation qui nécessitent des performances constantes à n'importe quelle échelle avec une charge opérationnelle faible, voire nulle. La liste suivante présente certains cas d'utilisation dans lesquels vous pouvez utiliser 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 de votre Régions AWS 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é au dimensionnement manuel des instances pour augmenter le stockage ou le débit, le contrôle des versions et les licences.

    Vous pouvez utiliser les transactions DynamoDB pour obtenir l'atomicité, la cohérence, l'isolation 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 à vos charges de travail lorsqu'elles augmentent ou diminuent, ce qui vous permet d'adapter efficacement votre base de données aux conditions du marché, telles que les heures de négociation.

  • 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 son évolutivité, ses performances constantes et la facilité d'exploitation qu'offre son architecture sans serveur. DynamoDB convient parfaitement aux architectures évolutives nécessaires à la réussite des jeux. Il adapte rapidement le débit de votre jeu à la fois en entrée et en sortie (mise à niveau jusqu'à zéro sans démarrage à froid). Cette évolutivité optimise l'efficacité de votre architecture, que vous l'adaptiez 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 pour fournir des statistiques sportives en temps quasi réel. Ils utilisent également DynamoDB pour exécuter des services de liste de suivi et de mise en favoris des utilisateurs et pour traiter des milliards d'événements clients quotidiens afin de générer des recommandations. Ces clients bénéficient de l'évolutivité, des performances et de la résilience de DynamoDB. DynamoDB s'adapte à l'évolution de la charge de travail à mesure qu'elle augmente ou diminue, ce qui permet des cas d'utilisation du streaming multimédia pouvant répondre à tous les niveaux de demande.

Pour en savoir plus sur la façon dont les clients de différents secteurs utilisent DynamoDB, consultez Amazon DynamoDB Customers et This is My Architecture.

Fonctionnalités de DynamoDB

Réplication multiactive avec des tables globales

Les tables globales fournissent une réplication multiactive de vos données sur l'ensemble de votre choix Régions AWS avec une disponibilité de 99,999 %. Les tables globales constituent une solution entièrement gérée pour déployer une base de données multirégionale et multiactive, sans créer ni gérer votre propre solution de réplication. Avec les tables globales, vous pouvez spécifier l' Régions AWS endroit où vous souhaitez que les tables soient disponibles. DynamoDB réplique les modifications de données en cours dans toutes ces tables.

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 à un chiffre en millisecondes. Les tables globales étant multiactives, vous n'avez pas besoin d'une table principale. Cela signifie qu'il n'y a pas de basculement compliqué ou retardé, ni d'interruption 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 critiques. Il inclut le support des transactions (ACID) pour les applications qui nécessitent une logique métier complexe. DynamoDB fournit un support natif côté serveur pour les transactions, simplifiant ainsi l'expérience des développeurs lorsqu'il s'agit d'apporter des modifications coordonnées à plusieurs éléments dans et all-or-nothing entre les tables.

Capture des données de modification pour les architectures axées sur les événements

DynamoDB prend en charge le streaming des enregistrements de capture des données de modification (CDC) au niveau des éléments en temps quasi réel. Il propose deux modèles de streaming pour le CDC : DynamoDB Streams et Kinesis Data Streams for DynamoDB. Chaque fois qu'une application crée, met à jour ou supprime des éléments d'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. Avec ces index secondaires, vous pouvez accéder aux données avec des attributs autres que la clé primaire, ce qui vous donne une flexibilité maximale dans l'accès à vos données.

Intégrations de service

DynamoDB s'intègre largement à Services AWS plusieurs d'entre eux pour vous aider à tirer le meilleur parti de vos données, à éliminer les charges lourdes indifférenciées et à gérer vos charges de travail à grande échelle. Voici quelques exemples : Amazon AWS CloudFormation CloudWatch, Amazon S3 AWS Identity and Access Management (IAM) et AWS Auto Scaling. Les sections suivantes décrivent certaines des intégrations de services que vous pouvez effectuer à l'aide de DynamoDB :

Intégrations sans serveur

Pour créer des applications end-to-end sans serveur, DynamoDB s'intègre nativement à un certain nombre d'applications sans serveur. Services AWS Par exemple, vous pouvez intégrer DynamoDB pour créer des déclencheurs, qui sont des éléments de code qui répondent automatiquement aux événements dans DynamoDB Streams. AWS Lambda Les déclencheurs vous permettent de créer des applications pilotées par des événements qui réagissent aux modifications des 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 :

Importation et exportation de données vers Amazon S3

L'intégration de DynamoDB à Amazon S3 vous permet d'exporter facilement des données vers un compartiment Amazon S3 à des fins d'analyse et d'apprentissage automatique. 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 entre une période spécifiée. Vous pouvez également importer des données depuis 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 Amazon Service. OpenSearch Ces intégrations vous permettent d'exécuter des analyses complexes et d'utiliser des fonctionnalités de recherche avancées sur les 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 sans 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 entièrement géré conçu pour DynamoDB. Le DAX améliore les performances jusqu'à 10 fois, de la milliseconde à la microseconde, même à des millions de requêtes 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 peuplement des données ou 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 contrôlent les utilisateurs DynamoDB autorisés à 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. DynamoDB utilisant IAM, il n'existe aucun nom d'utilisateur ou mot de passe pour accéder à DynamoDB. Comme vous n'avez aucune politique complexe de rotation des mots de passe à gérer, cela simplifie votre niveau de sécurité. 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 d'IAM Access Analyzer et de Block Public Access (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 de fournir la même latence en millisecondes à un chiffre que celle à laquelle vous vous attendez, et toutes les requêtes DynamoDB fonctionnent parfaitement sur vos données chiffrées.

Vous pouvez spécifier si DynamoDB doit utiliser Clé détenue par AWS une (type de chiffrement par défaut) 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 AWS détenues par des utilisateurs est disponible sans frais supplémentaires. Pour le chiffrement côté client, vous pouvez utiliser le SDK AWS Database Encryption.

DynamoDB respecte également plusieurs normes de conformité, notamment HIPAA, PCI DSS et RGPD, ce qui vous permet de répondre aux exigences réglementaires.

Résilience

Par défaut, DynamoDB réplique automatiquement vos données sur trois zones de disponibilité afin de garantir une durabilité élevée et un SLA de disponibilité de 99,99 %. DynamoDB fournit également des fonctionnalités supplémentaires pour vous aider à atteindre vos objectifs de continuité d'activité et de reprise après sinistre.

DynamoDB inclut les fonctionnalités suivantes pour répondre à vos besoins en matière de résilience et de sauvegarde des données :

Tables globales

Les tables globales DynamoDB garantissent un SLA de disponibilité de 99,999 % et une résilience multirégionale. Cela vous permet de créer des applications résilientes et de les optimiser pour atteindre les objectifs de temps de restauration (RTO) et de point de restauration (RPO) les plus bas. Les tables globales s'intègrent également à AWS Fault Injection Service (AWS FIS) pour effectuer des expériences d'injection de défauts sur vos charges de travail de tables globales. Par exemple, suspendre la réplication globale d'une table vers n'importe quelle table de réplication.

Sauvegardes et point-in-time restauration continues

Les sauvegardes continues vous offrent une granularité par seconde et la possibilité de lancer une point-in-time restauration. Grâce à point-in-time la restauration, vous pouvez restaurer une table à n'importe quel point dans le temps, jusqu'à la seconde au cours des 35 derniers jours.

Les sauvegardes continues et le lancement d'une point-in-time restauration n'utilisent pas la capacité allouée. Ils n'ont pas non plus d'impact sur les performances ou la disponibilité de vos applications.

Sauvegarde et restauration à la demande

La sauvegarde et la restauration à la demande vous permettent de créer des sauvegardes complètes d'une table à des fins de conservation à long terme et d'archivage pour répondre aux exigences de conformité réglementaire. Les sauvegardes n'ont aucun impact sur les performances de votre table et vous pouvez sauvegarder des tables de toutes tailles. Grâce à AWS Backup l'intégration, vous pouvez AWS Backup planifier, copier, étiqueter et gérer automatiquement le cycle de vie de vos sauvegardes à la demande DynamoDB. Vous pouvez ainsi copier des sauvegardes à la demande entre comptes et régions, et transférer les anciennes sauvegardes vers un stockage à froid pour optimiser les coûts. AWS Backup

Accès à DynamoDB

Vous pouvez utiliser DynamoDB à l'aide AWS Management Consoledes API DynamoDBNoSQL Workbench pour DynamoDB, AWS Command Line Interfaceou DynamoDB.

Tarification DynamoDB

DynamoDB facture la lecture, l'écriture et le stockage de données dans vos tables, ainsi que les fonctionnalités facultatives que vous choisissez d'activer. DynamoDB propose deux modes de capacité avec leurs options de facturation respectives pour le traitement des lectures et des écritures sur vos tables : à la demande et provisionné.

DynamoDB propose également un niveau gratuit qui fournit 25 Go de stockage. Le niveau gratuit 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 d'exemples de tables et de téléchargement de données. Cette rubrique fournit également des informations sur l'exécution de certaines opérations de base de données de base à l' AWS Management Console aide des API NoSQL Workbench et DynamoDB. AWS CLI

  • 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 meilleures pratiques vous aident à optimiser les performances et à minimiser les coûts de débit lorsque vous travaillez avec DynamoDB.

Nous vous recommandons également de consulter les didacticiels suivants qui présentent end-to-end des procédures complètes pour vous familiariser avec DynamoDB. Vous pouvez suivre ces didacticiels avec le niveau gratuit de AWS.

Pour plus d'informations sur les ressources, les outils et les stratégies de migration vers DynamoDB, consultez la section Migration vers DynamoDB. Pour lire les derniers blogs et livres blancs, consultez les ressources Amazon DynamoDB.