Mode de capacité en lecture/écriture - 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.

Mode de capacité en lecture/écriture

Amazon DynamoDB offre deux modes de capacité de lecture/écriture pour traiter les lectures et écritures dans vos tables.

  • A la demande

  • Alloué (offre gratuite éligible, mode par défaut)

Le mode de capacité en lecture/écriture détermine la façon dont le débit de lecture et écriture vous est facturé et votre façon de gérer la capacité. Vous pouvez définir le mode de capacité en lecture/écriture lorsque vous créez une table ou que vous la modifiez ultérieurement.

Les index secondaires héritent du mode de capacité de lecture/écriture de la table de base. Pour plus d’informations, consultez Considérations relatives à la modification du mode de capacité de lecture ou d'écriture.

La vidéo suivante vous donne un aperçu des modes de capacité des tables.

Pour plus d'informations sur les bonnes pratiques en matière d'optimisation des coûts des tables DynamoDB, consultez Optimisation des coûts sur les tables DynamoDB.

Mode de capacité à la demande

Amazon DynamoDB à la demande est une option de facturation flexible permettant de servir des milliers de demandes par seconde sans planification de capacité. DynamoDB à la demande pay-per-request propose des tarifs pour les demandes de lecture et d'écriture afin que vous ne payiez que pour ce que vous utilisez.

Lorsque vous choisissez le mode à la demande, DynamoDB s'adapte instantanément à vos charges de travail à mesure qu'elles augmentent ou diminuent jusqu'à tout niveau de trafic précédemment atteint. 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. Les tables qui utilisent le mode à la demande offrent les mêmes avantages, en termes de latence inférieure à 10 millisecondes, d'engagement de niveau de service (SLA) et de sécurité, que DynamoDB offre déjà. Vous pouvez choisir le mode à la demande à la fois tant pour les nouvelles tables que pour des tables existantes, et vous pouvez continuer d'utiliser les API DynamoDB existantes sans modification du code.

Le mode à la demande est une bonne option si l'une des conditions suivantes est remplie :

  • Vous créez des tables avec des charges de travail inconnues.

  • Vous avez un trafic imprévisible au niveau de l'application.

  • Vous préférez ne payer qu'à l'utilisation.

Le taux de demandes n'est limité que par les quotas de débit de table par défaut de DynamoDB, mais il peut être augmenté sur demande. Pour plus d’informations, consultez Quotas de débit par défaut.

Pour vous familiariser avec la capacité à la demande, vous pouvez créer ou mettre à jour une table pour y activer le mode de capacité à la demande. Pour plus d’informations, consultez Opérations de base sur les tables DynamoDB.

Les tables peuvent passer en mode à la demande toutes les 24 heures. La création d'une table à la demande marque également le début de cette période de 24 heures. Les tables peuvent repasser en mode capacité provisionnée à tout moment. Pour vous familiariser avec les éléments à prendre en compte lorsque vous changez de mode de capacité de lecture/écriture, consultez Considérations relatives à la modification du mode de capacité de lecture ou d'écriture.

Unités de demande de lecture et unités de demande d'écriture

Pour les tables en mode à la demande, vous devez spécifier le débit de lecture et d'écriture que votre application est supposée atteindre. DynamoDB facture les lectures et écritures que votre application effectue dans vos tables, comptabilisées en termes d'unités de demande de lecture et d'unités de demande d'écriture.

Les demandes de lecture de DynamoDB peuvent être soit fortement cohérentes, soit éventuellement cohérentes, soit transactionnelles.

  • Une demande de lecture fortement cohérente d'un élément pouvant représenter jusqu'à 4 Ko nécessite une unité de demande de lecture.

  • Une demande de lecture éventuellement cohérente d'un élément pouvant représenter jusqu'à 4 Ko nécessite une demi-unité de demande de lecture.

  • Une demande de lecture transactionnelle d'un élément pouvant représenter jusqu'à 4 Ko nécessite deux unités de demande de lecture.

