Bonnes pratiques et exigences pour la gestion des tables globales - 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.

Bonnes pratiques et exigences pour la gestion des tables globales

Les tables globales Amazon DynamoDB vous permettent de répliquer vos données de table dans plusieurs régions AWS. Pour garantir une réplication correcte des données, il est important que les tables de réplique et les index secondaires dans votre table globale aient des paramètres de capacité d'écriture identiques.

Version des tables globales

Deux versions des tables globales DynamoDB sont disponibles : Global Tables version 2019.11.21 (actuelle) et. Tableaux globaux version 2017.11.29 (ancienne version) Les clients doivent utiliser la version 2019.11.21 (actuelle) de Global Tables dans la mesure du possible, car elle offre une plus grande flexibilité, une efficacité accrue et consomme moins de capacité d'écriture que la version 2017.11.29 (ancienne version).

Pour déterminer quelle version vous utilisez, consultez Déterminer quelle version des tables globales vous utilisez. Pour mettre à jour les tables globales existantes de la version 2017.11.29 (ancienne) vers la version 2019.11.21 (actuelle), consultez Mise à niveau des tables globales.

Configuration requise pour l'ajout d'une nouvelle table de réplica

Si vous souhaitez ajouter une nouvelle table de réplique à une table globale, chacune des conditions suivantes doit être vrais :

  • La table doit avoir la même clé de partition que tous les réplicas.

  • La table doit avoir les mêmes paramètres de gestion de la capacité d'écriture que tous les réplicas.

  • La table doit avoir la même clé de partition que tous les réplicas.

  • DynamoDB Streams doit être activé pour la table, et le flux doit contenir à la fois la nouvelle image et l'ancienne image de l'élément.

  • Aucune des tables de réplique nouvelles ou existantes dans la table globale ne peut contenir de données.

Si des index secondaires globaux sont spécifiés, les conditions suivantes doivent également être remplies :

  • Les index secondaires globaux doivent avoir le même nom.

  • Les index secondaires globaux doivent avoir la même clé de partition et la même clé de tri (le cas échéant).

Important

Les paramètres de capacité d'écriture doivent être définis de manière cohérente sur la totalité des tables de réplique de vos tables globales et des index secondaires correspondants. Pour mettre à jour les paramètres de capacité d'écriture de votre table globale, nous vous recommandons vivement d'utiliser la console DynamoDB ou l'opération d'API UpdateGlobalTableSettings. L'opération UpdateGlobalTableSettings applique automatiquement les modifications apportées aux paramètres de capacité d'écriture à l'ensemble des tables de réplique et des index secondaires correspondants dans une table globale. Si vous utilisez les opérations UpdateTable, RegisterScalableTarget ou PutScalingPolicy, vous devez appliquer la modification individuellement à chaque table de réplique et à l'index secondaire correspondant. Pour plus d'informations, consultez le UpdateGlobalTableSettingsmanuel Amazon DynamoDB API Reference.

Nous vous recommandons vivement d'activer la scalabilité automatique pour gérer les paramètres de capacité d'écriture approvisionnée. Si vous préférez gérer manuellement les paramètres de capacité d'écriture, vous devez approvisionner toutes vos tables de réplique en unités de capacité d'écriture répliquée égales. Approvisionnez également en unités de capacité d'écriture répliquée égales les index secondaires correspondants dans votre table globale.

Vous devez aussi disposer d'autorisations AWS Identity and Access Management (IAM) appropriées. Pour plus d’informations, consultez Utilisation d'IAM avec des tables globales.

Bonnes pratiques et exigences pour la gestion de la capacité

Lors de la gestion des paramètres de capacité pour des tables de réplique dans DynamoDB, tenez compte de ce qui suit.

Utilisation de la scalabilité automatique de DynamoDB

La scalabilité automatique de DynamoDB est la méthode recommandée pour gérer les paramètres de capacité de débit pour les tables de réplique utilisant le mode approvisionné. La scalabilité automatique de DynamoDB ajuste automatiquement les unités de capacité de lecture (RCU) et les unités de capacité d'écriture (WCU) pour chaque table de réplique en fonction de la charge de travail réelle de votre application. Pour plus d’informations, consultez Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.

