Fonctionnalités d'Amazon DynamoDB

Pourquoi DynamoDB ?

Amazon DynamoDB est un service de base de données NoSQL sans serveur qui prend en charge les modèles de données clé-valeur et documents. Les développeurs peuvent utiliser DynamoDB pour créer des applications modernes sans serveur qui peuvent démarrer à petite échelle et mettre à l’échelle mondiale. DynamoDB s’adapte pour prendre en charge des tables de pratiquement toute taille grâce à une mise à l’échelle horizontale automatisée.

La disponibilité, la durabilité et la tolérance aux pannes sont intégrées, ce qui élimine la nécessité de concevoir vos applications en fonction de ces capacités.

DynamoDB est conçu pour exécuter des applications hautes performances à l'échelle d'internet qui surchargeraient les bases de données relationnelles traditionnelles. Fort de plus de dix ans d’investissements novateurs, DynamoDB offre une capacité de mise à l’échelle illimitée avec des performances constantes à un chiffre en millisecondes et une disponibilité allant jusqu’à 99,999 %.

Pour en savoir plus sur les nouvelles fonctionnalités et capacités, consultez les annonces des nouveautés de DynamoDB.

Performances sans serveur et capacité de mise à l'échelle illimitée

DynamoDB prend en charge à la fois les modèles de données clé-valeur et de données de document. En tant que base de données NoSQL, DynamoDB possède un schéma flexible, de sorte que chaque élément peut avoir de nombreux attributs différents. Cela vous permet d'adapter facilement les tables en fonction des variations de vos besoins professionnels, sans devoir redéfinir le schéma de table, comme vous devriez le faire avec les bases de données relationnelles.

Avec DynamoDB, vous n'avez aucun serveur à mettre en service, corriger ou gérer, et aucun logiciel à installer, mettre à jour ou exploiter. DynamoDB ne dispose pas de versions (majeure, mineure ou corrective), il n'y a pas de fenêtres de maintenance et DynamoDB fournit une maintenance sans durée d’indisponibilité. La tarification à la demande de DynamoDB propose une tarification à l'usage, une mise à l'échelle à zéro et une mise à l'échelle automatique des tables pour ajuster la capacité et maintenir les performances sans aucune administration.

DynamoDB est conçu pour les charges de travail critiques, y compris la prise en charge des transactions d'atomicité, de cohérence, d'isolation et de durabilité (ACID) pour les applications qui nécessitent une logique commerciale complexe. DynamoDB offre une prise en charge native côté serveur pour les transactionsce qui simplifie la tâche du développeur qui doit effectuer des changements coordonnés de type « tout ou rien » sur plusieurs éléments à la fois dans et entre les tables.

DynamoDB prend désormais en charge 100 actions par transaction, ce qui améliore la productivité des développeurs. Grâce à cette prise en charge des transactions, les développeurs peuvent étendre les avantages offerts par DynamoDB en matière d'échelle, de performances et d'exploitation à une plus grande quantité de charges de travail critiques.

Les tables globales DynamoDB permettent une réplication active-active de vos données dans les Régions AWS de votre choix avec une disponibilité de 99,999 %. Les tables globales sont multi-actives, ce qui signifie que vous pouvez écrire et lire à partir de n'importe quelle réplique, et vos applications distribuées dans le monde entier peuvent accéder aux données localement dans les régions sélectionnées pour obtenir des performances de lecture et d'écriture à un chiffre en millisecondes.

En outre, les tables globales mettent à l'échelle automatiquement la capacité en fonction de vos charges de travail multirégionales. Les tableaux globaux améliorent la résilience multirégionale de votre application et doivent être pris en compte dans le cadre de la stratégie de continuité des activités de votre organisation.

DynamoDB Streams est une fonctionnalité de capture de données de modifiées. Chaque fois qu'une application crée, met à jour ou supprime des éléments d'une table, DynamoDB Streams enregistre une séquence chronologique de chaque changement de niveau de l'élément en temps quasi réel, ce qui en fait une solution idéale pour les applications d'architecture pilotée par les événements qui consomment et agissent sur les changements. Toutes les modifications sont dédupliquées et stockées pendant 24 heures.

Les applications peuvent également accéder à ce journal et consulter les éléments de données tels qu'ils apparaissaient avant et après leur modification en temps quasi réel. DynamoDB Streams garantit que chaque enregistrement de flux apparaît exactement une fois dans le flux et que, pour chaque élément modifié, les enregistrements de flux apparaissent dans le même ordre que les modifications réelles apportées à l'élément.

Comme pour tous les autres systèmes de base de données, vous commencez par créer une table, qui est une collection d'éléments. Avec DynamoDB, chaque élément de la table possède sa propre clé primaire. De nombreuses applications peuvent également bénéficier d'une ou de plusieurs clés secondaires pour rechercher plus efficacement des données à l'aide d'autres attributs. DynamoDB offre la possibilité de créer des index secondaires globaux et locaux, ce qui vous permet d'interroger les données de la table à l'aide d'une clé secondaire ou alternative.

