

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.

# Utilisez des modèles historiques pour faire évoluer les services Amazon ECS grâce à une mise à l'échelle prédictive
<a name="predictive-auto-scaling"></a>

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 on-and-off de charge de travail récurrents ‐ Les exemples incluent le traitement par lots, les tests ou l'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 adapte automatiquement la capacité sous-jacente en fonction des exigences des tâches. 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.

**Topics**
+ [Présentation de la mise à l’échelle prédictive](#predictive-auto-scaling-overview)
+ [Créer une stratégie de mise à l’échelle prédictive](predictive-scaling-create-policy.md)
+ [Évaluer vos politiques de mise à l'échelle prédictive](predictive-scaling-graphs.md)
+ [Remplacer la prévision](predictive-scaling-overriding-forecast-capacity.md)
+ [Utilisation de métriques personnalisées](predictive-scaling-custom-metrics.md)

## Fonctionnement de la mise à l’échelle prédictive dans Amazon ECS
<a name="predictive-auto-scaling-overview"></a>

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
<a name="predictive-auto-scaling-considerations"></a>
+ 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
<a name="predictive-auto-scaling-details"></a>

Vous utilisez la mise à l'échelle prédictive en créant une politique de mise à l'échelle prédictive qui spécifie la CloudWatch métrique à 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 CloudWatch données 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’ AWS Management 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
<a name="predictive-scaling-maximum-tasks-limit"></a>

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
<a name="predictive-auto-scaling-supported-regions"></a>
+ 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 (Pékin)
+ China (Ningxia)
+ Europe (Francfort)
+ Europe (Irlande)
+ Europe (Londres)
+ Europe (Milan)
+ Europe (Paris)
+ Europe (Stockholm)
+ Moyen-Orient (Bahreïn)
+ Amérique du Sud (São Paulo)
+ AWS GovCloud (USA Est)
+ AWS GovCloud (US-Ouest)

# Création d’une stratégie de mise à l’échelle pour l’autoscaling d’un service Amazon ECS
<a name="predictive-scaling-create-policy"></a>

Créez une stratégie de mise à l’échelle prédictive pour qu’Amazon ECS augmente ou diminue le nombre de tâches exécutées par votre service en fonction de données historiques. 

**Note**  
Un nouveau service doit fournir au moins 24 heures de données avant de pouvoir générer une prévision.

## Console
<a name="predictive-scaling-policy-aws-console"></a>

1. En plus des autorisations IAM standard pour créer et mettre à jour des services, vous avez besoin d’autorisations supplémentaires. Pour de plus amples informations, veuillez consulter [Autorisations IAM requises pour l’autoscaling d’un service Amazon ECS](auto-scaling-IAM.md).

1. Déterminez les métriques à utiliser pour la stratégie. Les mesures suivantes sont disponibles :
   +  **ECSServiceMoyenne CPUUtilization** : utilisation moyenne du processeur que le service doit utiliser. 
   + **ECSServiceAverageMemoryUtilization**— Utilisation moyenne de la mémoire que le service doit utiliser. 
   + **ALBRequestCountPerTarget**— Le nombre moyen de demandes par minute que cette tâche devrait idéalement recevoir.

   Vous pouvez également utiliser une métrique personnalisée. Vous devez définir les valeurs suivantes :
   + Charge : métrique qui représente avec précision la charge totale de votre application et qui constitue l’aspect le plus important à prendre en compte pour la mise à l’échelle de votre application.
   + Métrique de mise à l’échelle : le meilleur indicateur pour déterminer le niveau d’utilisation idéal pour votre application.

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, choisissez le cluster.

1. Sur la page des détails du cluster, dans la section **Services**, choisissez le service.

   La page de détails du service s’affiche.

1. Choisissez **Autoscaling du service**, puis sélectionnez **Définir le nombre de tâches**.

1. Sous **Nombre de tâches du service Amazon ECS**, sélectionnez **Utiliser l’autoscaling**.

   La section **Nombre de tâches** s’affiche.

   1. Pour **Nombre minimum de tâches**, saisissez la limite inférieure du nombre de tâches à utiliser pour l’autoscaling du service. Le nombre souhaité ne sera pas inférieur à ce nombre.

   1. Pour **Nombre maximal de tâches**, saisissez la limite supérieure du nombre de tâches à utiliser pour l’autoscaling du service. Le nombre souhaité ne sera pas supérieur à ce nombre.

   1. Choisissez **Enregistrer**.

      La page des stratégies s’affiche.

1. Choisissez **Créer une stratégie de mise à l’échelle**.

   La page **Créer une stratégie** s’affiche.

1. Pour **Type de stratégie de mise à l’échelle**, choisissez **Mise à l’échelle prédictive**.

1. Pour **Policy name** (Nom de la politique), saisissez un nom de politique.

1. Sous **Paire de métriques**, choisissez vos métriques dans la liste des options.

   Si vous avez choisi **Nombre de requêtes Application Load Balancer par cible**, choisissez un groupe cible dans le champ **Groupe cible**. L’option **Nombre de requêtes Application Load Balancer par cible** n’est prise en charge que si vous avez attaché un groupe cible Application Load Balancer à votre service. 

   Si vous avez choisi **Paire de métriques personnalisées**, sélectionnez les métriques individuelles dans les listes déroulantes **Métrique de charge** et **Métrique de mise à l’échelle**. 

1. Pour **Utilisation cible**, saisissez la valeur cible pour le pourcentage de tâches qu’Amazon ECS doit gérer. L’autoscaling du service augmente horizontalement votre capacité jusqu’à ce que l’utilisation moyenne corresponde à l’objectif, ou jusqu’à ce qu’elle atteigne le nombre maximal de tâches que vous avez spécifié.

1. Choisissez **Créer une stratégie de mise à l’échelle**.

## AWS CLI
<a name="predictive-scaling-policy-aws-cli"></a>

Utilisez ce qui AWS CLI suit pour configurer des politiques de dimensionnement prédictif pour votre service Amazon ECS. Remplacez chaque *user input placeholder* par vos propres informations.

Pour plus d'informations sur les CloudWatch métriques que vous pouvez spécifier, consultez le [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingMetricSpecification.html)manuel *Amazon EC2 Auto Scaling API* Reference.

### Exemple 1 : stratégie de mise à l’échelle prédictive avec mémoire prédéfinie.
<a name="predictive-scaling-cli-example-one"></a>

Voici un exemple de stratégie avec une configuration mémoire prédéfinie.

```
cat policy.json
{
    "MetricSpecifications": [
        {
            "TargetValue": 40,
            "PredefinedMetricPairSpecification": {
                "PredefinedMetricType": "ECSServiceMemoryUtilization"
            }
        }
    ],
    "SchedulingBufferTime": 3600,
    "MaxCapacityBreachBehavior": "HonorMaxCapacity",
    "Mode": "ForecastOnly"
}
```

L'exemple suivant illustre la création de la politique en exécutant la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)commande avec le fichier de configuration spécifié.

```
aws application-autoscaling put-scaling-policy \
--service-namespace ecs \
--region us-east-1 \
--policy-name predictive-scaling-policy-example \
--resource-id service/MyCluster/test \
--policy-type PredictiveScaling \
--scalable-dimension ecs:service:DesiredCount \
--predictive-scaling-policy-configuration file://policy.json
```

Si elle aboutit, cette commande renvoie l’ARN de la stratégie.

```
{
    "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
    "Alarms": []
}
```

### Exemple 2 : stratégie de mise à l’échelle prédictive avec UC prédéfinie.
<a name="predictive-scaling-cli-example-two"></a>

Voici un exemple de stratégie avec une configuration UC prédéfinie.

```
cat policy.json
{
    "MetricSpecifications": [
        {
            "TargetValue": 0.00000004,
            "PredefinedMetricPairSpecification": {
                "PredefinedMetricType": "ECSServiceCPUUtilization"
            }
        }
    ],
    "SchedulingBufferTime": 3600,
    "MaxCapacityBreachBehavior": "HonorMaxCapacity",
    "Mode": "ForecastOnly"
}
```

L'exemple suivant illustre la création de la politique en exécutant la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)commande avec le fichier de configuration spécifié.

```
aws aas put-scaling-policy \
--service-namespace ecs \
--region us-east-1 \
--policy-name predictive-scaling-policy-example \
--resource-id service/MyCluster/test \
--policy-type PredictiveScaling \
--scalable-dimension ecs:service:DesiredCount \
--predictive-scaling-policy-configuration file://policy.json
```

Si elle aboutit, cette commande renvoie l’ARN de la stratégie.

```
{
    "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
    "Alarms": []
}
```

# Évaluation de vos stratégies de mise à l’échelle prédictive pour Amazon ECS
<a name="predictive-scaling-graphs"></a>

Avant d’utiliser une stratégie de mise à l’échelle prédictive pour mettre à l’échelle vos services, consultez les recommandations et autres données relatives à votre stratégie dans la console Amazon ECS. C'est une étape importante pour éviter qu'une politique de mise à l'échelle prédictive mette votre capacité réelle à l'échelle tant que vous ne savez pas si ses prévisions sont exactes.

Si le service est neuf, prévoyez 24 heures pour créer la première prévision.

Lors de AWS la création d'une prévision, elle utilise des données historiques. Si votre service ne dispose pas encore de beaucoup de données historiques récentes, la mise à l’échelle prédictive peut temporairement compléter les prévisions avec des agrégats créés à partir des agrégats historiques actuellement disponibles. Les prévisions sont remplies jusqu'à deux semaines avant la date de création d'une politique.

## Afficher vos recommandations de mise à l'échelle prédictive
<a name="view-predictive-scaling-recommendations"></a>

Pour une analyse efficace, l’autoscaling du service doit disposer d’au moins deux stratégies de mise à l’échelle prédictive à comparer. (Toutefois, vous pouvez toujours consulter les résultats d'une seule politique.) Lorsque vous créez plusieurs politiques, vous pouvez évaluer une politique qui utilise une seule métrique par rapport à une autre qui utilise une autre métrique. Vous pouvez également évaluer l'impact de différentes combinaisons de valeurs cibles et de métriques. Une fois les stratégies de mise à l’échelle prédictive créées, Amazon ECS commence immédiatement à évaluer la stratégie la plus appropriée pour mettre votre groupe à l’échelle.

**Pour afficher vos recommandations dans la console Amazon ECS**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, choisissez le cluster.

1. Sur la page des détails du cluster, dans la section **Services**, choisissez le service.

   La page de détails du service s’affiche.

1. Choisissez **Autoscaling du service**.

1. Choisissez la stratégie de mise à l’échelle prédictive, puis sélectionnez **Actions**, **Mise à l’échelle prédictive**, **Afficher les recommandations**.

   Vous pouvez consulter les détails d’une stratégie ainsi que notre recommandation. La recommandation vous indique si la politique de mise à l'échelle prédictive est plus efficace que si vous ne l'utilisez pas. 

   Si vous ne savez pas si une politique de mise à l'échelle prédictive convient à votre groupe, consultez les colonnes **Impact sur la disponibilité** et **Impact sur les coûts** pour choisir la politique appropriée. Les informations de chaque colonne vous indiquent l'impact de la politique. 
   + **Impact sur la disponibilité** : indique si la stratégie permettrait d’éviter un impact négatif sur la disponibilité en provisionnant suffisamment d’instances pour gérer la charge de travail, en comparaison avec sa non-utilisation.
   + **Impact sur les coûts** : indique si la stratégie éviterait un impact négatif sur vos coûts en évitant une surallocation des tâches, en comparaison avec sa non-utilisation. En cas d’allocation excessive, vos services sont sous-utilisés ou inactifs, ce qui ne fait qu’augmenter l’impact sur les coûts.

   Si vous avez plusieurs politiques, la balise **Meilleure prévision** s'affiche à côté du nom de la politique qui offre le plus d'avantages en matière de disponibilité à moindre coût. Une plus grande importance est accordée à l'impact sur la disponibilité. 

1. (Facultatif) Pour sélectionner la période souhaitée pour les résultats des recommandations, choisissez la valeur de votre choix dans le menu déroulant **Période d’évaluation** : **2 jours**, **1 semaine** ou **2 semaines**. Par défaut, la période d'évaluation est réglée sur les deux dernières semaines. Une période d'évaluation plus longue fournit davantage de points de données pour les résultats des recommandations. Toutefois, l'ajout de points de données supplémentaires risque de ne pas améliorer les résultats si vos modèles de charge ont changé, par exemple après une période de demande exceptionnelle. Dans ce cas, vous pouvez obtenir une recommandation plus ciblée en consultant des données plus récentes.

**Note**  
Les recommandations sont générées uniquement pour les politiques qui sont en mode **Prévision uniquement**. La fonctionnalité des recommandations offre de meilleurs résultats lorsqu'une politique est en mode **Prévision uniquement** pendant toute la période d'évaluation. Si vous lancez une politique en mode **Prévision et mise à l'échelle** et que vous la passez ultérieurement en mode **Prévision uniquement**, les résultats de cette politique risquent d'être biaisés. Cela s'explique par le fait que la politique a déjà contribué à la capacité réelle.

## Consulter les graphiques de surveillance de la mise à l'échelle prédictive
<a name="review-predictive-scaling-monitoring-graphs"></a>

Dans la console, vous pouvez consulter les prévisions des jours, semaines ou mois précédents afin de visualiser les performances de la stratégie au fil du temps. Vous pouvez également utiliser ces informations pour évaluer la précision des prévisions lorsque vous décidez de laisser une stratégie mettre à l’échelle votre nombre réel de tâches.

**Pour consulter les graphiques de surveillance de la mise à l’échelle prédictive dans la console Amazon ECS**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, choisissez le cluster.

1. Sur la page des détails du cluster, dans la section **Services**, choisissez le service.

   La page de détails du service s’affiche.

1. Choisissez **Autoscaling du service**.

1. Choisissez la stratégie de mise à l’échelle prédictive, puis sélectionnez **Actions**, **Mise à l’échelle prédictive**, **Afficher les graphiques**.

1. Dans la section **Surveillance**, vous pouvez afficher les prévisions passées et futures de votre politique concernant la charge et la capacité par rapport aux valeurs réelles. Le graphique **Charge** présente la prévision de charge et les valeurs réelles pour la métrique de charge que vous avez choisie. Le graphique **Capacité** indique le nombre de tâches prédit par la stratégie. Il inclut également le nombre réel de tâches lancées. La ligne verticale sépare les valeurs historiques des prévisions futures. Ces graphiques sont disponibles peu de temps après la création de la politique. 

1. (Facultatif) Pour modifier la quantité de données historiques affichées dans le graphique, choisissez la valeur de votre choix dans la liste déroulante **Période d'évaluation** en haut de la page. La période d'évaluation ne transforme en rien les données de cette page. Elle ne fait que modifier la quantité de données historiques affichées.

**Comparer les données du graphique **Charge****  
Chaque ligne horizontale représente un ensemble différent de points de données rapportés à des intervalles d'une heure :

1. La **charge observée réelle** utilise la statistique SUM correspondant à la métrique de charge de votre choix afin d'afficher la charge horaire totale dans le passé.

1. La **charge prévue par la politique** indique la prévision de charge horaire. Cette prévision se base sur les observations de charge réelles des deux semaines précédentes.

**Comparez les données du graphique **Capacité****  
Chaque ligne horizontale représente un ensemble différent de points de données rapportés à des intervalles d'une heure :

1. Le **nombre réel de tâches observé** indique la capacité réelle de votre service Amazon ECS dans le passé, qui dépend de vos autres stratégies de mise à l’échelle et de la taille minimale du groupe en vigueur pour la période sélectionnée.

1. La **capacité prévue par la politique** indique la capacité de base à laquelle vous pouvez vous attendre au début de chaque heure lorsque la politique est en mode **Prévision et mise à l'échelle**.

1. Le **nombre de tâches requis estimé** indique le nombre idéal de tâches dans votre service pour maintenir la métrique de mise à l’échelle à la valeur cible que vous avez choisie.

1. Le **nombre minimum de tâches** indique le nombre minimum de tâches de votre service.

1. La **capacité maximale** indique le nombre maximal de tâches de votre service.

Afin de calculer la capacité requise estimée, nous partons du principe que chaque tâche est utilisée de manière égale à une valeur cible spécifiée. Dans la pratique, le nombre de tâches n’est pas utilisé de manière égale. En supposant toutefois que l’utilisation est répartie uniformément entre les tâches, nous pouvons estimer la probabilité de la capacité nécessaire. Le nombre de tâches requis est alors calculé comme étant inversement proportionnel à la métrique de mise à l’échelle que vous avez utilisée pour votre stratégie de mise à l’échelle prédictive. En d’autres termes, à mesure que le nombre de tâches augmente, la métrique de mise à l’échelle diminue au même rythme. Par exemple, si le nombre de tâches double, la métrique de mise à l’échelle doit diminuer de moitié. 

La formule de la capacité requise déduite est la suivante :

 `sum of (actualServiceUnits*scalingMetricValue)/(targetUtilization)`

Par exemple, nous prenons les `actualServiceUnits` (`10`) et la `scalingMetricValue` (`30`) pour une heure donnée. Nous prenons ensuite la `targetUtilization` que vous avez spécifiée dans votre politique de mise à l'échelle prédictive (`60`) et calculons la capacité requise déduite pour la même heure. Elle renvoie la valeur `5`. Cela signifie que cinq est la quantité de capacité requise déduite pour maintenir la capacité en proportion inverse directe à la valeur cible de la métrique de mise à l'échelle.

**Note**  
Différents leviers sont à votre disposition pour ajuster et améliorer les économies de coûts et la disponibilité de votre application.  
Vous utilisez la mise à l'échelle prédictive pour la capacité de base et la mise à l'échelle dynamique afin de gérer la capacité supplémentaire. La mise à l'échelle dynamique fonctionne indépendamment de la mise à l'échelle prédictive, avec une mise à l'échelle horizontale et une montée en puissance en fonction de l'utilisation actuelle. Tout d’abord, Amazon ECS calcule le nombre de tâches recommandé pour chaque stratégie de mise à l’échelle non planifiée. Ensuite, il procède à la mise à l’échelle en fonction de la stratégie qui fournit le plus grand nombre de tâches.
Pour permettre la réduction horizontale lorsque la charge diminue, votre service doit toujours disposer d’au moins une stratégie de mise à l’échelle dynamique avec la partie réduction horizontale activée.
Vous pouvez améliorer les performances de mise à l'échelle en vous assurant que vos capacités minimale et maximale ne sont pas trop restrictives. Une stratégie avec un nombre recommandé de tâches qui ne se situe pas dans la plage de capacité minimale et maximale ne pourra pas être mise à l’échelle.

# Surveillez les mesures de dimensionnement prédictif pour Amazon ECS avec CloudWatch
<a name="predictive-scaling-monitoring"></a>

Vous pouvez utiliser Amazon CloudWatch pour surveiller vos données à des fins de dimensionnement prédictif. Une stratégie de mise à l’échelle prédictive collecte des données qui sont utilisées pour prévoir votre charge postérieure. Les données collectées sont automatiquement stockées CloudWatch à intervalles réguliers et peuvent être utilisées pour visualiser les performances de la politique au fil du temps. Vous pouvez également créer des CloudWatch alarmes pour vous avertir lorsque les indicateurs de performance changent au-delà des limites que vous avez définies.

## Visualisez les données de prévision historiques
<a name="visualize-historical-forecast-data"></a>

Les données de prévision de charge pour une politique de dimensionnement prédictif peuvent être consultées CloudWatch et peuvent être utiles lors de la visualisation des prévisions par rapport à d'autres CloudWatch indicateurs dans un seul graphique. Vous pouvez également observer les tendances au fil du temps en affichant une période plus longue. Vous pouvez accéder aux métriques historiques jusqu'à 15 mois pour acquérir un meilleur point de vue de la façon dont votre politique s'exécute.

**Pour consulter les données de prévision historiques à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Metrics** (Métriques), **All metrics** (Toutes les métriques).

1. Choisissez l’espace de noms de métrique **Application Auto Scaling**.

1. Choisissez **Prévisions de charge pour la mise à l’échelle prédictive**.

1. Dans le champ de recherche, saisissez le nom de la stratégie de mise à l’échelle prédictive ou le nom du groupe de services Amazon ECS, puis appuyez sur « Entrée » pour filtrer les résultats. 

1. Pour représenter graphiquement une métrique, cochez la case en regard de la métrique. Pour modifier le nom du graphique, choisissez l'icône représentant un crayon. Pour modifier la plage de temps, sélectionnez l'une des valeurs prédéfinies ou choisissez **custom (personnalisé)**. Pour plus d'informations, consultez la section [Représentation graphique d'une métrique](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

1. Pour modifier les statistiques, choisissez l'onglet **Graphed metrics (Graphique des métriques)**. Sélectionnez l'en-tête de colonne ou une valeur individuelle et choisissez une autre valeur. Bien que vous puissiez choisir n'importe quelle statistique pour chaque métrique, toutes les statistiques ne sont pas utiles pour les **PredictiveScalingLoadForecast**métriques. Par exemple, les calculs statistiques de moyenne, minimum et maximum de l'utilisation de l'UC sont utiles, mais le calcul statistique de somme ne l'est pas.

1. (En option) Pour ajouter une autre métrique à utiliser dans l'expression mathématique, sous **Toutes les métriques**, choisissez **Tous**, recherchez la métrique spécifique, puis activez la case à cocher en regard de celle-ci. Vous pouvez ajouter jusqu'à 10 métriques.

1. (Facultatif) Pour ajouter le graphique à un CloudWatch tableau de bord, choisissez **Actions**, puis **Ajouter au tableau de bord**.

## Créer des mesures de précision à l'aide de mathématiques
<a name="create-accuracy-metrics"></a>

Avec les mathématiques métriques, vous pouvez interroger plusieurs CloudWatch métriques et utiliser des expressions mathématiques pour créer de nouvelles séries chronologiques basées sur ces métriques. Vous pouvez visualiser les séries chronologiques obtenues sur la CloudWatch console et les ajouter aux tableaux de bord. Pour plus d'informations sur les mathématiques métriques, consultez la section [Utilisation des mathématiques métriques](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

À l’aide des mathématiques de métriques, vous pouvez représenter graphiquement les données générées par l’autoscaling du service pour la mise à l’échelle prédictive de différentes manières. Cela vous permet de surveiller les performances des politiques au fil du temps et de comprendre si votre combinaison de mesures peut être améliorée.

Par exemple, vous pouvez utiliser une expression mathématique de métrique pour surveiller[erreur absolue moyenne en pourcentage](https://en.wikipedia.org/wiki/Mean_absolute_percentage_error)(MÂLE). La métrique MAPE permet de surveiller la différence entre les valeurs prévues et les valeurs réelles observées pendant une fenêtre de prévision donnée. Les modifications de la valeur de MAPE peuvent indiquer si les performances de la stratégie se dégradent au fil du temps à mesure que la nature de votre application change. Une augmentation de l'EMAP indique un écart plus important entre les valeurs prévues et les valeurs réelles. 

**Exemple : expressions mathématiques appliquées aux métriques**

Pour commencer avec ce type de graphique, vous pouvez créer une expression mathématique de métrique comme celle présentée dans l'exemple suivant.



Au lieu d'une seule métrique, il existe un tableau de structures de requêtes de données de métriques pour`MetricDataQueries`. Chaque élément de`MetricDataQueries`obtient une métrique ou exécute une expression mathématique. Le premier point,`e1`, est l'expression mathématique. L'expression désignée définit le`ReturnData`Paramètre to`true`, qui génère une seule série chronologique. Pour toutes les autres métriques, le kit`ReturnData`valeur est`false`. 

Dans l'exemple, l'expression désignée utilise les valeurs réelles et prévues comme entrée et renvoie la nouvelle métrique (MAPE). `m1`est la CloudWatch métrique qui contient les valeurs de charge réelles (en supposant que l'utilisation du processeur est la métrique de charge initialement spécifiée pour la politique nommée`my-predictive-scaling-policy`). `m2`est la CloudWatch métrique qui contient les valeurs de charge prévues. La syntaxe mathématique de la métrique MAPE est la suivante :

*Moyenne de (abs ((Réel - Forecast)/(Réel)))*

### Visualisez vos mesures de précision et définissez des alarmes
<a name="visualize-accuracy-metrics-set-alarms"></a>

Pour visualiser les données métriques de précision, sélectionnez l'onglet **Métriques** dans la CloudWatch console. Vous pouvez représenter les données sous forme graphique à partir de là. Pour plus d'informations, consultez la section [Ajouter une expression mathématique à un CloudWatch graphique](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#adding-metrics-expression-console) dans le *guide de CloudWatch l'utilisateur Amazon*.

Vous pouvez définir une alarme sur une métrique que vous surveillez à partir de la section **Metrics** (Métriques). Pendant que vous êtes sur l'onglet **Métriques sous forme de graphique**, vous pouvez sélectionner l'icône **Créer une alarme** sous la colonne **Actions**. Le**Créer une alarme**est représentée par une petite cloche. Pour plus d'informations et pour connaître les options de notification, consultez les [sections Création CloudWatch d'une alarme basée sur une expression mathématique métrique](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create-alarm-on-metric-math-expression.html) et [Notification aux utilisateurs des modifications apportées aux alarmes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html) dans le *guide de l' CloudWatch utilisateur Amazon*.

Vous pouvez également utiliser [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)et effectuer des calculs [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)à l'aide des mathématiques métriques et créer des alarmes en fonction de la sortie.

# Utilisation des actions planifiées pour remplacer les valeurs prévisionnelles pour Amazon ECS
<a name="predictive-scaling-overriding-forecast-capacity"></a>

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. 

**Topics**
+ [Étape 1 : (facultatif) Analyser les données en séries chronologiques](#analyzing-time-series-data)
+ [Étape 2 : créer deux actions planifiées](#scheduling-capacity)

**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
<a name="analyzing-time-series-data"></a>

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.

1. **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 les prévisions à l'aide de la [get-predictive-scaling-forecast](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/get-predictive-scaling-forecast.html) AWS CLI commande, entrez 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-time` pour 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-time` pour 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-name cpu40-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 : `LoadForecast` et `CapacityForecast`. `LoadForecast` affiche la prévision de charge horaire. `CapacityForecast` affiche les valeurs de prévision de la capacité nécessaire sur une base horaire pour gérer la charge prévue tout en maintenant une `TargetValue` de 40 (40 % d'utilisation moyenne du processeur).

1. **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
<a name="scheduling-capacity"></a>

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. 

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, choisissez le cluster.

1. 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.

1. Choisissez **Service Auto Scaling**.

   La page des stratégies s’affiche.

1. Choisissez **Actions planifiées**, puis **Créer**.

   La page **Créer une action planifiée** s’affiche.

1. Pour **Nom de l’action**, saisissez un nom unique.

1. 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](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).

1. Pour **Heure de début**, saisissez la **date** et l’**heure** de début de l’action.

1. Pour **Recurrence** (Récurrence), choisissez **Once** (Une fois).

1. Sous **Ajustements des tâches**, pour « Minimum », saisissez une valeur inférieure ou égale au nombre maximum de tâches.

1. Choisissez **Create Scheduled Action** (Créer une action planifiée).

   La page des stratégies s’affiche.

1. 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 AWS CLI créer les actions planifiées, utilisez la commande [put-scheduled-update-group-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-update-group-action.html). 

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](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-update-group-action.html) demande à Amazon EC2 Auto Scaling de mettre à jour la capacité minimale du groupe Auto Scaling spécifié à 17 h 00 UTC le 19 mai 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-start \
  --auto-scaling-group-name my-asg --start-time "2021-05-19T17:00:00Z" --minimum-capacity 3
```

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-name my-event-end \
  --auto-scaling-group-name my-asg --start-time "2021-05-20T01:00:00Z" --minimum-capacity 1
```

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
<a name="scheduling-recurring-actions"></a>

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\$1du\$1Mois] [Mois\$1de\$1Année] [Jour\$1de\$1Semaine]. 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
<a name="scheduling-scaling-see-also"></a>

Pour plus d’informations sur la gestion des actions planifiées, consultez la section [Utilisez des actions planifiées pour faire évoluer les services Amazon ECS](service-autoscaling-schedulescaling.md).

# Stratégie avancée de mise à l’échelle prédictive utilisant des métriques personnalisées pour Amazon ECS
<a name="predictive-scaling-custom-metrics"></a>

Dans une stratégie de mise à l’échelle prédictive, vous pouvez utiliser des métriques prédéfinies ou personnalisées. Les métriques personnalisées sont utiles lorsque les métriques prédéfinies (UC, mémoire, etc.) ne sont pas suffisantes pour décrire suffisamment la charge de votre application.

Lorsque vous créez une politique de dimensionnement prédictif avec des métriques personnalisées, vous pouvez spécifier d'autres CloudWatch métriques fournies par AWS. Vous pouvez également spécifier des métriques que vous définissez et publiez vous-même. Vous pouvez également utiliser les mathématiques des métriques pour agréger et transformer les métriques existantes en une nouvelle série chronologique qui AWS n'est pas automatiquement suivie. Un exemple consiste à combiner les valeurs de vos données en calculant de nouvelles sommes ou moyennes, ce qu’on appelle l’*agrégation*. Les données résultantes sont appelées un *agrégat*.

La section suivante contient les bonnes pratiques et des exemples de construction de la structure JSON pour la politique.

## Conditions préalables
<a name="predictive-scaling-custom-metrics-prerequisites"></a>

Pour ajouter des métriques personnalisées à votre politique de mise à l'échelle, vous devez disposer des autorisations `cloudwatch:GetMetricData`.

Pour spécifier vos propres indicateurs au lieu des indicateurs AWS fournis, vous devez d'abord les publier sur CloudWatch. Pour plus d'informations, consultez la section [Publication de métriques personnalisées](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) dans le *guide de CloudWatch l'utilisateur Amazon*. 

Si vous publiez vos propres métriques, veillez à publier les points de données à une fréquence minimale de cinq minutes. Les points de données sont extraits CloudWatch en fonction de la durée de la période dont ils ont besoin. Par exemple, la spécification des métriques de charge utilise des métriques horaires pour mesurer la charge de votre application. CloudWatch utilise vos données métriques publiées pour fournir une valeur de données unique pour toute période d'une heure en agrégeant tous les points de données avec des horodatages correspondant à chaque période d'une heure.

## Bonnes pratiques
<a name="predictive-scaling-custom-metrics-best-practices"></a>

Les bonnes pratiques suivantes peuvent vous aider à utiliser plus efficacement les métriques personnalisées :
+ La métrique la plus utile pour la spécification de la métrique de charge est une métrique qui représente la charge sur un groupe Auto Scaling dans son ensemble.
+ La métrique la plus utile pour la spécification de la métrique de mise à l’échelle est le débit moyen ou l’utilisation moyenne par tâche.
+ L'utilisation cible doit correspondre au type de métrique de mise à l'échelle. Pour une configuration de stratégie qui utilise l’utilisation de l’UC, il s’agit par exemple d’un pourcentage cible.
+ Si ces recommandations ne sont pas suivies, les valeurs futures prédites des séries temporelles seront probablement incorrectes. Pour vérifier que les données sont correctes, vous pouvez afficher les valeurs prévues dans la console. Sinon, après avoir créé votre politique de dimensionnement prédictif, inspectez les `LoadForecast` objets renvoyés par un appel à l'[GetPredictiveScalingForecast](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_GetPredictiveScalingForecast.html)API.
+ Nous vous recommandons vivement de configurer la mise à l’échelle prédictive en mode « prévision uniquement » de manière à pouvoir évaluer les prévisions avant que la mise à l’échelle prédictive ne commence à s’appliquer activement.

## Limitations
<a name="predicitve-scaling-custom-metrics-limitations"></a>
+ Vous pouvez interroger des points de données de 10 métriques au maximum dans une spécification métrique.
+ Dans le cadre de cette limite, une expression compte pour une métrique.

## Résolution des problèmes liés à une stratégie de mise à l’échelle prédictive avec des métriques personnalisées
<a name="predictive-scaling-custom-metrics-troubleshooting"></a>

Si un problème survient lors de l'utilisation de métriques personnalisées, nous vous recommandons d'effectuer les opérations suivantes :
+ Si vous rencontrez un problème lors d'un blue/green déploiement lors de l'utilisation d'une expression de recherche, assurez-vous d'avoir créé une expression de recherche qui recherche une correspondance partielle et non une correspondance exacte. Vérifiez également que la requête ne s’applique qu’aux groupes Auto Scaling exécutés dans l’application spécifique. Pour plus d'informations sur la syntaxe des expressions de recherche, consultez la section [Syntaxe des expressions de CloudWatch recherche](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html) dans le *guide de CloudWatch l'utilisateur Amazon*.
+ La [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)commande valide une expression lorsque vous créez votre politique de dimensionnement. Cependant, il est possible que cette commande ne parvienne pas à identifier la cause exacte des erreurs détectées. Pour résoudre les problèmes, corrigez les erreurs que vous recevez en réponse à une demande de [get-metric-data](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html)commande. Vous pouvez également résoudre les problèmes liés à l'expression depuis la CloudWatch console.
+ Vous devez spécifier `false` pour `ReturnData` si `MetricDataQueries` spécifie la fonction SEARCH() seule sans une fonction mathématique comme SUM(). Cela est dû au fait que les expressions de recherche peuvent renvoyer plusieurs séries temporelles et qu'une spécification métrique basée sur une expression ne peut renvoyer qu'une seule séries temporelles.
+ Toutes les métriques impliquées dans une expression de recherche doivent avoir la même résolution.

# Structure du JSON pour les métriques personnalisées de mise à l’échelle prédictive avec Amazon ECS
<a name="predictive-scaling-custom-metrics-example"></a>

La section suivante contient des exemples de configuration de la mise à l'échelle prédictive pour interroger des données CloudWatch. Il existe deux méthodes pour configurer cette option, qui affecteront le format utilisé pour créer le fichier JSON de votre politique de mise à l'échelle prédictive. Lorsque vous utilisez des mathématiques de métriques, le format du fichier JSON varie davantage en fonction des mathématiques de métriques effectuées.

1. Pour créer une politique qui obtient des données directement à partir d'autres CloudWatch indicateurs fournis par AWS ou sur lesquels vous publiez CloudWatch, voir[Exemple de politique de dimensionnement prédictif avec des mesures de charge et de dimensionnement personnalisées à l'aide du AWS CLI](#predictive-scaling-custom-metrics-example1).

## Exemple de politique de dimensionnement prédictif avec des mesures de charge et de dimensionnement personnalisées à l'aide du AWS CLI
<a name="predictive-scaling-custom-metrics-example1"></a>

Pour créer une politique de dimensionnement prédictive avec des métriques de charge et de dimensionnement personnalisées avec le AWS CLI, stockez les arguments pour `--predictive-scaling-configuration` dans un fichier JSON nommé`config.json`.

Vous commencez par ajouter des métriques personnalisées en remplaçant les valeurs remplaçables de l'exemple suivant par celles de vos métriques et de votre utilisation cible.

```
{
  "MetricSpecifications": [
    {
      "TargetValue": 50,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "scaling_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyUtilizationMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Average"
            }
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyLoadMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Sum"
            }
          }
        ]
      }
    }
  ]
}
```

Pour plus d'informations, consultez le [MetricDataQuery](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MetricDataQuery.html)manuel *Amazon EC2 Auto Scaling API Reference*.

**Note**  
Voici quelques ressources supplémentaires qui peuvent vous aider à trouver des noms de métriques, des espaces de noms, des dimensions et des statistiques pour les CloudWatch métriques :   
Pour plus d'informations sur les métriques disponibles pour les AWS services, consultez les [AWS services qui publient CloudWatch des métriques](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) dans le *guide de CloudWatch l'utilisateur Amazon*.
Pour obtenir le nom, l'espace de noms et les dimensions exacts (le cas échéant) d'une CloudWatch métrique comportant le AWS CLI, consultez [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html). 

Pour créer cette politique, exécutez la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)commande en utilisant le fichier JSON comme entrée, comme illustré dans l'exemple suivant.

```
aws application-autoscaling put-scaling-policy --policy-name my-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

Si elle aboutit, cette commande renvoie l'Amazon Resource Name (ARN) de la stratégie.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy",
  "Alarms": []
}
```

# Utiliser des expressions mathématiques de métrique
<a name="predictive-scaling-math-expression"></a>

La section suivante fournit des informations sur l’utilisation des mathématiques de métriques avec les stratégies de mise à l’échelle prédictive dans votre stratégie. 

## Comprendre les mathématiques de métrique
<a name="predictive-scaling-custom-metrics-math"></a>

Si vous souhaitez simplement agréger des données métriques existantes, les mathématiques CloudWatch métriques vous évitent les efforts et les coûts liés à la publication d'une autre métrique dans CloudWatch. Vous pouvez utiliser n'importe quelle métrique qui AWS fournit, et vous pouvez également utiliser des métriques que vous définissez dans le cadre de vos applications.

Pour plus d'informations, consultez la section [Utilisation des mathématiques métriques](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) dans le *guide de CloudWatch l'utilisateur Amazon*. 

Si vous choisissez d'utiliser une expression mathématique de métrique dans votre politique de mise à l'échelle prédictive, tenez compte des points suivants :
+ Les opérations mathématiques métriques utilisent les points de données d'une combinaison unique de keys/value paires de métriques de nom, d'espace de noms et de dimensions. 
+ Vous pouvez utiliser n'importe quel opérateur arithmétique (\$1 - \$1/^), fonction statistique (telle que AVG ou SUM) ou toute autre fonction compatible. CloudWatch 
+ Vous pouvez utiliser à la fois des métriques et les résultats d'autres expressions mathématiques dans les formules de l'expression mathématique. 
+ Vos expressions mathématiques de métrique peuvent être composées de différentes agrégations. Cependant, une bonne pratique pour le résultat final de l'agrégation consiste à utiliser `Average` pour la métrique de mise à l'échelle et `Sum` pour la métrique de charge.
+ Toutes les expressions utilisées dans une spécification de métrique doivent finalement retourner une seule séries temporelles.

Pour utiliser les mathématiques de métrique, procédez comme suit :
+ Choisissez un ou plusieurs CloudWatch indicateurs. Créez ensuite l'expression. Pour plus d'informations, consultez la section [Utilisation des mathématiques métriques](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) dans le *guide de CloudWatch l'utilisateur Amazon*. 
+ Vérifiez que l'expression mathématique de la métrique est valide à l'aide de la CloudWatch console ou de l' CloudWatch[GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

## Exemple de politique de mise à l'échelle prédictive qui combine des métriques à l'aide des mathématiques de métriques (AWS CLI)
<a name="custom-metrics-ex2"></a>

Parfois, au lieu de spécifier la métrique directement, vous devrez d'abord traiter ses données d'une certaine manière. Par exemple, une application peut extraire le travail d'une file d'attente Amazon SQS et vous souhaitez utiliser le nombre d'éléments dans la file d'attente comme critère de mise à l'échelle prédictive. Le nombre de messages dans la file d'attente ne définit pas uniquement le nombre d'instances dont vous avez besoin. Par conséquent, un travail supplémentaire est nécessaire pour créer une métrique qui peut être utilisée pour calculer le backlog par instance.

Ce qui suit est un exemple de politique de mise à l'échelle prédictive pour ce scénario. Il spécifie les métriques de mise à l'échelle et de charge qui sont basées sur la métrique `ApproximateNumberOfMessagesVisible` d'Amazon SQS, qui est le nombre de messages disponibles pour la récupération de la file d'attente. Il utilise également la métrique `GroupInServiceInstances` d'Amazon EC2 Auto Scaling et une expression mathématique pour calculer le backlog par instance pour la métrique de mise à l'échelle.

```
aws application-autoscaling put-scaling-policy --policy-name my-sqs-custom-metrics-policy \
  --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
  --service-namespace ecs \
  --resource-id service/MyCluster/test \
  "MetricSpecifications": [
    {
      "TargetValue": 100,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Label": "Get the queue size (the number of messages waiting to be processed)",
            "Id": "queue_size",
            "MetricStat": {
              "Metric": {
                "MetricName": "ApproximateNumberOfMessagesVisible",
                "Namespace": "AWS/SQS",
                "Dimensions": [
                  {
                    "Name": "QueueName",
                    "Value": "my-queue"
                  }
                ]
              },
              "Stat": "Sum"
            },
            "ReturnData": false
          },
          {
            "Label": "Get the group size (the number of running instances)",
            "Id": "running_capacity",
            "MetricStat": {
              "Metric": {
                "MetricName": "GroupInServiceInstances",
                "Namespace": "AWS/AutoScaling",
                "Dimensions": [
                  {
                    "Name": "AutoScalingGroupName",
                    "Value": "my-asg"
                  }
                ]
              },
              "Stat": "Sum"
            },
            "ReturnData": false
          },
          {
            "Label": "Calculate the backlog per instance",
            "Id": "scaling_metric",
            "Expression": "queue_size / running_capacity",
            "ReturnData": true
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "ApproximateNumberOfMessagesVisible",
                "Namespace": "AWS/SQS",
                "Dimensions": [
                  {
                    "Name": "QueueName",
                    "Value": "my-queue"
                  }
                ],
              },
              "Stat": "Sum"
            },
            "ReturnData": true
          }
        ]
      }
    }
  ]
}
```

L'exemple renvoie l'ARN de la politique.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-sqs-custom-metrics-policy",
  "Alarms": []
}
```