Tables globales Amazon DynamoDB

Pourquoi choisir les tables globales Amazon DynamoDB ?

Les tables globales Amazon DynamoDB sont une base de données entièrement gérée, sans serveur, multirégion et multiactive. Les tables globales vous offrent une disponibilité de 99,999 %, une résilience accrue des applications et une meilleure continuité des activités. Les tables globales répliquant automatiquement vos tables Amazon DynamoDB dans les régions AWS de votre choix, vous pouvez obtenir des performances de lecture et d'écriture locales rapides.

Si le traitement de votre application est interrompu dans une région, il n’est pas nécessaire de procéder à un basculement de base de données, car l’architecture multiactive des tables globales permet aux clients de lire et d’écrire dans n’importe quelle table répliquée. Les tables globales éliminent également les difficultés liées à la réplication des données entre les régions et à la résolution des problèmes de mise à jour pour les charges de travail multirégionales.

Pour les charges de travail multirégionales, vous pouvez désormais choisir entre une cohérence forte NEW (version préliminaire) ou une cohérence finale. Une cohérence élevée vous permet de créer des applications avec un objectif de point de restauration de zéro, également appelé RPO zéro. Il garantit également que votre application lit toujours les données les plus récentes.

La mise en route des tables globales est un processus simple, car elles utilisent les mêmes API DynamoDB que les tables à région unique. L'utilisation de tables globales n'entraîne aucun coût ou engagement initial. Vous ne payez que les ressources allouées. Vous pouvez configurer des tables de façon globale dans laConsole de gestion AWS à l’aide de l’interface de la ligne de commande AWS (AWS CLI) ou d’AWS CloudFormation, et vous pouvez en savoir plus dans le guide du développeur Amazon DynamoDB. Pour plus d’informations sur la tarification des tables globales, consultez les options de tarification d’Amazon DynamoDB pour les tables à la demande et disponibles.

Le principe est le suivant :

Une table globale DynamoDB est composée de plusieurs tables de réplication. Chaque table de réplication existe dans une région différente, mais toutes les répliques portent le même nom et la même clé primaire. Lorsque des données sont écrites dans une table réplique, DynamoDB réplique automatiquement ces données dans toutes les autres tables répliques de la table globale.

Par exemple, supposons que votre application serve une large clientèle répartie sur trois zones géographiques : la côte Est des États-Unis, le Canada et l'Europe de l'Ouest. Sans tables globales, vous devriez créer une table dans chaque région AWS et écrire du code pour répliquer les changements de données dans chaque table de chaque région.

Avec les tables globales, vous pouvez créer une table globale avec une table de réplique dans les trois régions les plus proches de chaque zone géographique. DynamoDB répliquera automatiquement les modifications de n'importe quelle réplique vers les répliques des autres régions.

Les tables globales permettent aux utilisateurs de votre application d’avoir un accès à faible latence aux données, quel que soit l’endroit où ils se trouvent. Si le traitement de votre application est interrompu dans une région, vos clients peuvent toujours accéder aux tables répliques dans les autres régions.

Le principe est le suivant :

Avantages de la table globale Amazon DynamoDB

Les tables globales sont conçues pour une disponibilité de 99,999 %. Si une seule région AWS devient isolée ou dégradée, votre application peut être redirigée vers une autre région et effectuer des lectures et des écritures sur une table de réplica différente. Vous pouvez appliquer une logique métier personnalisée pour déterminer quand rediriger les demandes vers d'autres régions. 

En outre, Amazon DynamoDB garde la trace de toutes les écritures qui ont été effectuées mais qui n'ont pas encore été propagées à toutes les tables de réplica. Lorsque la région revient en ligne, Amazon DynamoDB reprend la propagation d'une écriture en attente de cette région vers les tables de réplica des autres régions et vice versa.

Les tables globales permettent de lire et d'écrire les données localement en offrant une latence inférieure à 10 millisecondes à votre application mondialement distribuée, quelle que soit l'échelle. Cela peut améliorer les performances des applications mondiales à grande échelle.

Les tables globales éliminent la complexité et la charge opérationnelle liées au déploiement et à la gestion de la réplication multiactive et multirégionale dans Amazon DynamoDB. Il suffit de sélectionner les régions où vous devez répliquer vos données, et DynamoDB s'occupe du reste. Les applications accèdent aux tables globales à travers les API et points de terminaison DynamoDB existants.

Toute modification apportée à un élément d'une table de réplica est reproduite dans toutes les autres réplicas de la même table globale. Dans une table globale, un élément nouvellement écrit est généralement propagé à toutes les tables de réplica en une seconde.  Avec une table globale, chaque table de réplica stocke le même ensemble de données. Amazon DynamoDB ne prend pas en charge la réplication partielle de certains éléments seulement. Si les applications mettent à jour le même élément dans différentes régions à peu près au même moment, des conflits peuvent survenir.