Si vous devez lire un élément d'une taille supérieure à 4 Ko, DynamoDB a besoin d'unités de demande de lecture supplémentaires. Le nombre total d'unités de demande de lecture nécessaires dépend de la taille de l'élément et du fait que vous vouliez une lecture éventuellement cohérente ou une lecture cohérente forte. Par exemple, si la taille de votre élément est 8 ko, il vous faut 2 unités de demande de lecture pour assurer une lecture cohérente forte, 1 unité de demande de lecture si vous choisissez des lectures éventuellement cohérentes ou 4 unités de demande de lecture pour une demande de lecture transactionnelle.

Pour en savoir plus sur les modèles de cohérence de lecture dans DynamoDB, consultez Cohérence en lecture.

Important

Si vous effectuez une opération de lecture sur un élément qui n'existe pas, DynamoDB consommera toujours le débit de lecture comme indiqué ci-dessus.

Une unité de demande d'écriture équivaut à une écriture d'un élément d'une taille pouvant atteindre 1 Ko. Si vous avez besoin d'écrire un élément d'une taille supérieure à 1 Ko, DynamoDB doit consommer des unités de demande d'écriture supplémentaires. Les demandes d'écriture transactionnelles requièrent deux unités de demande d'écriture pour effectuer une écriture d'un élément d'une taille pouvant atteindre 1 Ko. Le nombre total d'unités requises de demande d'écriture dépend de la taille de l'élément. Par exemple, si la taille de votre élément est 2 ko, il vous faut 2 unités de demande d'écriture pour assurer une demande d'écriture ou 4 unités de demande d'écriture pour une demande d'écriture transactionnelle.

Pour obtenir des exemples de tarification détaillés et pour estimer les coûts à l'aide du calculateur de prix, consultez la page Tarification Amazon DynamoDB.

Trafic de pointe et propriétés de scalabilité

Les tables DynamoDB qui utilisent le mode de capacité à la demande s'adaptent automatiquement au volume de trafic de votre application. Le mode de capacité à la demande peut gérer jusqu'à deux fois le trafic de pointe précédent d'une table. Par exemple, si le trafic de votre application varie généralement entre 25 000 et 50 000 lectures cohérente forte par seconde, la précédente pointe de trafic s'élevant à 50 000 lectures par seconde, le mode de capacité à la demande s'adapte instantanément pour gérer un trafic de 100 000 lectures par seconde maximum. Si votre application présente un trafic de 100 000 lectures par seconde, ce pic devient votre nouvelle capacité de pointe précédente, permettant ainsi au trafic futur d'atteindre jusqu'à 200 000 lectures par seconde.

Si vous avez besoin de plus du double de votre trafic de pointe précédent sur une table, DynamoDB alloue automatiquement davantage de capacité à mesure que votre volume de trafic augmente, pour éviter que votre charge de travail souffre de restrictions. Cette restriction peut cependant se produire si vous dépassez le double de votre trafic de pointe précédent dans les 30 minutes. Par exemple, si le trafic de votre application varie généralement entre 25 000 et 50 000 lectures cohérente forte par seconde, la précédente pointe de trafic atteinte s'élevant à 50 000 lectures par seconde, DynamoDB recommande d'espacer la croissance de votre trafic pendant au moins 30 minutes avant de dépasser les 100 000 lectures par seconde.

Débit initial pour le mode de capacité à la demande

Si vous avez récemment activé le mode de capacité à la demande sur une table existante ou si vous avez créé une table en activant ce mode, la table possède les paramètres suivants de trafic de pointe précédent, même si la table n'a pas encore opéré de trafic en mode de capacité à la demande :

