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.
Évaluez les paramètres de mise à l'échelle automatique des applications de votre tableau
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 métrique 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.
Rubriques
Comprendre les paramètres de mise à l'échelle automatique de votre application
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 des applications, 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 une période de temps avant que les règles de mise à l'échelle automatique des applications 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é provisionnée avant de déclencher une politique de dimensionnement automatique des applications. À 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 dont l'objectif d'utilisation est faible (<= 50 %)
Vous pouvez utiliser le AWS CLI ou Console de gestion AWS pour surveiller et identifier les TargetValues politiques de dimensionnement automatique de votre application dans vos ressources Amazon Keyspaces.
Note
Lorsque vous utilisez des tables multi-régions en mode capacité provisionnée avec la mise à l'échelle automatique d'Amazon Keyspaces, veillez à utiliser les opérations de l'API Amazon Keyspaces pour configurer la mise à l'échelle automatique. Les opérations sous-jacentes de l'API Application Auto Scaling qu'Amazon Keyspaces appelle en votre nom ne disposent pas de fonctionnalités multi-régions. 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.
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, l'application utilise ce seuil bas pour augmenter rapidement la capacité requise pendant les heures de pointe.
Ce scénario peut se présenter comme suit :
-
Entre 17 h et 9 h, les unités
ConsumedWriteCapacityUnitsrestent 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 une mise à l'échelle automatique des applications planifiée, dans laquelle une règle de dimensionnement automatique des applications peut toujours être configurée dans votre tableau, 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 et du jour de la semaine.
-
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 -
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 l'échelle 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" -
Exécutez la commande suivante pour confirmer que les deux règles ont été activées :
aws application-autoscaling describe-scheduled-actions --service-namespace cassandraVous devriez obtenir le résultat suivant :
{ "ScheduledActions": [ { "ScheduledActionName": "my-5-8-scheduled-down-action", "ScheduledActionARN": "arn:aws:autoscaling:us-east-1:111122223333: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:us-east-1:111122223333: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 n'est pas réduit.
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 dimensionnement automatique planifiée affectera les valeurs maximales et minimales, et il est de votre responsabilité de les configurer.
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 présente pas d'erreurs de débit de faible capacité.
Envisagez plutôt d'utiliser le mode de capacité à la demande. On-demand les tableaux sont parfaits pour les charges de travail complexes dont vous ne connaissez pas les modèles 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 attendez de votre application, car Amazon Keyspaces prend instantanément en charge 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 de dimensionnement automatique des applications personnalisée qui réagit aux événements dans lesquels vous pouvez 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 vos applications.