Use historical patterns to scale Amazon ECS services with predictive scaling - Amazon Elastic Container Service

Use historical patterns to scale Amazon ECS services with predictive scaling

La mise à l’échelle prédictive examine les données de charge passées issues des flux de trafic afin d’analyser les tendances quotidiennes ou hebdomadaires. Elle utilise ensuite cette analyse pour anticiper les besoins postérieurs et augmenter de manière proactive les tâches dans votre service selon les besoins.

L’autoscaling prédictif est particulièrement utile dans les cas suivants.

  • Trafic cyclique : utilisation accrue des ressources pendant les heures normales de bureau et utilisation réduite pendant les soirées et les fins de semaine.

  • Modèles de charge de travail récurrents et intermittents : par exemple, traitement par lots, tests ou analyse périodique des données.

  • Applications avec des temps d’initialisation longs : cette situation peut avoir un impact sur les performances des applications lors d’événements d’augmentation horizontale, entraînant une latence notable.

Si vos applications prennent beaucoup de temps à s’initialiser et que le trafic augmente de manière régulière, vous devriez envisager d’utiliser la mise à l’échelle prédictive. Elle permet d’accélérer la mise à l’échelle en augmentant de manière proactive le nombre de tâches pour les charges prévues, au lieu d’utiliser uniquement des stratégies de mise à l’échelle dynamique, telles que la stratégie de mise à l’échelle du suivi de cible ou la mise à l’échelle par étapes. En vous aidant à éviter le risque de surallocation du nombre de tâches, la mise à l’échelle prédictive peut également vous permettre de réaliser des économies.

Prenons l'exemple d'une application très utilisée pendant les heures de bureau et peu utilisée la nuit. Au début de chaque journée ouvrable, la mise à l’échelle prédictive peut augmenter horizontalement les tâches avant le premier afflux de trafic. Cela permet à votre application de maintenir une disponibilité et des performances élevées lorsqu'elle passe d'une période de faible utilisation à une période d'utilisation plus intensive. Vous n'avez pas besoin d'attendre que la mise à l'échelle dynamique réagisse à l'évolution du trafic. Vous n’avez pas non plus à passer du temps à examiner les modèles de charge de votre application et à essayer de planifier le nombre adéquat de tâches à l’aide d’une mise à l’échelle planifiée.

La mise à l’échelle prédictive est une fonctionnalité au niveau du service qui met à l’échelle la tâche de votre service indépendamment de la mise à l’échelle de la capacité de calcul sous-jacente (par exemple, EC2 ou Fargate). Pour Fargate, AWS gère et met automatiquement à l’échelle la capacité sous-jacente en fonction des exigences de la tâche. Pour la capacité EC2, vous pouvez utiliser les fournisseurs de capacité du groupe Auto Scaling pour mettre automatiquement à l’échelle les instances EC2 sous-jacentes en fonction des exigences de dimensionnement de vos tâches.

Fonctionnement de la mise à l’échelle prédictive dans Amazon ECS

Vous trouverez ici des informations sur les considérations relatives à l’utilisation de la mise à l’échelle prédictive, son fonctionnement et ses limites.

Considérations relatives à l’utilisation de la mise à l’échelle prédictive

  • Vous voulez vous assurer que la mise à l’échelle prédictive est adaptée à votre charge de travail. Vous pouvez vérifier cela en configurant les stratégies de mise à l’échelle en mode prévisions uniquement et en consultant les recommandations de la console. Vous devez évaluer les prévisions et les recommandations avant de commencer à utiliser la mise à l’échelle prédictive.

  • Avant que la mise à l’échelle prédictive puisse commencer à établir des prévisions, elle a besoin d’au moins 24 heures de données historiques. Plus il y a de données historiques disponibles, plus les prévisions sont efficaces, l’idéal étant deux semaines. Vous devrez également attendre 24 heures avant que la mise à l’échelle prédictive puisse générer de nouvelles prévisions lorsque vous supprimez un service Amazon ECS pour en recréer un. L’une des manières d’accélérer les choses consiste à utiliser des métriques personnalisées pour agréger les métriques entre l’ancien et le nouveau service Amazon ECS.

  • Choisissez une métrique de charge qui représente avec précision la charge complète de votre application et qui constitue l’aspect le plus important de votre application à prendre en compte.

  • La mise à l’échelle dynamique avec mise à l’échelle prédictive vous permet de suivre de près la demande de votre application, afin que vous puissiez l’augmenter en période d’accalmie et l’augmenter en cas d’augmentation inattendue du trafic. Lorsque plusieurs stratégies de mise à l’échelle sont actives, chaque stratégie détermine indépendamment le nombre souhaité de tâches, et le nombre souhaité de tâches est défini sur le maximum de celles-ci.

  • Vous pouvez utiliser la mise à l’échelle prédictive parallèlement à vos stratégies de mise à l’échelle dynamique, telles que le suivi des cibles ou la mise à l’échelle par étapes, afin que vos applications évoluent en fonction de modèles historiques et en temps réel. En soi, la mise à l’échelle prédictive ne permet pas de réduire horizontalement vos tâches.

  • Si vous utilisez un rôle personnalisé lorsque vous appelez l’API register-scalable-target, un message d’erreur peut s’afficher indiquant que la stratégie de mise à l’échelle prédictive ne peut fonctionner que si le SLR est activé. Dans ce cas, vous devez appeler register-scalable-target à nouveau, mais sans role-arn. Utilisez le SLR lors de l’enregistrement de la cible évolutive et appelez l’API put-scaling-policy.