Vous trouverez ci-dessous des exemples de scénarios possibles.

  • Table provisionnée configurée avec 100 WCU et 100 RCU. Lorsque cette table passe à la demande pour la première fois, DynamoDB veille à ce qu'elle monte en puissance pour supporter instantanément au moins 4 000 unités d'écriture par seconde et 12 000 unités de lecture par seconde.

  • Table provisionnée configurée avec 8 000 WCU et 24 000 RCU. Lorsque cette table passe en mode à la demande, elle continue de pouvoir supporter au moins 8 000 unités d'écriture par seconde et 24 000 unités de lecture par seconde à tout moment.

  • Table provisionnée configurée avec 8 000 WCU et 24 000 RCU, consommant 6 000 unités d'écriture par seconde et 18 000 unités de lecture par seconde pendant une période prolongée. Lorsque cette table passe en mode à la demande, elle continue de pouvoir supporter au moins 8 000 unités d'écriture par seconde et 24 000 unités de lecture par seconde. Le trafic précédent peut également permettre à la table de maintenir des niveaux de trafic beaucoup plus élevés sans limitation.

  • Table précédemment provisionnée avec 10 000 WCU et 10 000 RCU, mais actuellement provisionnée avec 10 RCU et 10 WCU. Lorsque cette table passe en mode à la demande, elle peut supporter au moins 10 000 unités d'écriture par seconde et 10 000 unités de lecture par seconde.

Comportement des tables lors d'un changement de mode de capacité en lecture/écriture

Lorsque vous changez le mode d'une table pour passer d'une capacité allouée à une capacité à la demande, DynamoDB apporte plusieurs changements à la structure de la table et des partitions. Ce processus peut prendre plusieurs minutes. Pendant la période de basculement, votre table fournit un débit correspondant aux volumes d'unités de capacité en écriture et en lecture alloués antérieurement. Si vous passez du mode de capacité à la demande vers le mode de capacité allouée, votre table fournit un débit correspondant au trafic de pointe précédent atteint lorsque la table était en mode de capacité à la demande.

Préchauffer une table pour le mode de capacité à la demande

Avec le mode de capacité à la demande, les demandes peuvent atteindre le double du pic précédent sur la table. Notez qu'une limitation peut se produire si les demandes atteignent plus du double de la capacité par défaut ou du taux de demandes maximal précédemment atteint dans les 30 minutes. L'une des solutions consiste à préchauffer les tables jusqu'à la capacité maximale prévue du pic.

Pour préchauffer la table, procédez comme suit :

  1. Veillez à vérifier les limites de votre compte et à confirmer que vous pouvez atteindre la capacité souhaitée en mode provisionné.

  2. Si vous préchauffez une table qui existe déjà ou une nouvelle table en mode à la demande, lancez ce processus au moins 24 heures avant le pic prévu. Vous ne pouvez passer du mode à la demande au mode provisionné qu'une fois toutes les 24 heures.

  3. Pour préchauffer une table actuellement en mode à la demande, passez en mode provisionné et attendez que la table soit active. Passez ensuite à l'étape suivante.

    Si vous souhaitez préchauffer une nouvelle table qui est en mode provisionné ou qui est déjà en mode provisionné depuis 24 heures, vous pouvez passer à l'étape suivante sans attendre.

  4. Réglez le débit d'écriture de la table à la valeur maximale souhaitée et maintenez-le à ce niveau pendant plusieurs minutes. Ce volume de débit élevé vous coûte cher jusqu'à ce que vous reveniez au mode à la demande.

  5. Passez au mode de capacité à la demande. Cela devrait maintenir les valeurs de capacité de débit provisionnées.

Mode alloué

Si vous choisissez le mode alloué, vous spécifiez le nombre de lectures et d'écritures par seconde nécessaires pour votre application. Vous pouvez recourir à la scalabilité automatique pour ajuster automatiquement la capacité allouée de votre table en fonction de l'évolution du trafic. Cela vous aide à maîtriser l'utilisation de DynamoDB de manière à ne pas dépasser un taux de demandes défini et de maintenir ainsi la prévisibilité des coûts.

Le mode alloué est une bonne option si l'une des conditions suivantes est remplie :

  • Votre application présente un niveau de trafic prévisible.

  • Vous exécutez des applications dont le trafic est constant ou évolue progressivement.

  • Vous pouvez prévoir vos besoins de capacité pour contrôler les coûts.

