Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Évaluez les paramètres Application Auto Scaling de votre table

Mode de mise au point
Évaluez les paramètres Application Auto Scaling de votre table - Amazon Keyspaces (pour Apache Cassandra)

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.

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.

Cette section explique comment évaluer les paramètres Application Auto Scaling de vos tables Amazon Keyspaces. Amazon Keyspaces Application Auto Scaling est une fonctionnalité qui gère le débit des tables en fonction du trafic de votre application et de votre indicateur d'utilisation cible. Cela garantit que vos tables disposent de la capacité requise pour vos modèles d'application.

Le service Application Auto Scaling surveille l'utilisation actuelle de votre table et la compare à la valeur d'utilisation cible :TargetValue. Il vous indique s'il est temps d'augmenter ou de diminuer la capacité allouée.

Comprendre les paramètres de votre Application Auto Scaling

Pour définir la valeur correcte correspondant à l'utilisation cible, ainsi que l'étape initiale et les valeurs finales, vous devez faire appel à l'équipe des opérations. Cela vous permet de définir correctement les valeurs en fonction de l'utilisation historique de l'application, qui est utilisée pour déclencher les politiques Application Auto Scaling. L'objectif d'utilisation est le pourcentage de votre capacité totale qui doit être atteint pendant un certain temps avant que les règles d'Application Auto Scaling ne s'appliquent.

Lorsque vous définissez un objectif d'utilisation élevé (un objectif d'environ 90 %), cela signifie que votre trafic doit être supérieur à 90 % pendant un certain temps avant que l'Application Auto Scaling ne soit activée. Il est préférable de ne pas utiliser une cible d'utilisation élevée, sauf si votre application est très constante et ne fait l'objet d'aucun pic de trafic.

Lorsque vous définissez un taux d'utilisation très faible (un objectif inférieur à 50 %), cela signifie que votre application doit atteindre 50 % de la capacité allouée avant de déclencher une politique Application Auto Scaling. À moins que le trafic de vos applications n'augmente à un rythme très soutenu, cela se traduit généralement par une capacité inutilisée et un gaspillage de ressources.

Comment identifier les tables présentant une faible cible d'utilisation (<= 50 %)

Vous pouvez utiliser le AWS CLI ou AWS Management Console pour surveiller et identifier les TargetValues politiques de votre Application Auto Scaling dans vos ressources Amazon Keyspaces.

Note

Lorsque vous utilisez des tables multirégionales en mode capacité allouée avec le dimensionnement automatique d'Amazon Keyspaces, veillez à utiliser les opérations de l'API Amazon Keyspaces pour configurer le dimensionnement automatique. Les opérations d'API Application Auto Scaling sous-jacentes qu'Amazon Keyspaces appelle en votre nom ne disposent pas de fonctionnalités multirégionales. Pour de plus amples informations, veuillez consulter Afficher les paramètres de capacité allouée et de dimensionnement automatique pour une table multirégionale dans Amazon Keyspaces.

AWS CLI
  1. Pour afficher la liste complète des ressources, exécutez la commande suivante :

    aws application-autoscaling describe-scaling-policies --service-namespace cassandra

    Cette commande renverra la liste complète des politiques Application Auto Scaling émises pour toutes les ressources Amazon Keyspaces. Pour récupérer uniquement les ressources d'une table particulière, vous pouvez ajouter le –resource-id parameter. Par exemple :

    aws application-autoscaling describe-scaling-policies --service-namespace cassandra --resource-id "keyspace/keyspace-name/table/table-name
  2. Renvoie uniquement les politiques de dimensionnement automatique pour une table particulière en exécutant la commande suivante

    aws application-autoscaling describe-scaling-policies --service-namespace cassandra --resource-id "keyspace/keyspace-name/table/table-name

    Les valeurs des politiques Application Auto Scaling sont mises en évidence ci-dessous. Vous devez vous assurer que la valeur cible est supérieure à 50 % pour éviter le surprovisionnement. Le résultat doit ressembler à ce qui suit :

    { "ScalingPolicies": [ { "PolicyARN": "arn:aws:autoscaling:<region>:<account-id>:scalingPolicy:<uuid>:resource/keyspaces/table/table-name-scaling-policy", "PolicyName": $<full-gsi-name>”, "ServiceNamespace": "cassandra", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra:index:WriteCapacityUnits", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "KeyspacesWriteCapacityUtilization" } }, "Alarms": [ ... ], "CreationTime": "2022-03-04T16:23:48.641000+10:00" }, { "PolicyARN": "arn:aws:autoscaling:<region>:<account-id>:scalingPolicy:<uuid>:resource/keyspaces/table/table-name/index/<index-name>:policyName/$<full-gsi-name>-scaling-policy", "PolicyName":$<full-table-name>”, "ServiceNamespace": "cassandra", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra:index:ReadCapacityUnits", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "CassandraReadCapacityUtilization" } }, "Alarms": [ ... ], "CreationTime": "2022-03-04T16:23:47.820000+10:00" } ] }
