Mode de capacité provisionnée DynamoDB - Amazon DynamoDB

Mode de capacité provisionnée DynamoDB

Lorsque vous créez une table approvisionnée dans DynamoDB, vous devez spécifier sa capacité de débit provisionné. Il s’agit du volume de débit de lecture et d’écriture que la table peut prendre en charge. Vous serez facturé en fonction de la capacité horaire de lecture et d’écriture que vous avez provisionnée, et non de la quantité de cette capacité provisionnée que vous avez réellement consommée.

À mesure que les exigences de données et d’accès de votre application changent, vous pouvez avoir besoin d’ajuster les paramètres de débit de votre table. Vous pouvez recourir à la scalabilité automatique pour ajuster automatiquement la capacité allouée de votre table en fonction de l’évolution du trafic. L’autoscaling de DynamoDB utilise une politique de mise à l’échelle dans Application Auto Scaling. Pour configurer l’autoscaling dans DynamoDB, définissez les niveaux minimum et maximum de capacité de lecture et d’écriture en plus du pourcentage d’utilisation cible. Application Auto Scaling crée et gère les alarmes CloudWatch qui déclenchent des événements de mise à l’échelle lorsque la métrique s’écarte de la cible. L’autoscaling surveille l’activité de votre table et ajuste ses paramètres de capacité à la hausse ou à la baisse en fonction de seuils préconfigurés. L’autoscaling se déclenche lorsque la capacité consommée dépasse l’utilisation cible configurée pendant deux minutes consécutives. Les alarmes CloudWatch peuvent présenter un court délai, allant jusqu’à quelques minutes, avant de déclencher l’autoscaling. Pour en savoir plus, consultez Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.

Si vous utilisez la scalabilité automatique de DynamoDB, les paramètres de débit sont automatiquement ajustés en fonction des charges de travail réelles. Vous pouvez aussi utiliser l’opération UpdateTable pour ajuster manuellement la capacité de débit de votre table. Par exemple, vous pouvez décider de procéder de la sorte si vous devez charger en masse des données à partir d’un magasin de données existant dans votre nouvelle table DynamoDB. Vous pouvez créer la table avec un paramètre de débit en écriture élevé, puis diminuer ce paramètre une fois que le chargement en masse des données est terminé.

Note

Par défaut, DynamoDB vous protège contre toute utilisation involontaire et incontrôlée. Pour effectuer une mise à l’échelle au-delà des limites de débit de lecture et d’écriture de 40 000 au niveau des tables, pour toutes les tables de votre compte, vous pouvez demander une augmentation de ce quota. Les demandes de débit qui dépassent le quota de débit de la table par défaut sont limitées. Pour en savoir plus, consultez Quotas de débit par défaut.

Vous pouvez faire passer les tables du mode de capacité provisionnée au mode à la demande jusqu’à quatre fois par période de 24 heures. Vous pouvez à tout moment faire passer des tables du mode à la demande au mode de capacité provisionnée.

Pour plus d’informations sur le basculement entre les modes de capacité de lecture et d’écriture, consultez Considérations relatives au changement de mode de capacité dans DynamoDB.

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

Pour les tables du mode provisionné, vous spécifiez les exigences de débit en matière d’unités de capacité. Ces unités représentent la quantité de données que votre application doit lire ou écrire par seconde. Si nécessaire, vous pouvez modifier ces paramètres ultérieurement, ou activer la scalabilité automatique de DynamoDB.

Pour un élément dont la taille peut atteindre 4 Ko, une unité de capacité en lecture équivaut à une opération de lecture fortement cohérente par seconde, ou à deux opérations de lecture cohérente à terme par seconde. Pour plus d’informations sur les modèles de cohérence de lecture dans DynamoDB, consultez Cohérence en lecture DynamoDB.

Une unité de capacité d’écriture équivaut à une écriture par seconde pour un élément d’une taille pouvant atteindre 1 Ko. Pour plus d’informations sur les différentes opérations d’écriture et de lecture, consultez Opérations de lecture et d’écriture DynamoDB.

Choix des paramètres de débit initial