Unités de capacité en lecture et unités de capacité en écriture

Pour les tables en mode alloué, vous spécifiez votre capacité de débit en termes d'unités de capacité en lecture (RCU) et d'unités de capacité en écriture (WCU) :

  • Une unité de capacité de lecture équivaut à une lecture fortement cohérente par seconde ou deux lectures éventuellement cohérentes par seconde pour un élément d'une taille pouvant atteindre 4 Ko. Les demandes de lecture transactionnelles nécessitent deux unités de capacité de lecture pour effectuer une lecture par seconde d'éléments d'une taille pouvant atteindre 4 Ko. Si vous avez besoin de lire un élément d'une taille supérieure à 4 Ko, DynamoDB doit utiliser des unités de capacité de lecture supplémentaires. Le nombre total d'unités requises de capacité en lecture dépend de la taille de l'élément et du fait que vous vouliez ou pas une lecture éventuellement cohérente ou une lecture cohérente forte. Par exemple, si la taille de votre élément est 8 ko, il vous faut 2 unités de capacité en lecture pour assurer une lecture cohérente forte par seconde, 1 unité de capacité de lecture si vous choisissez des lectures éventuellement cohérentes ou 4 unités de capacité de lecture pour une demande de lecture transactionnelle. Pour plus d’informations, consultez Consommation des unités de capacité pour les opérations de lecture.

    Note

    Pour en savoir plus sur les modèles de cohérence de lecture dans DynamoDB, consultez Cohérence en lecture.

  • Une unité de capacité d'écriture équivaut à une écriture par seconde pour un élément d'une taille pouvant atteindre 1 Ko. Si vous avez besoin d'écrire un élément d'une taille supérieure à 1 Ko, DynamoDB doit utiliser des unités de capacité d'écriture supplémentaires. Les demandes d'écriture transactionnelles nécessitent deux unités de capacité d'écriture pour effectuer une écriture par seconde pour un élément d'une taille pouvant atteindre 1 Ko. Le nombre total d'unités requises de capacité en écriture dépend de la taille de l'élément. Par exemple, si la taille de votre élément est 2 ko, il vous faut 2 unités de capacité en écriture pour assurer une demande d'écriture par seconde ou 4 unités de capacité en écriture pour une demande d'écriture transactionnelle. Pour plus d’informations, consultez Consommation des unités de capacité pour les opérations d'écriture.

Important

Lorsque vous appelez DescribeTable sur une table à la demande, les unités de capacité de lecture et d'écriture sont remises à 0.

Si votre application lit ou écrit des éléments de plus grande taille (jusqu'à la taille maximale d'élément de 400 Ko en vigueur dans DynamoDB), elle consomme plus d'unités de capacité.

Par exemple, supposons que vous créez une table allouée avec 6 unités de capacité en lecture et 6 unités de capacité en écriture. Avec ces paramètres, votre application pourrait effectuer les opérations suivantes :

  • Réaliser des lectures cohérentes fortes jusqu'à 24 Ko par seconde (4 Ko x 6 unités de capacité de lecture).

  • Réaliser des lectures éventuellement cohérentes pouvant atteindre 48 ko par seconde (débit de lecture doublé).

  • Réaliser des demandes de lecture transactionnelles pouvant atteindre 12 ko par seconde.

  • Ecrire jusqu'à 6 Ko par seconde (1 Ko x 6 unités de capacité d'écriture).

  • Réaliser des demandes d'écriture transactionnelles pouvant atteindre 3 ko par seconde.

Pour plus d’informations, consultez Gestion de paramètres sur des tables à capacité allouée DynamoDB.

Le Débit alloué est la quantité maximum de capacité qu'une application peut consommer à partir d'une table ou d'un index. Si votre application dépasse la capacité de débit allouée sur une table ou un index, elle sera soumise à une restriction des demandes.

