

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.

# Politique de suivi des cibles et d'échelonnement pour Application Auto Scaling
<a name="application-auto-scaling-target-tracking"></a>

Une stratégie de mise à l’échelle par suivi des cibles permet de mettre automatiquement à l’échelle votre application sur la base d’une valeur métrique cible. Cela permet à votre application de maintenir des performances et une rentabilité optimales sans intervention manuelle.

Avec le suivi des cibles, vous sélectionnez une métrique et une valeur cible pour représenter le niveau d’utilisation ou de débit moyen idéal pour votre application. Application Auto Scaling crée et gère les CloudWatch alarmes qui déclenchent des événements de dimensionnement lorsque la métrique s'écarte de la cible. Cela est similaire à la façon dont un thermostat maintient une température cible.

Supposons par exemple que vous avez une application Web qui s'exécute actuellement sur un parc d’instances Spot et vous souhaitez que l'utilisation de l'UC de la flotte reste à environ 50 % lorsque la charge sur l'application change. Vous disposez ainsi d'une plus grande capacité pour gérer les pics de trafic sans avoir à maintenir une quantité excessive des ressources inutilisées. 

Vous pouvez répondre à ce besoin en créant une stratégie de suivi des objectifs et d'échelonnement qui cible une utilisation moyenne du CPU de 50 pour cent. Application Auto Scaling monte ensuite en puissance (augmente la capacité) lorsque le processeur dépasse 50 % pour faire face à une charge accrue. Il effectuera une mise à l’échelle horizontale (diminution de la capacité) lorsque la capacité du processeur sera inférieure à 50 %, afin d’optimiser les coûts pendant les périodes de faible utilisation.

Les politiques de suivi des cibles éliminent le besoin de définir manuellement les CloudWatch alarmes et les ajustements de dimensionnement. Application Auto Scaling gère cela automatiquement en fonction de la cible que vous avez définie.

Vous pouvez établir des stratégies de suivi des cibles en fonction d’indicateurs prédéfinis ou personnalisés :
+ **Métriques prédéfinies** : métriques fournies par Application Auto Scaling, telles que l’utilisation moyenne du processeur ou le nombre moyen de requêtes par cible.
+ **Mesures personnalisées** : vous pouvez utiliser les mathématiques des métriques pour combiner des métriques, tirer parti des métriques existantes ou utiliser vos propres métriques personnalisées publiées sur. CloudWatch

Choisissez une métrique qui change de manière inversement proportionnelle à un changement dans la capacité de votre cible évolutive. Donc, si vous doublez la capacité, la métrique diminue de 50 %. Cela permet aux données métriques de déclencher avec précision des événements de mise à l’échelle proportionnelle.

**Topics**
+ [Comment fonctionne le suivi des cibles](target-tracking-scaling-policy-overview.md)
+ [Création d'une politique de suivi des cibles et d'échelonnement](create-target-tracking-policy-cli.md)
+ [Suppression d'une politique de suivi des cibles et d'échelonnement](delete-target-tracking-policy.md)
+ [Utilisation des mathématiques appliquées aux métriques](application-auto-scaling-target-tracking-metric-math.md)

# Comment fonctionne le dimensionnement du suivi des cibles pour Application Auto Scaling
<a name="target-tracking-scaling-policy-overview"></a>

Cette rubrique décrit le fonctionnement du dimensionnement du suivi des cibles et présente les éléments clés d'une politique de dimensionnement du suivi des cibles.