AWS Management Console
  1. Connectez-vous au AWS Management Console et accédez à la page de CloudWatch service sur Getting Started with the AWS Management Console. Sélectionnez la solution appropriée Région AWS si nécessaire.

  2. Dans le volet de navigation, sélectionnez Tables. Sur la page Tables, sélectionnez le nom de la table.

  3. Sur la page Détails de la table de l'onglet Capacity, passez en revue les paramètres Application Auto Scaling de votre table.

  1. Pour afficher la liste complète des ressources, exécutez la commande suivante :

    aws application-autoscaling describe-scaling-policies --service-namespace cassandra

    Cette commande renverra la liste complète des politiques Application Auto Scaling émises pour toutes les ressources Amazon Keyspaces. Pour récupérer uniquement les ressources d'une table particulière, vous pouvez ajouter le –resource-id parameter. Par exemple :

    aws application-autoscaling describe-scaling-policies --service-namespace cassandra --resource-id "keyspace/keyspace-name/table/table-name
  2. Renvoie uniquement les politiques de dimensionnement automatique pour une table particulière en exécutant la commande suivante

    aws application-autoscaling describe-scaling-policies --service-namespace cassandra --resource-id "keyspace/keyspace-name/table/table-name

    Les valeurs des politiques Application Auto Scaling sont mises en évidence ci-dessous. Vous devez vous assurer que la valeur cible est supérieure à 50 % pour éviter le surprovisionnement. Le résultat doit ressembler à ce qui suit :

    { "ScalingPolicies": [ { "PolicyARN": "arn:aws:autoscaling:<region>:<account-id>:scalingPolicy:<uuid>:resource/keyspaces/table/table-name-scaling-policy", "PolicyName": $<full-gsi-name>”, "ServiceNamespace": "cassandra", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra:index:WriteCapacityUnits", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "KeyspacesWriteCapacityUtilization" } }, "Alarms": [ ... ], "CreationTime": "2022-03-04T16:23:48.641000+10:00" }, { "PolicyARN": "arn:aws:autoscaling:<region>:<account-id>:scalingPolicy:<uuid>:resource/keyspaces/table/table-name/index/<index-name>:policyName/$<full-gsi-name>-scaling-policy", "PolicyName":$<full-table-name>”, "ServiceNamespace": "cassandra", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra:index:ReadCapacityUnits", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "CassandraReadCapacityUtilization" } }, "Alarms": [ ... ], "CreationTime": "2022-03-04T16:23:47.820000+10:00" } ] }

Si vos valeurs d'utilisation cibles sont inférieures ou égales à 50 %, explorez les métriques d'utilisation de vos tables pour déterminer si elles sont sous-provisionnées ou surprovisionnées.

Comment gérer les charges de travail liées aux variations saisonnières

Envisagez le scénario suivant : votre application fonctionne en dessous d'une valeur moyenne minimale la plupart du temps, mais la cible d'utilisation est faible. Votre application peut donc réagir rapidement aux événements qui se produisent à certaines heures de la journée et vous disposez d'une capacité suffisante pour éviter les ralentissements. Ce scénario est courant avec les applications qui sont très actives pendant les heures normales de bureau (de 9 h à 17 h), mais qui fonctionnent ensuite à un niveau de base en dehors de cette plage horaire. Étant donné que certains utilisateurs commencent à se connecter avant 9 heures du matin, l'application utilise ce seuil bas pour augmenter rapidement afin d'atteindre la capacité requise aux heures de pointe.

Ce scénario peut se présenter comme suit :

  • Entre 17 h et 9 h, les unités ConsumedWriteCapacityUnits restent entre 90 et 100.

  • Les utilisateurs commencent à se connecter à l'application avant 9 heures du matin et les unités de capacité augmentent considérablement (la valeur maximale que vous avez vue est de 1 500 WCU).

  • En moyenne, l'utilisation de vos applications varie entre 800 et 1 200 pendant les heures de travail.

Si le scénario précédent s'applique à votre application, envisagez d'utiliser le dimensionnement automatique des applications planifié, dans lequel une règle Application Auto Scaling peut toujours être configurée sur votre table, mais avec une utilisation cible moins agressive qui ne fournit la capacité supplémentaire qu'aux intervalles spécifiques dont vous avez besoin.

