Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB - 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.

Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB

De nombreuses charges de travail de base de données sont cycliques par nature, tandis que d’autres sont difficiles à prévoir. Prenons l'exemple d'une application de réseau social où la plupart des utilisateurs sont actifs pendant la journée. La base de données doit être capable de gérer l'activité durant cette période, mais elle n'a pas besoin des mêmes niveaux de débit pendant la nuit. Prenons également l'exemple d'une nouvelle application de jeux pour appareils mobiles qui, contre toute attente, est rapidement adoptée par les utilisateurs. Si le jeu devient trop populaire, les ressources de base de données disponibles risquent d'être dépassées, entraînant un ralentissement des performances et le mécontentement des clients. Ce type de charges de travail nécessite souvent une intervention manuelle pour augmenter ou diminuer les ressources de base de données en fonction de la variation des niveaux d'utilisation.

Amazon DynamoDB Auto Scaling AWS utilise le service Application Auto Scaling pour ajuster dynamiquement la capacité de débit allouée en votre nom, en réponse aux modèles de trafic réels. Cela permet à une table ou à un index secondaire global (GSI) d'augmenter sa capacité de lecture et d'écriture allouée afin de gérer les augmentations soudaines du trafic, sans limitation. Lorsque la charge de travail diminue, la scalabilité automatique d'application réduit 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 modifier vos paramètres de scalabilité automatique à tout moment. Pour plus d’informations, consultez Utilisation de la mise AWS Management Console à l'échelle automatique avec DynamoDB.

Lorsque vous supprimez une table ou une réplique de table globale, les cibles évolutives, les politiques de dimensionnement ou les CloudWatch alarmes associées ne sont pas automatiquement supprimées avec elle.

Avec la scalabilité automatique d'application, vous créez une politique de mise à l'échelle pour une table ou un index secondaire global. La politique de mise à l'échelle spécifie si vous souhaitez mettre à l'échelle la capacité de lecture ou d'écriture (ou les deux), ainsi que les paramètres d'unité de capacité approvisionnée minimum et maximum pour la table ou l'index.

La politique de mise à l'échelle contient également une utilisation cible, c'est-à-dire le pourcentage du débit approvisionné consommé à un moment donné. La scalabilité automatique d'application utilise un algorithme de suivi de cible pour ajuster le débit approvisionné de la table (ou de l'index) en réponse aux charges de travail réelles, de façon que l'utilisation de capacité réelle reste au niveau ou à un niveau proche de votre utilisation cible.

DynamoDB produit le débit provisionné consommé pendant des périodes d'une minute. La mise à l'échelle automatique se déclenche lorsque la capacité consommée dépasse l'utilisation cible configurée pendant deux minutes consécutives. CloudWatch les alarmes peuvent avoir un court délai de quelques minutes avant de déclencher le redimensionnement automatique. Ce délai garantit une évaluation CloudWatch précise des mesures. Si les pics de débit consommés sont espacés de plus d'une minute, le dimensionnement automatique risque de ne pas se déclencher. De même, un événement de réduction peut se produire lorsque 15 points de données consécutifs sont inférieurs à l'utilisation cible. Dans les deux cas, après le déclenchement de l'autoscaling, l'UpdateTableAPI est invoquée. Plusieurs minutes sont ensuite nécessaires pour mettre à jour la capacité allouée à la table ou à l'index. Pendant cette période, toutes les demandes qui dépassent la capacité précédemment allouée aux tables sont limitées.

Important

Vous ne pouvez pas ajuster le nombre de points de données à violer pour déclencher l'alarme sous-jacente (bien que le nombre actuel puisse changer à l'avenir).

Vous pouvez également définir les valeurs d'utilisation cibles de la scalabilité automatique entre 20 % et 90 % pour votre capacité de lecture et d'écriture.

Note

Outre les tables, la scalabilité automatique de DynamoDB prend également en charge les index secondaires globaux. Chaque index secondaire global a sa propre capacité de débit approvisionné, distincte de celle de sa table de base. Lorsque vous créez une politique de mise à l'échelle pour un index secondaire global, la scalabilité automatique d'application ajuste les paramètres de débit approvisionné pour l'index afin de s'assurer que l'utilisation réelle reste au niveau ou à une niveau proche du ratio d'utilisation souhaité.

Comment fonctionne la scalabilité automatique de DynamoDB

Note

Pour commencer rapidement à utiliser la scalabilité automatique de DynamoDB, consultez Utilisation de la mise AWS Management Console à l'échelle automatique avec DynamoDB.

Le diagramme suivant fournit une présentation de haut niveau de la manière dont la scalabilité automatique de DynamoDB gère la capacité de débit pour une table.

Le dimensionnement automatique DynamoDB ajuste la capacité de débit d'une table pour répondre à la demande.

Les étapes suivantes résument le processus de scalabilité automatique illustré dans le diagramme précédent :

  1. Vous créez une politique de scalabilité automatique d'application pour votre table DynamoDB.

  2. DynamoDB publie des statistiques de capacité consommée sur Amazon. CloudWatch

  3. Si la capacité consommée de la table dépasse votre objectif d'utilisation (ou tombe en dessous de l'objectif) pendant un certain temps, Amazon CloudWatch déclenche une alarme. Vous pouvez voir l'alarme sur la console et recevoir des notifications via Amazon Simple Notification Service (Amazon SNS).

  4. L' CloudWatch alarme appelle Application Auto Scaling pour évaluer votre politique de dimensionnement.

  5. La scalabilité automatique d'application émet une demande UpdateTable pour ajuster le débit approvisionné de votre table.

  6. DynamoDB traite la demande UpdateTable en augmentant (ou réduisant) de manière dynamique la capacité de débit approvisionné de la table de façon que celle-ci se rapproche de votre utilisation cible.