Pour résoudre les conflits, les tables globales d'Amazon DynamoDB utilisent un système de réconciliation entre les mises à jour simultanées selon lequel Amazon DynamoDB fait tout son possible pour déterminer le dernier auteur. Grâce à ce mécanisme de résolution des conflits, tous les réplicas s'accordent sur la dernière mise à jour et convergent vers un état dans lequel elles disposent toutes de données identiques.

La réplication multiactive et multirégion garantit que les mises à jour effectuées sur une table de réplication dans une région sont répliquées sur les tables de réplication d'autres régions. La réplication entre les répliques de tables d'une région à l'autre est finalement cohérente. Cela signifie que les lectures et écritures locales sur des tables de réplication au sein de la même région que l'application peuvent atteindre une forte cohérence. Toutefois, les lectures des éléments qui se trouvent dans d'autres tables de réplication au sein d'une région sont finalement cohérentes.

Questions d’ordre général

Une table globale est un ensemble d'une ou plusieurs tables de réplication, toutes détenues par un seul compte AWS. Une seule table globale Amazon DynamoDB ne peut comporter qu'une seule table de réplication par région AWS.

Une table de réplication est une table DynamoDB unique. Chaque table de réplication stocke le même ensemble d'éléments de données, possède le même nom de table et le même schéma de clé primaire. Lorsqu'une application écrit des données dans une table de réplique dans une région, Amazon DynamoDB propage automatiquement l'écriture dans les autres tables de réplique des autres régions AWS.

Oui, les tables globales Amazon Dynamo renforcent la continuité des activités en augmentant la résilience d'une application et en fournissant une cohérence solide pour une seule région. Grâce à une forte cohérence multirégionale, vous pouvez créer des applications avec zéro RPO et avec les plus hauts niveaux de résilience.

Vous pouvez créer une table globale à l’aide de la console Amazon DynamoDB, de l’interface de la ligne de commande AWS ou d’AWS CloudFormation grâce à ce guide étape par étape.

Avant d’ajouter une réplique supplémentaire dans une région différente à une table globale Amazon DynamoDB, DynamoDB Streams doit être activé sur la table, porter le même nom que toutes les autres répliques, avoir la même clé de partition que toutes les autres répliques et avoir les mêmes paramètres de capacité d’écriture spécifiés.

Toutes les tables répliquées d'une table globale Amazon DynamoDB doivent porter le même nom.

Comme d'autres bases de données, Amazon DynamoDB stocke les données dans des tables. Un tableau est un ensemble d'éléments, et chaque élément est un ensemble d'attributs. Amazon DynamoDB utilise des clés primaires pour identifier de manière unique chaque élément d'un tableau et possède des index secondaires pour offrir une plus grande flexibilité en matière de requêtes.

En revanche, une table globale Amazon DynamoDB est un ensemble d'une ou plusieurs tables de réplication détenues par un seul compte AWS. La structure de chaque table de réplication est identique à celle d'une table Amazon DynamoDB standard.

Oui, vous pouvez activer la restauration instantanée sur chaque réplique d'une table globale.

  • Zoom

    Lorsque la pandémie de COVID-19 a commencé, il y avait une énorme demande pour nos services vocaux et vidéo. Au début de l'année 2020, nous avons constater l'utilisation sans précédent passer de 10 millions à 300 millions de participants aux réunions quotidiennes, provenant de clients nouveaux et existants qui avaient besoin de se connecter virtuellement. Sur le backend, nous avons pu gérer cette augmentation avec Amazon DynamoDB pour les réunions Zoom. L'utilisation des tables globales DynamoDB en conjonction avec le mode à la demande nous a permis d'effectuer une mise à l'échelle presque à l'infini sans aucun problème de performances, même avec notre pic soudain d'utilisation.

    Yasin Mohammed, responsable de l'ingénierie, opérations cloud chez Zoom Video Communications, Inc.
  • Disney

    Disney+ utilise Amazon DynamoDB pour ingérer chaque jour des contenus, des métadonnées et des milliards d'actions de la part des clients, ce qui permet aux utilisateurs d'ajouter du contenu à leurs listes de vidéos à regarder, puis de commencer à regarder une vidéo et de la récupérer sur un appareil différent ou de faire des recommandations sur les prochaines vidéos à regarder.

    Des milliards de signets sont ingérés chaque jour via Amazon Kinesis et Amazon DynamoDB.

    Attilio Giue, directeur de la découverte du contenu, Disney+
    Lire le communiqué de presse »
  • Snap Inc.

    Snap Inc. a réalisé des économies importantes sur ses coûts d'infrastructure annuels et a mis en place une infrastructure rapide et fiable pour l'application de messagerie multimédia Snapchat en utilisant Amazon DynamoDB.

    Les fonctionnalités offertes par Amazon DynamoDB et l'innovation continue qu'il propose nous donnent la certitude que nous pouvons continuer à compter sur lui et à innover en plus de cela.

    Saral Jain, directeur de l'ingénierie, Infrastructure et données, Snap Inc.
    Lire l'étude de cas »