La limitation empêche votre application de consommer trop d'unités de capacité. Dans le cas d'une limitation de demande, elle échoue avec un code HTTP 400 (Bad Request) et ProvisionedThroughputExceededException. Les AWS SDK sont dotés d'un support intégré pour réessayer les requêtes limitées (voirNouvelles tentatives après erreur et backoff exponentiel). Vous n'avez donc pas besoin d'écrire cette logique vous-même. Pour plus d'informations sur la résolution des problèmes de limitation, consultez Pourquoi ma table Amazon DynamoDB est-elle limitée ?

Vous pouvez utiliser le AWS Management Console pour surveiller votre débit provisionné et réel, et pour modifier vos paramètres de débit si nécessaire.

Pour obtenir des exemples de tarification détaillés et pour estimer les coûts à l'aide du calculateur de prix, consultez la page Tarification Amazon DynamoDB.

Mise à l'échelle automatique de DynamoDB

Le scalabilité automatique de DynamoDB gère activement la capacité de débit pour les tables et les secondaires globaux. Avec la scalabilité automatique, vous définissez une plage (limites supérieure et inférieure) pour les unités de capacité en lecture et en écriture. Vous définissez également un pourcentage d'utilisation cible dans cette plage. DynamoDB vise à maintenir votre utilisation cible, même lorsque la charge de travail de votre application augmente ou diminue.

Avec la scalabilité automatique de DynamoDB, une table ou un index secondaire global peut augmenter sa capacité de lecture et d'écriture approvisionnée de manière à gérer une augmentation soudaine du trafic, sans limitation de demande. Lorsque la charge de travail diminue, la scalabilité automatique de DynamoDB peut réduire le débit de sorte que vous ne payez pas pour une capacité approvisionnée non utilisée.

Note

Si vous utilisez le AWS Management Console pour créer une table ou un index secondaire global, le dimensionnement automatique de DynamoDB est activé par défaut.

Vous pouvez gérer les paramètres de mise à l'échelle automatique à tout moment à l'aide de la console AWS CLI, du ou de l'un des AWS SDK.

Pour plus d’informations, consultez Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.

Capacités réservées

En tant que client de DynamoDB, vous pouvez acheter une capacité réservée à l'avance pour les tables qui utilisent la classe de tables DynamoDB Standard, comme décrit dans Tarification Amazon DynamoDB. Avec une capacité réservée, vous payez une fois un droit initial et vous vous engagez à un niveau d'utilisation alloué minimal sur une période donnée. Votre capacité réservée est facturée au tarif horaire de capacité réservée. En réservant à l'avance vos unités de capacité en lecture et à l'écriture, vous réalisez des économies importantes sur vos coûts de capacité allouée. Toute capacité que vous allouez au-delà de votre capacité réservée est facturée selon les frais de capacité allouée standard.

Les remises de capacité réservées sont d'abord appliquées au compte qui a acheté la capacité réservée. Toute réduction sur les capacités réservées non utilisées est ensuite appliquée aux autres comptes de la même AWS organisation que le compte d'achat. Vous pouvez désactiver le partage de remises sur instances réservées sur la page Preferences (Préférences) de la console de gestion de la facturation et des coûts. Pour plus d'informations, consultez Désactivation du partage des remises de Savings Plans et sur instances réservées.

Note

Il n'y a pas de capacité réservée disponible pour les unités de capacité d'écriture répliquée. La capacité réservée s'applique uniquement à la région dans laquelle elle a été achetée. La capacité réservée n'est pas non plus disponible pour les tables utilisant la classe de tables DynamoDB Standard-IA ou le mode de capacité à la demande.

Pour gérer la capacité réservée, accédez à la console DynamoDB, puis choisissez Capacité réservée.

Note

Vous pouvez empêcher les utilisateurs d'afficher ou d'acheter une capacité réservée, tout en leur permettant d'accéder au reste de la console. Pour plus d'informations, consultez « Octroi des autorisations pour empêcher l'achat d'offres de capacité réservée » dans Gestion des identités et des accès pour Amazon DynamoDB.

Pour plus d'informations sur la tarification spécifique, consultez Tarification Amazon DynamoDB.