Utilisation des actions planifiées pour remplacer les valeurs prévisionnelles pour Amazon ECS
Parfois, vous pouvez disposer d'informations supplémentaires sur de futurs besoins de votre application que le calcul prédictif ne peut pas prendre en compte. Par exemple, les calculs prévisionnels pourraient sous-estimer les tâches nécessaires à la préparation d’un événement marketing à venir. Vous pouvez alors utiliser des actions planifiées pour remplacer temporairement la prévision au cours de périodes ultérieures. Les actions planifiées peuvent être exécutées de manière récurrente, ou à une date et une heure spécifiques en cas de fluctuations ponctuelles de la demande.
Par exemple, vous pouvez créer une action planifiée avec un nombre de tâches supérieur à celui prévu. Au moment de l’exécution, Amazon ECS met à jour le nombre minimum de tâches de votre service. Étant donné que la mise à l’échelle prédictive optimise le nombre de tâches, une action planifiée dont le nombre minimum de tâches est supérieur aux valeurs prévues est respectée. Cela permet d’éviter que le nombre de tâches soit inférieur à celui prévu. Pour cesser de remplacer les prévisions, utilisez une deuxième action planifiée afin de rétablir le nombre minimum de tâches à son paramètre d’origine.
La procédure suivante présente les étapes à suivre pour remplacer la prévision au cours de périodes ultérieures.
Rubriques
Important
Cette rubrique part du principe que vous essayez de remplacer les prévisions afin d’atteindre une capacité supérieure à celle prévue. Si vous devez réduire temporairement le nombre de tâches sans interférer avec une stratégie de mise à l’échelle prédictive, utilisez plutôt le mode prévision uniquement. En mode « prévision uniquement », la mise à l’échelle prédictive continuera de générer des prévisions, mais elle n’augmentera pas automatiquement le nombre de tâches. Vous pouvez ensuite surveiller l’utilisation des ressources et réduire manuellement le nombre de tâches selon les besoins.
Étape 1 : (facultatif) Analyser les données en séries chronologiques
Commencez par analyser les données en séries chronologiques de la prévision. Il s'agit d'une étape facultative, mais elle permet de comprendre les détails de la prévision.
-
Récupérer la prévision
Une fois la prévision créée, vous pouvez interroger une période spécifique au sein de celle-ci. L'objectif de la requête est d'obtenir une vue complète des données en séries chronologiques d'une période spécifique.
Votre requête peut inclure jusqu'à deux jours de données de prévision ultérieures. Si vous utilisez la mise à l'échelle prédictive depuis un certain temps, vous pouvez également accéder à vos données de prévision antérieures. Toutefois, la durée maximale entre le début et la fin est de 30 jours.
Pour obtenir la prévision à l'aide de la commande AWS CLI get-predictive-scaling-forecast, fournissez les paramètres suivants dans la commande :
-
Saisissez le nom du cluster dans le paramètre
resource-id. -
Entrez le nom de la stratégie dans le paramètre
--policy-name. -
Entrez l'heure de début dans le paramètre
--start-timepour ne renvoyer que les données de prévision correspondant à l'heure spécifiée ou ultérieures à celle-ci. -
Entrez l'heure de fin dans le paramètre
--end-timepour ne renvoyer que les données de prévision correspondant à l'heure spécifiée ou antérieures à celle-ci.
aws application-autoscaling get-predictive-scaling-forecast \ --service-namespace ecs \ --resource-id service/MyCluster/test \ --policy-namecpu40-predictive-scaling-policy\ --scalable-dimension ecs:service:DesiredCount \ --start-time "2021-05-19T17:00:00Z" \ --end-time "2021-05-19T23:00:00Z"Si elle aboutit, la commande renvoie des données semblables à l'exemple suivant.
{ "LoadForecast": [ { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 153.0655799339254, 128.8288551285919, 107.1179447150675, 197.3601844551528, 626.4039934516954, 596.9441277518481, 677.9675713779869 ], "MetricSpecification": { "TargetValue": 40.0, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } } ], "CapacityForecast": { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 2.0, 2.0, 2.0, 2.0, 4.0, 4.0, 4.0 ] }, "UpdateTime": "2021-05-19T01:52:50.118000+00:00" }La réponse comprend deux prévisions :
LoadForecastetCapacityForecast.LoadForecastaffiche la prévision de charge horaire.CapacityForecastaffiche les valeurs de prévision de la capacité nécessaire sur une base horaire pour gérer la charge prévue tout en maintenant uneTargetValuede 40 (40 % d'utilisation moyenne du processeur). -
-
Identifier la période cible
Indiquez l'heure ou les heures où la fluctuation de la demande ponctuelle devrait avoir lieu. N'oubliez pas que les dates et les heures indiquées dans la prévision sont basées sur le fuseau horaire UTC.
Étape 2 : créer deux actions planifiées
Créez ensuite deux actions planifiées pour une période spécifique où votre application devra gérer une charge plus élevée que celle prédite. Par exemple, si vous organisez un événement marketing qui va générer du trafic sur votre site pendant une période limitée, vous pouvez planifier une action ponctuelle pour mettre à jour la capacité minimale au début de cet événement. Puis vous pouvez planifier une autre action pour rétablir le paramètre d'origine de la capacité minimale à la fin de l'événement.
Ouvrez la console à partir de l'adresse https://console.aws.amazon.com/ecs/v2
. -
Sur la page Clusters, choisissez le cluster.
-
Sur la page des détails du cluster, dans la section Services, puis choisissez le service.
La page de détails du service s’affiche.
-
Choisissez Service Auto Scaling.
La page des stratégies s’affiche.
-
Choisissez Actions planifiées, puis Créer.
La page Créer une action planifiée s’affiche.
-
Pour Nom de l’action, saisissez un nom unique.
-
Dans le champ Fuseau horaire, choisissez un fuseau horaire.
Tous les fuseaux horaires répertoriés proviennent de la base de données des fuseaux horaires IANA. Pour plus d’informations, consultez la section Liste des fuseaux horaires de la base de données tz
. -
Pour Heure de début, saisissez la date et l’heure de début de l’action.
-
Pour Recurrence (Récurrence), choisissez Once (Une fois).
-
Sous Ajustements des tâches, pour « Minimum », saisissez une valeur inférieure ou égale au nombre maximum de tâches.
-
Choisissez Create Scheduled Action (Créer une action planifiée).
La page des stratégies s’affiche.
-
Configurez une deuxième action planifiée pour rétablir le nombre minimum de tâches à la configuration d’origine à la fin de l’événement. La mise à l’échelle prédictive ne peut mettre à l’échelle le nombre de tâches que lorsque la valeur que vous avez définie pour Minimum est inférieure aux valeurs prévues.
Pour créer deux actions planifiées pour des événements ponctuels (AWS CLI)
Pour créer les actions planifiées à l'aide de l'interface AWS CLI, utilisez la commande put-scheduled-update-group-action.
Par exemple, définissons une action planifiée pour maintenir une capacité minimale de trois instances pendant huit heures à partir du 19 mai à 17h00. Les commandes suivantes montrent comment implémenter ce scénario.
La première commande put-scheduled-update-group-action indique à Amazon EC2 Auto Scaling de mettre à jour la capacité minimale du groupe Auto Scaling spécifié à 17h00 UTC le 19 mai 2021.
aws autoscaling put-scheduled-update-group-action --scheduled-action-namemy-event-start\ --auto-scaling-group-namemy-asg--start-time "2021-05-19T17:00:00Z" --minimum-capacity3
La deuxième commande indique à Amazon EC2 Auto Scaling de définir la capacité minimale du groupe à 1h00 UTC le 20 mai 2021.
aws autoscaling put-scheduled-update-group-action --scheduled-action-namemy-event-end\ --auto-scaling-group-namemy-asg--start-time "2021-05-20T01:00:00Z" --minimum-capacity1
Après l'ajout de ces actions planifiées au groupe Auto Scaling, Amazon EC2 Auto Scaling effectue les opérations suivantes :
-
À 17h00 UTC le 19 mai 2021, la première action planifiée s'exécute. Si le groupe compte actuellement moins de trois instances, il passe à trois instances. Pendant ce temps et pendant les huit heures suivantes, Amazon EC2 Auto Scaling peut continuer à monter en puissance si la capacité prévue est supérieure à la capacité réelle ou si une stratégie de mise à l'échelle dynamique est en vigueur.
-
À 1h00 UTC le 20 mai 2021, la seconde action planifiée s'exécute. Cette action rétablit le paramètre d'origine de la capacité minimale à la fin de l'événement.
Mise à l'échelle basée sur des planifications récurrentes
Pour remplacer la prévision applicable à la même période chaque semaine, créez deux actions planifiées et fournissez la logique d'heure et de date à l'aide d'une expression cron.
L'expression cron est constituée de cinq champs séparés par des espaces : [Minute] [Heure] [Jour_du_Mois] [Mois_de_Année] [Jour_de_Semaine]. Ces champs peuvent contenir toutes les valeurs autorisées, y compris des caractères spéciaux.
Par exemple, l'expression cron suivante exécute l'action tous les mardis à 6h30. L'astérisque est utilisé comme caractère générique pour représenter toutes les valeurs d'un champ.
30 6 * * 2
Consultez aussi
Pour plus d’informations sur la gestion des actions planifiées, consultez la section Use scheduled actions to scale Amazon ECS services.