Pour comprendre la manière dont fonctionne la scalabilité automatique de DynamoDB, supposons que vous ayez une table nommée ProductCatalog. Cette table est chargée en masse de manière occasionnelle, elle n'entraîne donc pas une importante activité en écriture. Toutefois, elle ne connaît pas une activité en lecture très élevée, qui varie avec le temps. En surveillant les CloudWatch métriques Amazon pourProductCatalog, vous déterminez que la table nécessite 1 200 unités de capacité de lecture (pour éviter que DynamoDB ne limite les demandes de lecture lorsque l'activité est maximale). Vous déterminez également que ProductCatalog requiert au minimum 150 unités de capacité de lecture lorsque le trafic de lecture est à son point le plus bas. Pour plus d'informations sur la prévention de la limitation, consultez Problèmes de régulation pour DynamoDB.

Dans la plage de 150 à 1 200 unités de capacité de lecture, vous décidez qu'une utilisation cible de 70 % conviendrait pour la table ProductCatalog. L'utilisation cible correspond au ratio des unités de capacité consommées par rapport aux unités de capacité approvisionnées, exprimé sous forme de pourcentage. La scalabilité automatique d'application utilise son algorithme de suivi de cible pour s'assurer que la capacité de lecture approvisionnée de ProductCatalog est correctement ajustée, de sorte que l'utilisation demeure proche de 70 %.

Note

La scalabilité automatique de DynamoDB modifie les paramètres de débit approvisionné uniquement lorsque la charge de travail réelle reste élevée ou basse pendant une période continue de plusieurs minutes. L'algorithme de suivi de cible de la scalabilité automatique d'application cherche à maintenir l'utilisation cible au niveau ou à un niveau proche de la valeur choisie sur le long terme.

Les pics soudains de l'activité de lecture sont gérés par la capacité de transmission en mode rafale intégrée de la table. Pour plus d’informations, consultez Capacité de débordement.

Pour activer la scalabilité automatique de DynamoDB pour la table ProductCatalog, vous devez créer une politique de mise à l'échelle. La politique spécifie les éléments suivants :

  • Table ou index secondaire global que vous voulez gérer

  • Le type de capacité à gérer (lecture ou écriture)

  • Les limites supérieure et inférieure pour les paramètres du débit provisionné.

  • Votre utilisation cible

Lorsque vous créez une politique de dimensionnement, Application Auto Scaling crée une paire d' CloudWatch alarmes Amazon en votre nom. Chaque paire représente les limites supérieure et inférieure pour vos paramètres de débit provisionné. Ces CloudWatch alarmes sont déclenchées lorsque l'utilisation réelle de la table s'écarte de votre utilisation cible pendant une période prolongée.

Lorsque l'une des CloudWatch alarmes est déclenchée, Amazon SNS vous envoie une notification (si vous l'avez activée). L' CloudWatch alarme appelle ensuite Application Auto Scaling, qui à son tour indique à DynamoDB d'ajuster la capacité allouée à la ProductCatalog table à la hausse ou à la baisse, selon le cas.

Lors d'un événement de dimensionnement, AWS Config est facturé par élément de configuration enregistré. Lorsqu'un événement de dimensionnement se produit, quatre CloudWatch alarmes sont créées pour chaque événement d'auto-scaling en lecture et en écriture : ProvisionedCapacity alarmes : ProvisionedCapacityLow, ProvisionedCapacityHigh et ConsumedCapacity alarmes : AlarmHigh,. AlarmLow Cela se traduit par un total de huit alarmes. Par conséquent, AWS Config enregistre huit éléments de configuration pour chaque événement de dimensionnement.

Note

Vous pouvez également planifier le dimensionnement de DynamoDB de manière à ce qu'il se produise à certains moments. Découvrez les étapes de base ici.

Notes d’utilisation

Avant de commencer à utiliser la scalabilité automatique de DynamoDB, vous devez être conscient de ce qui suit :

  • La scalabilité automatique de DynamoDB peut augmenter la capacité de lecture ou d'écriture aussi souvent que nécessaire, selon votre politique de scalabilité automatique. Tous les quotas DynamoDB restent en vigueur, comme décrit dans Quotas de service, de compte et de table dans Amazon DynamoDB.

  • La scalabilité automatique de DynamoDB ne vous empêche pas de modifier manuellement les paramètres de débit approvisionné. Ces réglages manuels n'ont aucune incidence sur les CloudWatch alarmes existantes liées au dimensionnement automatique de DynamoDB.

  • Si vous activez la scalabilité automatique de DynamoDB pour une table contenant un ou plusieurs index secondaires globaux, nous vous recommandons vivement d'appliquer également la scalabilité automatique de manière uniforme à ces index. Cela permettra de garantir de meilleures performances pour les écritures et les lectures de table et d'éviter les limitations. Vous pouvez activer la mise à l'échelle automatique en sélectionnant Apply same settings to global secondary indexes (Appliquer les mêmes paramètres aux index secondaires globaux) dans la AWS Management Console. Pour plus d’informations, consultez Activation de la scalabilité automatique de DynamoDB sur des tables existantes.

  • Lorsque vous supprimez une table ou une réplique de table globale, les cibles évolutives, les politiques de dimensionnement ou les CloudWatch alarmes associées ne sont pas automatiquement supprimées avec celle-ci.

  • Lors de la création d'un index secondaire global pour une table existante, la scalabilité automatique n'est pas activée pour l'index secondaire global. Vous devrez gérer manuellement la capacité pendant la construction de l'index secondaire global. Une fois que le remplissage de l'index secondaire global est terminé et qu'il a atteint le statut actif, la mise à l'échelle automatique fonctionne normalement.