Fonctionnement de la mise à l'échelle prédictive

Vous utilisez la mise à l’échelle prédictive en créant une stratégie de mise à l’échelle prédictive qui spécifie la métrique CloudWatch à surveiller et à analyser. La mise à l’échelle prédictive doit disposer d’au moins 24 heures de données pour commencer à prévoir les valeurs futures.

Une fois que vous avez créé la stratégie, la mise à l’échelle prédictive commence à analyser les données métriques recueillies au cours des 14 derniers jours afin d’identifier des modèles. Cette analyse est utilisée pour générer des prévisions horaires des besoins pour les 48 prochaines heures. Les dernières données de CloudWatch sont utilisées pour mettre à jour les prévisions toutes les six heures. À mesure que de nouvelles données arrivent, la mise à l’échelle prédictive améliore continuellement la précision des prévisions futures.

Lorsque vous activez la mise à l’échelle prédictive pour la première fois, elle s’exécute en mode prévision uniquement. Elle génère des prévisions dans ce mode, mais ne met pas votre service Amazon ECS à l’échelle en fonction de ces prévisions. Cela vous permet d’évaluer la précision et la pertinence des prévisions. Vous pouvez consulter les données de prévision à l’aide de l’opération API GetPredictiveScalingForecast ou de l’the console.

Lorsque vous décidez de commencer à utiliser la mise à l’échelle prédictive, passez la stratégie de mise à l’échelle en mode prévision et mise à l’échelle. Dans ce mode, les événements suivants se produisent.

Votre service Amazon ECS est mis à l’échelle au début de chaque heure en fonction des prévisions pour cette heure, par défaut. Vous pouvez choisir de commencer plus tôt en utilisant la propriété SchedulingBufferTime dans l’opération d’API PutScalingPolicy. Cela permet de lancer de nouvelles tâches avant la demande prévue et leur donne le temps de démarrer et de se préparer à gérer le trafic.

Limite maximum de tâches

Lorsque vous enregistrez les services Amazon ECS pour la mise à l’échelle, vous définissez un nombre maximal de tâches pouvant être lancées par service. Par défaut, lorsque des politiques de mise à l’échelle sont définies, elles ne peuvent pas augmenter le nombre de tâches au-dessus de sa limite maximale.

Vous pouvez également autoriser l’augmentation automatique du nombre maximum de tâches du service si les prévisions approchent ou dépassent le nombre maximum de tâches du service Amazon ECS.

Avertissement

Soyez prudent lorsque vous autorisez l’augmentation automatique du nombre maximum de tâches. Cela peut entraîner le lancement d’un plus grand nombre de tâches que prévu, si le nombre maximum de tâches augmenté n’est pas surveillé et géré. Le nombre maximum de tâches augmenté devient alors le nouveau nombre maximum normal de tâches pour le service Amazon ECS jusqu’à ce que vous le mettiez à jour manuellement. Le nombre maximum de tâches ne revient pas automatiquement au maximum initial.

Régions prises en charge

  • USA Est (Virginie du Nord)

  • USA Est (Ohio)

  • USA Ouest (Californie du Nord)

  • USA Ouest (Oregon)

  • Afrique (Le Cap)

  • Asie-Pacifique (Hong Kong)

  • Asie-Pacifique (Jakarta)

  • Asie-Pacifique (Mumbai)

  • Asie-Pacifique (Osaka)

  • Asia Pacific (Seoul)

  • Asie-Pacifique (Singapour)

  • Asie-Pacifique (Sydney)

  • Asie-Pacifique (Tokyo)

  • Canada (Centre)

  • Chine (Beijing)

  • China (Ningxia)

  • Europe (Francfort)

  • Europe (Irlande)

  • Europe (Londres)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Moyen-Orient (Bahreïn)

  • South America (São Paulo)

  • AWS GovCloud (US, côte est)

  • AWS GovCloud (US-West)