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.

Dans les rares cas de défaillance d'une seule 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 sur n'importe quelle table de réplication. 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 conflits de mise à jour pour les charges de travail multiactives. De plus, elles permettent à vos applications de rester hautement disponibles, y compris dans le cas peu probable de l'isolation ou de la dégradation de toute une région.

Vous pouvez configurer des tables globales dans la Console de gestion AWS à l’aide de l’interface de la ligne de commande AWS (AWS CLI) ou d’AWS CloudFormation. Aucune modification d'application n'est requise lors de la lecture ou de l'écriture dans une table globale, car les tables globales 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. Pour en savoir plus sur la configuration des tables globales, consultez 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 options à la demande et provisionnées.

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 de réplication, DynamoDB les réplique automatiquement dans toutes les autres tables de réplication 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 modifications 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'accéder aux données avec une faible latence, où qu'ils se trouvent. Dans le cas peu probable où une région AWS deviendrait temporairement indisponible, vos clients peuvent toujours accéder aux tables de réplication 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.

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. Les tables globales étant multiactives, une application peut lire ou écrire sur n'importe quelle table de réplication. Dans les rares cas d'un événement régional imprévu, l'application peut rediriger vers une autre réplique.

Vous pouvez créer une table globale à l'aide de la console Amazon DynamoDB, d’AWS CLI 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 »