Les index secondaires globaux sont également appelés index épars. En plus de vous offrir une flexibilité maximale quant à la manière d'accéder à vos données, vous pouvez fournir un débit d'écriture inférieur avec d'excellentes performances à moindre coût.

Sécurité et fiabilité

Avec DynamoDB, il n'y a pas de nom d'utilisateur ni de mot de passe. DynamoDB utilise la AWS Identity and Access Management (IAM) pour authentifier, créer et accéder aux ressources. Vous pouvez spécifier des politiques IAM, des politiques basées sur des ressources et des conditions qui autorisent un accès précis, en limitant l'accès en lecture ou en écriture à des éléments et attributs spécifiques d'une table, en fonction de l'identité de cet utilisateur. Cela permet aux clients d'appliquer des politiques de sécurité au niveau du code.

DynamoDB chiffre toutes les données client au repos par défaut. Le chiffrement au repos améliore la sécurité de vos données en utilisant des clés de chiffrement stockées dans AWS Key Management Service (AWS KMS). Avec l'ajout du SDK de chiffrement de base de données AWS, vous pouvez effectuer un chiffrement au niveau des attributs afin de renforcer le contrôle d'accès granulaire aux données de votre table. DynamoDB vous permet de créer des applications sensibles à la sécurité qui répondent à des exigences réglementaires et de conformité strictes en matière de chiffrement.

Les clés de chiffrement fournissent une couche supplémentaire de protection des données en protégeant vos données contre tout accès non autorisé au stockage sous-jacent. Vous pouvez spécifier si DynamoDB doit utiliser une clé appartenant à 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 AWS est fourni sans frais supplémentaires.

La reprise ponctuelle(PITR) permet de protéger vos tables DynamoDB contre les opérations d'écriture ou de suppression accidentelles. PITR vous permet de bénéficier de sauvegardes en continu de vos données de table DynamoDB, et vous pouvez restaurer cette table à tout moment, jusqu'à la seconde près, au cours des 35 jours précédents.

Le PITR n'utilise pas la capacité allouée et n'a aucun impact sur les performances ou la disponibilité de vos applications. L'activation de PITR ou le lancement d'opérations de sauvegarde et de restauration est aussi simple qu'un simple clic dans la Console de gestion AWS ou qu'un simple appel API.

La sauvegarde et la restauration à la demande vous permettent de créer des sauvegardes complètes des données de vos tables DynamoDB pour l'archivage des données, ce qui vous permet de répondre aux exigences réglementaires de votre entreprise et du gouvernement. Vous pouvez sauvegarder des tables de quelques mégaoctets à des centaines de téraoctets de données, sans impacter les performances et la disponibilité de vos applications de production. Grâce à l'intégration d'AWS Backup, vous pouvez également copier des sauvegardes à la demande entre comptes et entre régions, répartir les coûts des sauvegardes et transférer les sauvegardes vers un stockage à froid.

DynamoDB prend en charge les points de terminaison cloud privé virtuel (VPC) de la passerelle et les points de terminaison VPC d'interface pour les connexions au sein d'un VPC ou depuis des centres de données sur site. Vous pouvez configurer la connectivité réseau privée entre vos applications sur site et DynamoDB via des points de terminaison VPC d'interface activés avec AWS PrivateLink. Cela permet aux clients de simplifier la connectivité privée à DynamoDB et de maintenir la conformité.

Solution économique

DynamoDB offre deux modes de capacité pour chaque table : le mode de capacité à la demande et le mode de capacité provisionnée.

  • Dans le cas de charges de travail moins prévisibles, si vous n'êtes pas sûr d'avoir un degré d'utilisation intensif, le mode de capacité à la demande assure la gestion de la capacité à votre place et vous ne payez que ce que vous consommez.
  • Les tables qui utilisent le mode de capacité provisionnée nécessitent en revanche votre intervention pour définir la capacité de lecture et d'écriture. Le mode de capacité provisionnée est plus rentable lorsque vous êtes sûr d'avoir une utilisation raisonnable de la capacité provisionnée que vous avez spécifiée. 

Dans le cas des tables utilisant le mode de capacité à la demande, DynamoDB adapte instantanément vos charges de travail à la hausse ou à la baisse en fonction du niveau de trafic atteint précédemment. Si le niveau de trafic d'une charge de travail atteint un nouveau pic, DynamoDB s'adapte rapidement afin de prendre en charge cette charge de travail. Vous pouvez également configurer le débit maximal en lecture ou en écriture (ou les deux) pour les tables individuelles à la demande et les index secondaires associés, ce qui permet d'équilibrer facilement les coûts et les performances. Vous pouvez utiliser le mode de capacité à la demande à la fois pour les nouvelles tables et les tables existantes, et vous pouvez continuer à utiliser les API DynamoDB existantes sans modification du code.