**Topics**
+ [Comment ça marche](#target-tracking-how-it-works)
+ [Choisissez métriques](#target-tracking-choose-metrics)
+ [Définition de la valeur cible](#target-tracking-define-target-value)
+ [Définir les temps de stabilisation](#target-tracking-cooldown)
+ [Considérations](#target-tracking-considerations)
+ [Plusieurs stratégies de dimensionnement](#target-tracking-multiple-scaling-policies)
+ [Commandes couramment utilisées](#target-tracking-policy-commonly-used-commands)
+ [Ressources connexes](#target-tracking-related-resources)
+ [Limitations](#target-tracking-limitations)

## Comment ça marche
<a name="target-tracking-how-it-works"></a>

Pour utiliser le dimensionnement du suivi des cibles, vous devez créer une politique de dimensionnement du suivi des cibles et spécifier les éléments suivants :
+ **Métrique** : CloudWatch métrique à suivre, telle que l'utilisation moyenne du processeur ou le nombre moyen de demandes par cible.
+ **Valeur cible** : la valeur cible de la métrique, telle que 50 % d’utilisation du processeur ou 1 000 demandes par cible et par minute.

Application Auto Scaling crée et gère les CloudWatch alarmes qui invoquent la politique de dimensionnement et calcule l'ajustement de dimensionnement en fonction de la métrique et de la valeur cible. Il ajoute et supprime de la capacité en fonction des besoins pour maintenir la métrique à la valeur cible spécifiée ou à une valeur proche de celle-ci. 

Lorsque la métrique est supérieure à la valeur cible, Application Auto Scaling monte en puissance en ajoutant de la capacité afin de réduire la différence entre la valeur de la métrique et celle cible. Lorsque la métrique est inférieure à la valeur cible, Application Auto Scaling met à l’échelle de façon horizontale en supprimant de la capacité.

Les activités de mise à l’échelle sont effectuées avec des temps de stabilisation entre eux afin d’éviter des fluctuations rapides de capacité. Vous pouvez éventuellement configurer les temps de stabilisation de votre stratégie de mise à l’échelle. 

Le diagramme suivant montre un aperçu du fonctionnement d'une politique de mise à l'échelle du suivi de cible lorsque la configuration est terminée.

![\[Schéma d'ensemble d'une politique de dimensionnement du suivi des cibles\]](http://docs.aws.amazon.com/fr_fr/autoscaling/application/userguide/images/target-tracking-scaling-policy.png)


Il convient de noter qu’une stratégie de mise à l’échelle de suivi des cibles est plus agressive pour ajouter de la capacité lorsque l’utilisation augmente que pour supprimer de la capacité lorsque l’utilisation diminue. Par exemple, si la métrique spécifiée de la politique atteint sa valeur cible, la politique suppose que votre application est déjà massivement chargée. Elle répond en ajoutant une capacité proportionnelle à la valeur de la métrique aussi vite que possible. Plus la métrique est élevée, plus il y a de capacité ajoutée.

Lorsque la métrique tombe en dessous de la valeur cible, la politique ne s'adaptera pas si elle calcule que la suppression d'une unité de capacité minimale ramènerait probablement la métrique au-dessus de la valeur cible. Dans ce cas, elle ralentit donc la mise à l'échelle en supprimant la capacité uniquement lorsque l'utilisation dépasse un seuil suffisamment inférieur à la valeur cible (généralement plus de 10 % de moins) pour que l'utilisation soit considérée comme ayant ralenti. L'intention de ce comportement plus conservateur est de s'assurer que la suppression de la capacité ne se produit que lorsque l'application ne connaît plus une demande au même niveau élevé qu'auparavant.

## Choisissez métriques
<a name="target-tracking-choose-metrics"></a>

Vous pouvez créer des stratégies de suivi des objectifs de la mise à l'échelle avec des métriques prédéfinies ou des métriques personnalisées. 

Lorsque vous créez une politique de mise à l'échelle de suivi des cibles avec une métrique prédéfinie, vous choisissez une métrique dans la liste de métriques prédéfinies dans [Métrique prédéfinie pour la politique de mise à l'échelle de suivi des cibles](monitoring-cloudwatch.md#predefined-metrics). 

Gardez les points suivants à l'esprit lorsque vous choisissez une métrique :
+ Toutes les métriques personnalisées ne fonctionnent pas pour le suivi des cibles. La métrique doit être une métrique d'utilisation valide et décrire le degré d'occupation d'une cible évolutive. La valeur de la métrique doit augmenter et diminuer proportionnellement à la capacité de la cible évolutive pour que les données de la métrique puissent être utilisées afin d'augmenter ou réduire proportionnellement la cible évolutive. 
+ Pour utiliser la métrique `ALBRequestCountPerTarget`, vous devez spécifier le paramètre `ResourceLabel` permettant d'identifier le groupe cible associé à la métrique. 
+ Lorsqu'une métrique émet des valeurs réelles de 0 à CloudWatch (par exemple,`ALBRequestCountPerTarget`), Application Auto Scaling peut passer à 0 lorsqu'aucun trafic n'est acheminé vers votre application pendant une période prolongée. Pour que la capacité de votre cible évolutive diminue jusqu'à 0 lorsqu'aucune demande ne lui est acheminée, la capacité minimale de la cible évolutive doit être définie sur 0. 
+ Au lieu de publier de nouvelles métriques à utiliser dans votre politique de mise à l'échelle, vous pouvez utiliser les calculs de métriques pour combiner des métriques existantes. Pour de plus amples informations, veuillez consulter [Créer une stratégie de mise à l'échelle du suivi des cibles pour Application Auto Scaling à l'aide des mathématiques appliquées aux métriques.](application-auto-scaling-target-tracking-metric-math.md).
+ Pour savoir si le service que vous utilisez prend en charge la spécification d’une métrique personnalisée dans la console du service, consultez la documentation de ce service. 
+ Nous vous recommandons d'utiliser des mesures disponibles à des intervalles d'une minute pour vous aider à évoluer plus rapidement en fonction des changements d'utilisation. Le suivi des cibles évaluera les métriques agrégées avec une granularité d'une minute pour toutes les métriques prédéfinies et les métriques personnalisées, mais la métrique sous-jacente peut publier des données moins fréquemment. Par exemple, toutes les métriques Amazon EC2 sont envoyées toutes les cinq minutes par défaut, mais elles sont configurables à une minute (ce que l'on appelle la surveillance détaillée). Ce choix appartient à chaque service. La plupart essaient d'utiliser le plus petit intervalle possible.

## Définition de la valeur cible
<a name="target-tracking-define-target-value"></a>

Lorsque vous créez une politique de suivi de la cible, vous devez spécifier une valeur cible. La valeur cible représente l'utilisation ou le débit moyen optimal pour votre application. Afin d'utiliser les ressources de manière efficiente, définissez une valeur cible aussi élevée que possible avec un tampon raisonnable en cas d'augmentation inattendue du trafic. Lorsque votre application est mise à l'échelle de manière optimale pour un flux de trafic normal, la valeur de métrique réelle doit être égale ou sensiblement inférieure à la valeur cible.

Lorsqu'une stratégie de dimensionnement est basée sur le débit, tel que le nombre de demandes par cible pour un Application Load Balancer, les I/O réseau ou d'autres métriques de nombre, la valeur cible représente le débit moyen optimal depuis une seule entité (comme une seule cible de votre groupe cible Application Load Balancer), pendant une période d'une minute.

## Définir les temps de stabilisation
<a name="target-tracking-cooldown"></a>

Vous pouvez éventuellement définir des temps de stabilisation dans votre politique de mise à l'échelle de suivi des cibles.

Le temps de stabilisation spécifie la durée pendant laquelle la politique de mise à l'échelle attend qu'une activité de mise à l'échelle précédente prenne effet.

Il existe deux types de temps de stabilisation :
+ Avec le *temps de stabilisation de montée en charge*, l'intention est de monter continuellement en charge (mais sans excès). Une fois qu'Application Auto Scaling a réussi une montée en puissance à l'aide d'une politique de mise à l'échelle par étape, l'application commence à calculer le temps de stabilisation. La politique de mise à l'échelle n'augmente pas à nouveau la capacité souhaitée, sauf si une plus grande montée en puissance parallèle est déclenchée ou si le temps de stabilisation est écoulé. Tandis que le temps de stabilisation de la montée en puissance s'applique, la capacité ajoutée par l'activité de mise à l'échelle initiale est calculée dans le cadre de la capacité souhaitée pour la prochaine activité de montée en puissance.
+ Avec le *temps de stabilisation de mise à l'échelle horizontale*, l'intention est de procéder à une mise à l'échelle horizontale de façon conservatrice pour protéger la disponibilité de votre application, de sorte que les activités de mise à l'échelle horizontale sont bloquées jusqu'à ce que le temps de stabilisation de la mise à l'échelle horizontale ait expiré. Toutefois, si une autre alarme déclenche une activité de montée en charge au cours du temps de stabilisation de la diminution de charge, Application Auto Scaling monte immédiatement en charge la cible. Dans ce cas, le temps de stabilisation de la mise à l'échelle horizontale s'arrête et ne se termine pas.

Chaque temps de stabilisation est mesuré en secondes et s'applique uniquement aux activités de mise à l'échelle liées à la stratégie de mise à l'échelle . Pendant un temps de stabilisation, lorsqu'une action planifiée démarre à l'heure prévue, elle peut déclencher une activité de mise à l'échelle immédiatement sans attendre l'expiration du temps de stabilisation.

Vous pouvez commencer par les valeurs par défaut, qui peuvent être affinées ultérieurement. Par exemple, vous devrez peut-être augmenter un temps de stabilisation pour éviter que votre stratégie de mise à l'échelle Suivi de la cible ne soit pas trop agressive face aux modifications survenant sur de courtes périodes. 

**Valeurs par défaut**

Application Auto Scaling fournit une valeur par défaut de 600 ElastiCache et une valeur par défaut de 300 pour les cibles évolutives suivantes :
+ WorkSpaces Flottes d'applications
+ Clusters DB Aurora
+ Services ECS
+ Clusters Neptune
+ SageMaker Variantes de terminaux AI
+ SageMaker Composants d'inférence AI
+ SageMaker Concurrence provisionnée sans serveur AI
+ Spot Fleets
+ Piscine de WorkSpaces
+ Ressources personnalisées

Pour toutes les autres cibles évolutives, la valeur par défaut est 0 ou nulle :
+ Classification de documents et points de terminaison de module de reconnaissance d’entité Amazon Comprehend
+ Tables DynamoDB et index secondaires globaux
+ Tables Amazon Keyspaces
+ Simultanéité allouée Lambda
+ Stockage Amazon MSK Broker

Les valeurs nulles sont traitées de la même manière que les valeurs 0 lorsqu'Application Auto Scaling évalue le temps de stabilisation.

Vous pouvez mettre à jour toutes les valeurs par défaut, y compris les valeurs nulles, pour définir vos propres temps de stabilisation.

## Considérations
<a name="target-tracking-considerations"></a>

Les points suivants s'appliquent lors de l'utilisation des politiques de suivi des objectifs et d'échelonnement
+ Ne créez pas, ne modifiez ni ne supprimez les CloudWatch alarmes utilisées avec une politique de dimensionnement du suivi des cibles. Application Auto Scaling crée et gère les CloudWatch alarmes associées à vos politiques de dimensionnement du suivi des cibles et les supprime lorsqu'elles ne sont plus nécessaires.
+ S'il manque des points de données à la métrique, l'état de l' CloudWatch alarme passe à`INSUFFICIENT_DATA`. Dans ce cas, Application Auto Scaling ne peut pas mettre à l'échelle votre cible capable d’être mise à l’échelle tant que de nouveaux points de données ne sont pas trouvés. Pour plus d'informations, consultez la [section Configuration de la façon dont les CloudWatch alarmes traitent les données manquantes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) dans le *guide de CloudWatch l'utilisateur Amazon*.
+ Si la métrique est rarement rapportée, les calculs de métriques peuvent s'avérer utiles. Par exemple, pour utiliser les valeurs les plus récentes, utilisez la fonction `FILL(m1,REPEAT)` là où `m1` est la métrique.
+ Vous pouvez constater des écarts entre la valeur cible et les points de données de métrique réels. Ceci est dû au fait qu'Application Auto Scaling agit toujours avec prudence en effectuant un arrondi vers le haut ou vers le bas quand il détermine la capacité à ajouter ou à enlever. Cela l'empêche d'ajouter une capacité insuffisante ou de retirer trop de capacité. Toutefois, pour une cible scalable avec une faible capacité, les points de données de métrique réels peuvent sembler éloignés de la valeur cible. 

  Supposons, par exemple, que vous définissez une valeur cible de 50 % pour l'utilisation du processeur et que votre groupe Auto Scaling dépasse ensuite la cible. Nous pouvons déterminer que l'ajout de 1,5 instance diminuera l'utilisation de l'UC d'environ 50 %. Comme il n'est pas possible d'ajouter 1,5 instance, nous arrondissons à la valeur supérieure et ajoutons deux instances. Cela peut diminuer l'utilisation de la CPU à une valeur inférieure à 50 % mais cela garantit que votre application dispose de suffisamment de ressources pour le prendre en charge. De même, si nous déterminons que la suppression de 0,5 instance augmente l'utilisation de votre processeur à plus de 50 %, nous choisirons de ne pas procéder à une mise à l'échelle tant que la métrique ne sera pas suffisamment basse pour que nous puissions penser que la mise à l'échelle ne provoquera pas d'oscillation. 

  Pour une cible scalable avec une plus grande capacité, l'ajout ou le retrait de capacité entraîne moins d'écarts entre la valeur cible et les points de données de métrique réels.
+ Une politique de suivi des objectifs et d'échelonnement suppose qu'elle doit effectuer une montée en puissance ; lorsque la métrique spécifiée est au-dessus de la valeur cible. Vous ne pouvez pas utiliser une politique de suivi des objectifs et d'échelonnement pour effectuer une montée en puissance lorsque la métrique spécifiée est en dessous de la valeur cible.

## Plusieurs stratégies de dimensionnement
<a name="target-tracking-multiple-scaling-policies"></a>

Vous pouvez avoir plusieurs stratégies de dimensionnement Suivi de la cible pour une cible évolutive, dans la mesure où chacune d'elles utilise une métrique différente. L'objectif d'Application Auto Scaling est de toujours donner la priorité à la disponibilité, afin que son comportement diffère selon que les politiques de suivi des cibles et d'échelonnement sont prêtes pour une augmentation ou une diminution de la capacité. Il augmentera la taille de la cible scalable si une des stratégies Suivi de la cible est prête pour une augmentation de taille, mais la diminuera uniquement si toutes les stratégies Suivi de la cible (avec la portion de diminution en charge activée) sont prêtes pour une diminution de taille. 

Si plusieurs stratégies de mise à l’échelle indiquent simultanément à la cible capable d’être mise à l’échelle de procéder à une montée en puissance ou à une mise à l’échelle horizontale, Application Auto Scaling effectue la mise à l'échelle en fonction de la stratégie qui fournit la plus grande capacité à la fois pour la mise à l’échelle horizontale et la montée en puissance. Cela vous offre une plus grande flexibilité pour couvrir plusieurs scénarios et pouvoir toujours disposer d'une capacité suffisante pour traiter vos charges de travail. 

Vous pouvez désactiver la portion de mise à l'échelle horizontale d'une politique de mise à l'échelle de suivi des cibles pour utiliser une méthode différente de mise à l'échelle horizontale par rapport à la montée en puissance. Vous pouvez, par exemple, utiliser une stratégie de mise à l'échelle par étapes pour effectuer une diminution en charge tout en utilisant une stratégie de dimensionnement Suivi de la cible pour effectuer une montée en charge. 

Toutefois, nous vous recommandons d'être prudent lorsque vous utilisez des politiques de suivi des objectifs et d'échelonnement avec des politiques de mise à l'échelle par étapes, car les conflits entre ces politiques peuvent entraîner un comportement indésirable. Par exemple, si la politique de mise à l'échelle par étapes lance une activité de mise à l'échelle horizontale avant que la politique de suivi des objectifs et d'échelonnement ne soit prête pour la mise à l'échelle horizontale, l'activité de mise à l'échelle horizontale ne sera pas bloquée. Une fois l'activité de diminution en charge terminée, la stratégie de dimensionnement Suivi de la cible peut demander à la cible évolutive d'effectuer une montée en charge. 

Pour les charges de travail de nature cyclique, vous avez également la possibilité d'automatiser les modifications de capacité sur une planification à l'aide d'une mise à l'échelle planifiée. Pour chaque action planifiée, une nouvelle valeur de capacité minimale et une nouvelle valeur de capacité maximale peuvent être définies. Ces valeurs constituent les limites de la stratégie de mise à l'échelle. La combinaison de la mise à l'échelle planifiée et de la mise à l'échelle Suivi des cibles peut aider à réduire l'impact d'une forte augmentation des niveaux d'utilisation, lorsque la capacité est nécessaire immédiatement.

## Commandes couramment utilisées pour la création, la gestion et la suppression des politiques de mise à l'échelle
<a name="target-tracking-policy-commonly-used-commands"></a>

Les commandes couramment utilisées pour travailler avec les politiques de mise à l'échelle sont les suivantes : 
+ [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)pour enregistrer AWS ou personnaliser des ressources en tant que cibles évolutives (ressource qu'Application Auto Scaling peut redimensionner), et pour suspendre et reprendre le dimensionnement. 
+ [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)pour ajouter ou modifier des politiques de dimensionnement pour une cible évolutive existante.
+  [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)pour renvoyer des informations sur les activités de mise à l'échelle dans une AWS région. 
+ [describe-scaling-policies](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-policies.html)pour renvoyer des informations sur les politiques de dimensionnement dans une AWS région.
+ [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html)pour supprimer une politique de dimensionnement. 

## Ressources connexes
<a name="target-tracking-related-resources"></a>

Pour en savoir plus sur la création de politiques de suivi des cibles et de mise à l'échelle pour les groupes Auto Scaling, consultez les [Politiques de suivi des cibles et de mise à l'échelle pour Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) dans le *Guide de l'utilisateur Amazon EC2 Auto Scaling*. 

## Limitations
<a name="target-tracking-limitations"></a>

Les limitations sont les suivantes lors de l'utilisation des politiques de suivi des cibles et d'échelonnement :
+ La cible évolutive ne peut pas être un cluster Amazon EMR. Les politiques de suivi des cibles et d'échelonnement ne sont pas prises en charge pour Amazon EMR.
+ Lorsqu'un cluster Amazon MSK est la cible évolutive, la diminution de charge est désactivée et ne peut pas être activée.
+ Vous ne pouvez pas utiliser les opérations de `PutScalingPolicy` l'API `RegisterScalableTarget` or pour mettre à jour un plan de AWS Auto Scaling dimensionnement.
+ L'accès à la console pour consulter, ajouter, mettre à jour ou supprimer les politiques de suivi des cibles et de mise à l'échelle des ressources évolutives dépend de la ressource que vous utilisez. Pour de plus amples informations, veuillez consulter [Services AWS que vous pouvez utiliser avec Application Auto Scaling](integrated-services-list.md).

# Créez une politique de dimensionnement du suivi des cibles pour Application Auto Scaling à l'aide du AWS CLI
<a name="create-target-tracking-policy-cli"></a>

Cet exemple utilise des AWS CLI commandes pour créer une politique de rayonnage cible pour un parc Amazon EC2 Spot. Pour une autre cible évolutive, spécifiez son espace de noms dans`--service-namespace`, sa dimension évolutive dans `--scalable-dimension` et son ID de ressource dans`--resource-id`.

Lorsque vous utilisez le AWS CLI, n'oubliez pas que vos commandes s'exécutent dans la Région AWS configuration adaptée à votre profil. Si vous souhaitez exécuter les commandes dans une autre région, modifiez la région par défaut pour votre profil, ou utilisez le paramètre `--region` avec la commande.

**Topics**
+ [Étape 1 : enregistrer une cible évolutive](#target-tracking-register-scalable-target)
+ [Étape 2 : créer une politique de suivi des objectifs et d’échelonnement](#create-target-tracking-policy)
+ [Étape 3 : Décrire les politiques de dimensionnement du suivi des cibles](#describe-target-tracking-policy)

## Étape 1 : enregistrer une cible évolutive
<a name="target-tracking-register-scalable-target"></a>

Si vous ne l'avez pas encore fait, enregistrez la cible évolutive. Utilisez la [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)commande pour enregistrer une ressource spécifique dans le service cible en tant que cible évolutive. L'exemple suivant enregistre une demande de parc d'instances Spot avec Application Auto Scaling. Application Auto Scaling peut mettre à l'échelle le nombre d'instances dans le parc d'instances Spot à un minimum de 2 instances et un maximum de 10. Remplacez chaque *user input placeholder* par vos propres informations.

**Linux, macOS ou Unix**

```
aws application-autoscaling register-scalable-target --service-namespace ec2 \
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
  --min-capacity 2 --max-capacity 10
```

**Windows**

```
aws application-autoscaling register-scalable-target --service-namespace ec2 ^
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^
  --min-capacity 2 --max-capacity 10
```

**Output**  
En cas de réussite, cette commande renvoie l'ARN de la cible évolutive. Voici un exemple de sortie.

```
{
    "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
}
```

## Étape 2 : créer une politique de suivi des objectifs et d’échelonnement
<a name="create-target-tracking-policy"></a>

Pour créer une politique de dimensionnement du suivi des cibles, vous pouvez utiliser les exemples suivants pour vous aider à démarrer.

**Pour créer une politique de suivi des objectifs et d'échelonnement**

1. Utilisez la `cat` commande suivante pour stocker une valeur cible pour votre politique de dimensionnement et une spécification de métrique prédéfinie dans un fichier JSON nommé `config.json` dans votre répertoire de base. Voici un exemple de configuration de suivi des cibles qui maintient l'utilisation moyenne du processeur à 50 %.

   ```
   $ cat ~/config.json
   {
     "TargetValue": 50.0,
     "PredefinedMetricSpecification": 
       {
         "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization"
       }
   }
   ```

   Pour plus d'informations, reportez-vous [PredefinedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html)à la section *Application Auto Scaling API Reference*.

   Vous pouvez également utiliser une métrique personnalisée pour la mise à l’échelle en créant une spécification de métrique personnalisée et en ajoutant des valeurs pour chaque paramètre à partir de CloudWatch. Voici un exemple de configuration de suivi des cibles qui maintient l'utilisation moyenne de la métrique spécifiée à 100.

   ```
   $ cat ~/config.json
   {
      "TargetValue": 100.0,
      "CustomizedMetricSpecification":{
         "MetricName": "MyUtilizationMetric",
         "Namespace": "MyNamespace",
         "Dimensions": [
            {
               "Name": "MyOptionalMetricDimensionName",
               "Value": "MyOptionalMetricDimensionValue"
            }
         ],
         "Statistic": "Average",
         "Unit": "Percent"
      }
   }
   ```

   Pour plus d'informations, reportez-vous [CustomizedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html)à la section *Application Auto Scaling API Reference*.

1. Utilisez la commande [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) suivante avec le fichier `config.json` que vous avez créé pour créer une stratégie de dimensionnement nommée `cpu50-target-tracking-scaling-policy`.

   **Linux, macOS ou Unix**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ec2 \
     --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
     --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
     --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling \
     --target-tracking-scaling-policy-configuration file://config.json
   ```

   **Windows**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ec2 ^
     --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
     --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^
     --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling ^
     --target-tracking-scaling-policy-configuration file://config.json
   ```

**Output**  
En cas de succès, cette commande renvoie les noms ARNs et des deux CloudWatch alarmes créées en votre nom. Voici un exemple de sortie.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:resource/ec2/spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE:policyName/cpu50-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
               "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
               "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
           }
       ]
   }
   ```

## Étape 3 : Décrire les politiques de dimensionnement du suivi des cibles
<a name="describe-target-tracking-policy"></a>

Vous pouvez décrire toutes les stratégies de dimensionnement pour l'espace de noms de service à l'aide de la commande [describe-scaling-policies](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-policies.html) suivante.

```
aws application-autoscaling describe-scaling-policies --service-namespace ec2
```

Vous pouvez filtrer les résultats pour découvrir uniquement les stratégies de dimensionnement Suivi de la cible à l'aide du paramètre `--query`. Pour plus d'informations sur la syntaxe de `query`, consultez [Contrôle de la sortie de commande de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html) dans le *Guide de l'utilisateur de la AWS Command Line Interface *.

**Linux, macOS ou Unix**

```
aws application-autoscaling describe-scaling-policies --service-namespace ec2 \
  --query 'ScalingPolicies[?PolicyType==`TargetTrackingScaling`]'
```

**Windows**

```
aws application-autoscaling describe-scaling-policies --service-namespace ec2 ^
  --query "ScalingPolicies[?PolicyType==`TargetTrackingScaling`]"
```

**Output**  
Voici un exemple de sortie.

```
[
    {
        "PolicyARN": "PolicyARN",
        "TargetTrackingScalingPolicyConfiguration": {
            "PredefinedMetricSpecification": {
                "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization"
            },
            "TargetValue": 50.0
        },
        "PolicyName": "cpu50-target-tracking-scaling-policy",
        "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
        "ServiceNamespace": "ec2",
        "PolicyType": "TargetTrackingScaling",
        "ResourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
        "Alarms": [
            {
                "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
                "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
            },
            {
                "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
                "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
            }
        ],
        "CreationTime": 1515021724.807
    }
]
```

# Supprimez une politique de dimensionnement du suivi des cibles pour Application Auto Scaling à l'aide du AWS CLI
<a name="delete-target-tracking-policy"></a>

Lorsque vous avez terminé avec une stratégie de suivi de la cible, vous pouvez la supprimer à l'aide de la commande [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html).

La commande suivante supprime la stratégie de dimensionnement Suivi de la cible indiquée pour la demande de parc d'instances Spot. Il supprime également les CloudWatch alarmes créées en votre nom par Application Auto Scaling.

**Linux, macOS ou Unix**

```
aws application-autoscaling delete-scaling-policy --service-namespace ec2 \
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
  --policy-name cpu50-target-tracking-scaling-policy
```

**Windows**

```
aws application-autoscaling delete-scaling-policy --service-namespace ec2 ^
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^
  --policy-name cpu50-target-tracking-scaling-policy
```

# Créer une stratégie de mise à l'échelle du suivi des cibles pour Application Auto Scaling à l'aide des mathématiques appliquées aux métriques.
<a name="application-auto-scaling-target-tracking-metric-math"></a>

À l'aide des 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 dans la console CloudWatch et les ajouter à des 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*. 

Les considérations suivantes s'appliquent aux expressions mathématiques appliquées aux métriques :
+ Vous pouvez interroger n'importe quelle CloudWatch métrique disponible. Chaque métrique est une combinaison unique du nom de la métrique, de l'espace de noms et de zéro dimension ou plus. 
+ 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. 
+ Toutes les expressions utilisées dans une spécification de métrique doivent finalement retourner une seule séries temporelles.
+ Vous pouvez vérifier la validité d'une expression mathématique métrique à l'aide de la CloudWatch console ou de l' CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

**Topics**
+ [Exemple : file Amazon SQS des éléments en attente par tâche](#metric-math-sqs-queue-backlog)
+ [Limitations](#metric-math-limitations)

## Exemple : file Amazon SQS des éléments en attente par tâche
<a name="metric-math-sqs-queue-backlog"></a>

Pour calculer la file Amazon SQS des éléments en attente par tâche, prenez le nombre approximatif de messages disponibles à la récupération dans la file d'attente et divisez ce nombre par le nombre de tâches Amazon ECS en cours d'exécution dans le service. Pour plus d'informations, consultez [Amazon Elastic Container Service (ECS) Auto Scaling using custom metrics](https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-ecs-auto-scaling-using-custom-metrics/) sur le AWS Compute Blog.

La logique de l'expression est la suivante :

 `sum of (number of messages in the queue)/(number of tasks that are currently in the RUNNING state)`

Vos informations CloudWatch métriques sont alors les suivantes.


| ID | CloudWatch métrique | Statistique | Period | 
| --- | --- | --- | --- | 
| m1 | ApproximateNumberOfMessagesVisible | Somme | 1 minute | 
| m2 | RunningTaskCount | Moyenne | 1 minute | 

Votre ID de mathématiques appliquées aux métriques et votre expression sont les suivantes :


| ID | Expression | 
| --- | --- | 
| e1 | (m1)/(m2) | 

Le schéma suivant illustre l'architecture de cette métrique :

![\[Application Auto Scaling à l'aide du schéma architectural des files d'attente\]](http://docs.aws.amazon.com/fr_fr/autoscaling/application/userguide/images/sqs-custom-metric-diagram.png)


**Pour utiliser cette expression mathématique appliquée à une métrique pour créer une politique de suivi des cibles (AWS CLI)**

1. Stockez l'expression mathématique appliquée aux métriques dans le cadre d'une spécification métrique personnalisée dans un fichier JSON nommé `config.json`. 

   Utilisez l'exemple suivant pour vous aider à démarrer. Remplacez chaque *user input placeholder* par vos propres informations.

   ```
   {
       "CustomizedMetricSpecification": {
           "Metrics": [
               {
                   "Label": "Get the queue size (the number of messages waiting to be processed)",
                   "Id": "m1",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "ApproximateNumberOfMessagesVisible",
                           "Namespace": "AWS/SQS",
                           "Dimensions": [
                               {
                                   "Name": "QueueName",
                                   "Value": "my-queue"
                               }
                           ]
                       },
                       "Stat": "Sum"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Get the ECS running task count (the number of currently running tasks)",
                   "Id": "m2",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "RunningTaskCount",
                           "Namespace": "ECS/ContainerInsights",
                           "Dimensions": [
                               {
                                   "Name": "ClusterName",
                                   "Value": "my-cluster"
                               },
                               {
                                   "Name": "ServiceName",
                                   "Value": "my-service"
                               }
                           ]
                       },
                       "Stat": "Average"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Calculate the backlog per instance",
                   "Id": "e1",
                   "Expression": "m1 / m2",
                   "ReturnData": true
               }
           ]
       },
       "TargetValue": 100
   }
   ```

   Pour plus d'informations, reportez-vous [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)à la section *Application 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 avec le AWS CLI, consultez [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html). 

1. Pour créer cette politique, exécutez la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-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 sqs-backlog-target-tracking-scaling-policy \
     --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/my-cluster/my-service \
     --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://config.json
   ```

   En cas de succès, cette commande renvoie le nom de ressource Amazon (ARN) ARNs de la politique et les deux CloudWatch alarmes créées en votre nom.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy: 8784a896-b2ba-47a1-b08c-27301cc499a1:resource/ecs/service/my-cluster/my-service:policyName/sqs-backlog-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0",
               "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4",
               "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4"
           }
       ]
   }
   ```
**Note**  
Si cette commande génère une erreur, assurez-vous d'avoir mis à jour AWS CLI localement la dernière version.

## Limitations
<a name="metric-math-limitations"></a>
+ La taille maximum d'une requête est 50 Ko. Il s'agit de la taille totale de la charge utile pour la demande [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)d'API lorsque vous utilisez des mathématiques métriques dans la définition de la politique. Si vous dépassez cette limite, Application Auto Scaling rejette la demande.
+ Les services suivants ne sont pas pris en charge lors de l'utilisation des mathématiques appliquées aux métriques avec de politiques de suivi des objectifs de la mise à l'échelle :
  + Amazon Keyspaces (pour Apache Cassandra) 
  + DynamoDB
  + Amazon EMR
  + Amazon MSK
  + Amazon Neptune