Si vous créez vos tables de réplique à l'aide de l'AWS Management Console, la scalabilité automatique est activée par défaut pour chaque table de réplique, avec des paramètres de scalabilité automatique par défaut pour la gestion des unités de capacité de lecture et d'écriture.

Les modifications apportées aux paramètres de scalabilité automatique d'une table de réplique ou d'un index secondaire via la console DynamoDB ou à l'aide de l'appel UpdateGlobalTableSettings sont appliquées automatiquement à l'ensemble des tables de réplique et des index secondaires correspondants dans la table globale. Ces modifications remplacent tous les paramètres de scalabilité automatique existants. Cela garantit que les paramètres de capacité d'écriture approvisionnée sont cohérents entre les tables de réplique et les index secondaires au sein de votre table globale. Si vous utilisez les appels UpdateTable, RegisterScalableTarget ou PutScalingPolicy, vous devez appliquer la modification individuellement à chaque table de réplique et à l'index secondaire correspondant.

Note

Si la scalabilité automatique ne répond pas aux changements de capacité de votre application (charge de travail imprévisible), ou si vous ne souhaitez pas configurer ses paramètres (paramètres cibles pour les seuils minimum, maximum ou d'utilisation), vous pouvez utiliser le mode à la demande pour gérer la capacité de vos tables globales. Pour plus d’informations, consultez Mode de capacité à la demande.

Si vous activez le mode à la demande sur une table globale, votre consommation d'unités de demande d'écriture répliquée sera cohérente avec la manière dont celles-ci sont approvisionnées. Par exemple, si vous effectuez 10 écritures dans une table locale répliquée dans deux régions supplémentaires, vous consommez 60 unités de demande d'écriture (10 + 10 = 30  et 30 x 2 = 60). Les 60 unités de demande d'écriture consommées incluent l'écriture supplémentaire consommée par les tables globales Version 2017.11.29 (ancienne version) pour mettre à jour les attributs aws:rep:deleting, aws:rep:updatetime et aws:rep:updateregion.

Gestion manuelle de la capacité

Si vous décidez de ne pas utiliser la scalabilité automatique de DynamoDB, vous devez définir manuellement les paramètres de capacité de lecture et d'écriture sur chaque table de réplique et index secondaire.

Les unités de capacité d'écriture répliquée approvisionnées sur chaque table de réplique doivent être définies sur deux fois le nombre total d'unités nécessaires pour les écritures d'application dans toutes les régions. Cela permet d'accueillir les écritures d'application qui se produisent dans la région locale et les écritures d'application répliquées provenant d'autres régions. Par exemple, supposons que vous attendez 5 écritures par seconde dans votre table de réplique en Ohio, et 5 écritures par seconde dans votre table de réplique en Virginie du Nord. Dans ce cas, vous devez allouer 20 RWCU à chaque table de réplication (5 + 5 = 10 ; 10 x 2 = 20).

Pour mettre à jour les paramètres de capacité d'écriture de votre table globale, nous vous recommandons vivement d'utiliser la console DynamoDB ou l'opération d'API UpdateGlobalTableSettings. L'opération UpdateGlobalTableSettings applique automatiquement les modifications apportées aux paramètres de capacité d'écriture à l'ensemble des tables de réplique et des index secondaires correspondants dans une table globale. Si vous utilisez les opérations UpdateTable, RegisterScalableTarget ou PutScalingPolicy, vous devez appliquer la modification individuellement à chaque table de réplique et à l'index secondaire correspondant. Pour plus d'informations, consultez la Référence d'API Amazon DynamoDB.

Note

Pour mettre à jour les paramètres (UpdateGlobalTableSettings) pour une table globale dans DynamoDB, vous devez disposer des autorisations dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy et application-autoscaling:DeregisterScalableTarget. Pour plus d'informations, consultez Utilisation d'IAM avec des tables globales.