Pour les données peu consultées, vous pouvez utiliser la classe de table Amazon DynamoDB Standard-IA, qui permet de réduire vos coûts DynamoDB jusqu'à 60 %. Les tables Standard-IA à faible coût de stockage sont conçues pour le stockage à long terme de données peu consultées, telles que les journaux d'applications, les données historiques de jeu, les anciennes publications sur les réseaux sociaux, etc. Elle offre la même disponibilité, la même durabilité et les mêmes performances que les tables Amazon DynamoDB Standard, qui constituent l'option par défaut et la plus rentable pour la plupart des charges de travail.

Dans le cas des tables utilisant le mode de capacité provisionnée, DynamoDB fournit un autoscaling du débit et du stockage en fonction de la capacité préalablement définie en surveillant les performances d'utilisation de votre application.

  • En cas d'augmentation du trafic de votre application, DynamoDB augmente le débit afin de prendre en charge la charge de travail.
  • En cas de baisse du trafic de l'application, DynamoDB effectue une mise à l'échelle à la baisse afin de réduire votre facture pour la capacité inutilisée.

Intégrations avec les services AWS

L'importation/exportation en masse depuis Amazon Simple Storage Service (Amazon S3) vous permet de tirer le meilleur parti de vos données en vous évitant d'écrire du code pour déplacer, transformer et copier vos tables DynamoDB d'une application, d'un compte ou d'une région à l'autre. L'importation/exportation en masse n'utilise pas la capacité de lecture ou d'écriture de votre table, vous n'avez donc pas besoin de planifier ou de fournir de capacité supplémentaire. Le processus d'importation/exportation en masse est entièrement géré par DynamoDB.

Les importations en masse depuis Amazon S3 vous permettent d'importer des données à n'importe quelle mise à l'échelle, du mégaoctet au téraoctet, à l'aide de formats pris en charge tels que CSV, DynamoDB JSON et Amazon Ion. Grâce aux importations en masse depuis S3, les clients peuvent économiser jusqu'à 66 % par rapport aux écritures basées sur le client utilisant la capacité provisionnée.

Avec les exportations en masse vers Amazon S3, vous pouvez exporter des données à partir de tables pour lesquelles PITR est activée à tout moment au cours des 35 derniers jours avec une granularité par seconde. Une fois que vous avez exporté des données de DynamoDB vers Amazon S3, vous pouvez utiliser d'autres services AWS tels qu'Amazon Athena, Amazon SageMaker, et plus encore pour analyser vos données et en extraire des informations exploitables.

Amazon Kinesis Data Streams pour DynamoDB capture les modifications apportées au niveau des éléments dans vos tables DynamoDB afin d’alimenter des tableaux de bord en direct, de générer des métriques et de transmettre des données dans des lacs de données. Kinesis Data Streams vous permet de créer des applications de streaming avancées telles que l'agrégation de journaux en temps réel, l'analytique commerciale en temps réel et la capture de données sur l'internet des objets.

Grâce à Kinesis Data Streams, vous pouvez également utiliser Amazon Kinesis Data Firehose pour transmettre automatiquement des données DynamoDB à d'autres services AWS tels qu'Amazon S3, Amazon OpenSearch Service et Amazon Redshift.

Pour contrôler facilement les performances de votre base de données, DynamoDB est intégré à Amazon Cloudwatch, qui collecte et traite les données brutes sur les performances des bases de données. Vous pouvez utiliser CloudWatch pour créer des vues et des tableaux de bord personnalisés contenant des métriques et des alarmes pour vos bases de données DynamoDB. Cette fonctionnalité de surveillance est proposée par défaut et est gratuite. Vous pouvez également créer des alarmes qui vous sont automatiquement envoyées en fonction des performances des indicateurs.

Amazon CloudWatch Contributor Insights vous permet d'identifier rapidement qui ou quoi a un impact sur vos bases de données et les performances de vos applications. Cette fonctionnalité permet d'isoler, de diagnostiquer et de résoudre plus rapidement les problèmes lors d'un événement opérationnel.

Questions fréquentes (FAQ)

Parmi les avantages uniques de DynamoDB, citons le fait qu'il s'agit d'une base de données sans serveur approuvée, entièrement gérée et mise à l'échelle, qui fournit des performances à un chiffre en millisecondes et une disponibilité allant jusqu'à 99,999 %. Grâce à ses performances constantes à l'échelle, DynamoDB offre également la sécurité, la durabilité et la fiabilité intégrées requises pour les applications mondiales répondant aux exigences les plus strictes.

Grâce à sa facilité d'utilisation et à sa capacité de mise à l'échelle illimitée, DynamoDB est souvent choisi à la fois pour les nouvelles applications modernes et pour les applications Internet établies qui recherchent des performances rapides et constantes avec une mise à l'échelle illimitée.

DynamoDB est conçu pour les développeurs et, comme il est sans serveur, il est très facile à configurer à l'aide de notre documentation technique.