Chaque application a des exigences spécifiques pour la lecture et l’écriture dans une base de données. Lorsque vous déterminez les paramètres de débit initial pour une table DynamoDB, prenez en considération les points suivants :

  • Taux de demandes de lecture et d’écriture attendus : vous devez estimer le nombre de lectures et d’écritures que vous devez effectuer par seconde.

  • Taille des éléments : certains éléments sont d’une taille suffisamment petite pour être lus ou écrits par une seule unité de capacité. Les éléments plus volumineux exigent plusieurs unités de capacité. En évaluant la taille moyenne des éléments qui figureront dans votre table, vous pouvez spécifier les paramètres de débit provisionné qui conviennent pour votre table.

  • Exigences en matière de cohérence des lectures : les unités de capacité de lecture sont basées sur des opérations de lecture fortement cohérentes et utilisent deux fois plus de ressources de base de données que les lectures cohérentes à terme. Vous devez déterminer si votre application requière des lectures cohérentes fortes, ou si elle peut assouplir cette exigence et exécuter des lectures éventuellement cohérentes à la place. Par défaut, les opérations de lecture dans DynamoDB sont cohérentes à terme. Si nécessaire, vous pouvez demander des lectures fortement cohérentes pour ces opérations.

Par exemple, imaginons que vous vouliez lire 80 éléments d’une table par seconde. Ces éléments ont une taille de 3 Ko et vous voulez des lectures fortement cohérentes. Dans ce cas, chaque lecture nécessite une unité de capacité de lecture provisionnée. Pour déterminer ce nombre, divisez la taille d’élément de l’opération par 4 Ko. Puis, arrondissez au nombre entier le plus proche, comme indiqué dans l’exemple suivant :

  • 3 Ko / 4 Ko = 0,75, ou 1 unité de capacité de lecture

Par conséquent, pour lire 80 éléments par seconde à partir d’une table, définissez le débit de lecture provisionné de la table sur 80 unités de capacité de lecture, comme indiqué dans l’exemple suivant :

  • 1 unité de capacité de lecture par élément x 80 lectures par seconde = 80 unités de capacité de lecture

Supposons à présent que vous vouliez écrire 100 éléments par seconde sur votre table et que chaque élément ait une taille de 512 octets. Dans ce cas, chaque écriture nécessite une unité de capacité d’écriture provisionnée. Pour déterminer ce nombre, divisez la taille d’élément de l’opération par 1 Ko. Puis, arrondissez au nombre entier le plus proche, comme indiqué dans l’exemple suivant :

  • 512 octets/1 Ko = 0,5 ou 1 unité de capacité d’écriture

Pour écrire 100 éléments par seconde dans votre table, définissez le débit d’écriture provisionné de la table sur 100 unités de capacité d’écriture :

  • 1 unité de capacité d’écriture par élément x 100 écritures par seconde = 100 unités de capacité d’écriture

Mise à l’échelle automatique de DynamoDB

L’autoscaling de DynamoDB gère activement la capacité de débit pour les tables et les index 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 l’AWS Management Console pour créer une table ou un index secondaire global, la scalabilité automatique de DynamoDB est activée par défaut.

Vous pouvez gérer les paramètres de scalabilité automatique à tout moment en utilisant la console, l’AWS CLI ou l’un des kits SDK AWS. Pour en savoir plus, consultez Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.

Taux d’utilisation

Le taux d’utilisation peut vous aider à déterminer si vous surchargez la capacité de provisionnement. Dans ce cas, vous devez réduire la capacité de votre table pour réduire les coûts. À l’inverse, cela peut également vous aider à déterminer si votre capacité de provisionnement est insuffisante. Dans ce cas, vous devez augmenter la capacité de la table pour éviter toute limitation potentielle des demandes lors d’instances imprévues à trafic élevé. Pour plus d’informations, consultez Amazon DynamoDB auto scaling: Performance and cost optimization at any scale.

Si vous utilisez l’autoscaling DynamoDB, vous devez également définir un pourcentage d’utilisation cible. L’autoscaling utilisera ce pourcentage comme cible pour ajuster la capacité à la hausse ou à la baisse. Nous recommandons de définir l’objectif d’utilisation sur 70 %. Pour en savoir plus, consultez Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.