Vous pouvez utiliser le AWS CLI pour exécuter les étapes suivantes afin de créer une règle de dimensionnement automatique planifiée qui s'exécute en fonction de l'heure du jour et du jour de la semaine.

  1. Enregistrez votre table Amazon Keyspaces en tant que cible évolutive avec. Application Auto Scaling Une cible pouvant être mise à l'échelle avec est une ressource dont Application Auto Scaling peut augmenter ou réduire la capacité.

    aws application-autoscaling register-scalable-target \ --service-namespace cassandra \ --scalable-dimension cassandra:table:WriteCapacityUnits \ --resource-id keyspace/keyspace-name/table/table-name \ --min-capacity 90 \ --max-capacity 1500
  2. Configurez les actions planifiées en fonction de vos besoins.

    Vous avez besoin de deux règles pour couvrir le scénario : l'une pour augmenter la taille et l'autre pour la réduire. La première règle permettant d'étendre l'action planifiée est illustrée dans l'exemple suivant.

    aws application-autoscaling put-scheduled-action \ --service-namespace cassandra \ --scalable-dimension cassandra:table:WriteCapacityUnits \ --resource-id keyspace/keyspace-name/table/table-name \ --scheduled-action-name my-8-5-scheduled-action \ --scalable-target-action MinCapacity=800,MaxCapacity=1500 \ --schedule "cron(45 8 ? * MON-FRI *)" \ --timezone "Australia/Brisbane"

    La deuxième règle permettant de réduire l'action planifiée est illustrée dans cet exemple.

    aws application-autoscaling put-scheduled-action \ --service-namespace cassandra \ --scalable-dimension cassandra:table:WriteCapacityUnits \ --resource-id keyspace/keyspace-name/table/table-name \ --scheduled-action-name my-5-8-scheduled-down-action \ --scalable-target-action MinCapacity=90,MaxCapacity=1500 \ --schedule "cron(15 17 ? * MON-FRI *)" \ --timezone "Australia/Brisbane"
  3. Exécutez la commande suivante pour confirmer que les deux règles ont été activées :

    aws application-autoscaling describe-scheduled-actions --service-namespace cassandra

    Vous devriez obtenir le résultat suivant :

    { "ScheduledActions": [ { "ScheduledActionName": "my-5-8-scheduled-down-action", "ScheduledActionARN": "arn:aws:autoscaling:<region>:<account>:scheduledAction:<uuid>:resource/keyspaces/table/table-name:scheduledActionName/my-5-8-scheduled-down-action", "ServiceNamespace": "cassandra", "Schedule": "cron(15 17 ? * MON-FRI *)", "Timezone": "Australia/Brisbane", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra:table:WriteCapacityUnits", "ScalableTargetAction": { "MinCapacity": 90, "MaxCapacity": 1500 }, "CreationTime": "2022-03-15T17:30:25.100000+10:00" }, { "ScheduledActionName": "my-8-5-scheduled-action", "ScheduledActionARN": "arn:aws:autoscaling:<region>:<account>:scheduledAction:<uuid>:resource/keyspaces/table/table-name:scheduledActionName/my-8-5-scheduled-action", "ServiceNamespace": "cassandra", "Schedule": "cron(45 8 ? * MON-FRI *)", "Timezone": "Australia/Brisbane", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra:table:WriteCapacityUnits", "ScalableTargetAction": { "MinCapacity": 800, "MaxCapacity": 1500 }, "CreationTime": "2022-03-15T17:28:57.816000+10:00" } ] }

L'image suivante montre un exemple de charge de travail qui maintient en permanence une cible d'utilisation de 70 %. Remarquez que les règles de dimensionnement automatique s'appliquent toujours et que le débit ne diminue pas.

Graphique qui montre l'utilisation de l'écriture en unités par seconde en comparant la capacité allouée à la capacité consommée sur une période d'une journée.

En zoomant, nous pouvons constater qu'un pic dans l'application a déclenché le seuil de 70 %, forçant ainsi la mise à l'échelle automatique à démarrer et à fournir la capacité supplémentaire requise pour la table. L'action de mise à l'échelle automatique planifiée affectera les valeurs maximales et minimales, et il est de votre responsabilité de les configurer.

Vue plus détaillée du graphique qui montre l'utilisation de l'écriture en unités par seconde, en comparant la capacité allouée à la capacité consommée, en zoomant sur un moment précis.
Affichage de la vue détaillée du graphique qui montre l'utilisation de l'écriture en unités par seconde en comparant la capacité allouée à la capacité consommée sur une période d'une journée.

Comment gérer les pics de charge de travail imprévisibles

Dans ce scénario, l'application utilise un objectif d'utilisation très faible, car vous ne connaissez pas encore les modèles d'application et vous voulez vous assurer que votre charge de travail ne rencontre pas d'erreurs de débit liées à une faible capacité.

Vous pouvez ici envisager d'utiliser le mode de capacité à la demande. Les tables à la demande sont idéales pour les charges de travail exigeantes pour lesquelles vous ne connaissez pas les tendances de trafic. Avec le mode de capacité à la demande, vous payez à la demande les lectures et écritures de données que votre application effectue sur vos tables. Vous n'avez pas besoin de spécifier le débit de lecture et d'écriture que vous souhaitez que votre application atteigne, car Amazon Keyspaces s'adapte instantanément à vos charges de travail à mesure qu'elles augmentent ou diminuent.

Comment gérer les charges de travail avec des applications liées

Dans ce scénario, l'application dépend d'autres systèmes, tels que les scénarios de traitement par lots dans lesquels vous pouvez avoir de forts pics de trafic en fonction des événements dans la logique de l'application.

Envisagez de développer une logique d'auto-scaling des applications personnalisée qui réagit aux événements susceptibles d'augmenter la capacité des tables et TargetValues en fonction de vos besoins spécifiques. Vous pourriez bénéficier Amazon EventBridge et utiliser une combinaison de AWS services tels que λ et Step Functions pour répondre aux besoins spécifiques de votre application.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.