

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.

# Mise à l'échelle automatique des modèles Amazon SageMaker AI
<a name="endpoint-auto-scaling"></a>

Amazon SageMaker AI prend en charge le dimensionnement automatique (mise à l'échelle automatique) pour vos modèles hébergés. L’*autoscaling* ajuste dynamiquement le nombre d’instances allouées pour un modèle en réponse à des modifications de la charge de travail. Lorsque la charge de travail augmente, l’autoscaling met en ligne plus d’instances. Lorsque la charge de travail diminue, l’autoscaling supprime les instances inutiles pour que vous n’ayez pas à payer les instances allouées que vous n’utilisez pas.

**Topics**
+ [Présentation des politiques d’autoscaling](endpoint-auto-scaling-policy.md)
+ [Conditions préalables à l’autoscaling](endpoint-auto-scaling-prerequisites.md)
+ [Configuration de l’autoscaling d’un modèle avec la console](endpoint-auto-scaling-add-console.md)
+ [Enregistrement d’un modèle](endpoint-auto-scaling-add-policy.md)
+ [Définition d’une stratégie de mise à l’échelle](endpoint-auto-scaling-add-code-define.md)
+ [Application d’une stratégie de mise à l’échelle](endpoint-auto-scaling-add-code-apply.md)
+ [Instructions pour modifier une stratégie de mise à l’échelle](endpoint-auto-scaling-edit.md)
+ [Désactivation temporaire des stratégies de mise à l’échelle](endpoint-auto-scaling-suspend-scaling-activities.md)
+ [Suppression d’une stratégie de mise à l’échelle](endpoint-auto-scaling-delete.md)
+ [Vérification de l’état d’une activité de mise à l’échelle en décrivant les activités de mise à l’échelle](endpoint-scaling-query-history.md)
+ [Mise à l’échelle d’un point de terminaison à zéro instance](endpoint-auto-scaling-zero-instances.md)
+ [Test de charge de votre configuration d’autoscaling](endpoint-scaling-loadtest.md)
+ [CloudFormation À utiliser pour créer une politique de dimensionnement](endpoint-scaling-cloudformation.md)
+ [Mise à jour des points de terminaison qui utilisent l’autoscaling](endpoint-scaling-update.md)
+ [Suppression de points de terminaison configurés pour l’autoscaling](endpoint-delete-with-scaling.md)

# Présentation des politiques d’autoscaling
<a name="endpoint-auto-scaling-policy"></a>

Pour utiliser l’autoscaling, vous définissez une politique de mise à l’échelle automatique qui ajoute et supprime le nombre d’instances pour votre variante de production en réponse aux charges de travail réelles.

Pour procéder à une mise à l’échelle automatique en fonction de l’évolution de la charge de travail, vous avez deux options : le suivi de cible et les politiques de mise à l’échelle par étapes. 

Dans la plupart des cas, nous vous recommandons d’utiliser des politiques de mise à l’échelle du suivi de la cible. Avec le suivi des cibles, vous choisissez une CloudWatch métrique Amazon et une valeur cible. Auto Scaling crée et gère les CloudWatch alarmes relatives à la politique de dimensionnement et calcule l'ajustement de mise à l'échelle en fonction de la métrique et de la valeur cible. La stratégie ajoute et supprime le nombre d’instances comme requis pour maintenir la métrique à la valeur cible spécifiée ou à une valeur proche. Par exemple, une stratégie de dimensionnement qui utilise la métrique `InvocationsPerInstance` prédéfinie avec une valeur cible égale à 70 peut maintenir `InvocationsPerInstance` à la valeur 70 ou à une valeur proche. Pour plus d’informations, consultez [Stratégies de mise à l’échelle du suivi des cibles](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

Vous pouvez utiliser la mise à l’échelle par étapes lorsque vous avez besoin d’une configuration avancée, par exemple en spécifiant le nombre d’instances à déployer dans diverses conditions. Par exemple, vous devez utiliser la mise à l’échelle par étapes si vous souhaitez permettre à un point de terminaison d’augmenter horizontalement à partir de zéro instance active. Pour une présentation des stratégies de mise à l’échelle par étapes et de leur fonctionnement, consultez [Stratégies de mise à l’échelle par étapes](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

Pour créer une stratégie de mise à l’échelle de suivi des cibles, vous devez spécifier les éléments suivants :
+ **Métrique** : CloudWatch métrique à suivre, telle que le nombre moyen d'appels par instance. 
+ **Valeur cible** : la valeur cible de la métrique, telle que 70 invocations par instance et par minute.

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. Une métrique prédéfinie est définie dans une énumération afin que vous puissiez la spécifier par son nom dans le code ou l'utiliser dans la console SageMaker AI. Vous pouvez également utiliser l’ AWS CLI ou l’API Application Auto Scaling pour appliquer une stratégie de mise à l’échelle avec suivi de cible basée sur une métrique personnalisée ou prédéfinie.

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

Pour plus d’informations sur les concepts clés d’autoscaling, consultez la section suivante.

## Mise à l’échelle basée sur une planification
<a name="scheduled-scaling"></a>

Vous pouvez également créer des actions planifiées pour effectuer des activités de mise à l’échelle à des heures spécifiques. Vous pouvez créer des actions planifiées pour une mise à l’échelle unique ou selon une planification récurrente. Après l’exécution d’une action planifiée, votre politique de mise à l’échelle peut continuer à prendre des décisions sur l’opportunité de procéder à une mise à l’échelle dynamique au fil des modifications de la charge de travail. Le dimensionnement planifié ne peut être géré qu'à partir de l'API Application Auto Scaling AWS CLI ou de l'API Application Auto Scaling. Pour plus d’informations, voir [Mise à l’échelle planifiée](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) dans le *Guide de l’utilisateur Application Auto Scaling.*.

## Limites de mise à l’échelle minimale et maximale
<a name="endpoint-auto-scaling-target-capacity"></a>

Lorsque vous configurez l’autoscaling, vous devez spécifier vos limites de mise à l’échelle avant de créer une politique de mise à l’échelle. Vous définissez des limites séparément pour les valeurs minimale et maximale.

La valeur minimale doit être au moins égale à 1, et égale ou inférieure à la valeur spécifiée pour la valeur maximale.

La valeur maximale doit être égale ou supérieure à la valeur spécifiée pour la valeur minimale. SageMaker AI Auto Scaling n'impose pas de limite pour cette valeur.

Pour déterminer les limites de mise à l’échelle dont vous avez besoin pour un trafic classique, testez votre configuration d’autoscaling avec le débit attendu de trafic pour votre modèle.

Si le trafic d'une variante devient nul, l' SageMaker IA s'adapte automatiquement au nombre minimum d'instances spécifié. Dans ce cas, SageMaker l'IA émet des métriques d'une valeur nulle.

Il existe trois options pour définir la capacité minimale et la capacité maximale :

1. Utilisez la console pour mettre à jour les paramètres **Nombre minimal d’instance** et **Nombre maximal d’instances**.

1. Utilisez les options AWS CLI et incluez les `--max-capacity` options `--min-capacity` et lors de l'exécution de la [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)commande.

1. Appelez l'[RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)API et spécifiez les `MaxCapacity` paramètres `MinCapacity` et.

**Astuce**  
Vous pouvez augmenter horizontalement manuellement en augmentant la valeur minimale ou réduire horizontalement manuellement en diminuant la valeur maximale.

## Temps de stabilisation
<a name="endpoint-auto-scaling-target-cooldown"></a>

Un *temps de stabilisation* permet de se protéger contre le surdimensionnement lorsque votre modèle est en cours de réduction horizontale (réduction de la capacité) ou d’augmentation horizontale (augmentation de la capacité). Pour ce faire, il ralentit les activités de mise à l’échelle ultérieures jusqu’à l’expiration de la période. Il bloque spécifiquement la suppression des instances pour les demandes de réduction horizontale et limite la création d’instances pour les demandes d’augmentation horizontale. Pour plus d’informations, consultez [Définir les temps de stabilisation](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) dans le *Guide de l’utilisateur Application Auto Scaling*. 

Vous configurez le temps de stabilisation dans votre stratégie de mise à l’échelle. 

Si vous ne spécifiez pas un temps de stabilisation de réduction ou d’augmentation horizontale, votre stratégie de mise à l’échelle utilise la valeur par défaut, qui est de 300 secondes pour chaque.

Si les instances sont ajoutées ou supprimées trop rapidement lorsque vous testez votre configuration de mise à l’échelle, envisagez d’augmenter la valeur. Vous pouvez voir ce comportement si le trafic vers votre modèle présente un grand nombre de pics, ou si vous avez plusieurs stratégies de mise à l’échelle définies pour une variante.

Si les instances ne sont pas ajoutées assez rapidement pour répondre à une augmentation du trafic, envisagez de diminuer la valeur.

## Ressources connexes
<a name="auto-scaling-related-resources"></a>

Pour plus d’informations sur la configuration de l’autoscaling, consultez les ressources suivantes :
+ Section [application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling) du document *Référence des commandes AWS CLI *
+ [Référence de l’API Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/APIReference/)
+ [Guide de l’utilisateur Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/)

**Note**  
SageMaker L'IA a récemment introduit de nouvelles fonctionnalités d'inférence basées sur des points de terminaison d'inférence en temps réel. Vous créez un point de terminaison SageMaker AI avec une configuration de point de terminaison qui définit le type d'instance et le nombre d'instances initial pour le point de terminaison. Créez ensuite un composant d'inférence, qui est un objet d'hébergement d' SageMaker IA que vous pouvez utiliser pour déployer un modèle sur un point de terminaison. Pour plus d'informations sur la mise à l'échelle des composants d'inférence, voir L'[SageMaker IA ajoute de nouvelles fonctionnalités d'inférence pour aider à réduire les coûts de déploiement et la latence des modèles de base](https://aws.amazon.com/blogs/aws/amazon-sagemaker-adds-new-inference-capabilities-to-help-reduce-foundation-model-deployment-costs-and-latency/) [et à réduire les coûts de déploiement des modèles de 50 % en moyenne en utilisant les dernières fonctionnalités de l' SageMaker IA](https://aws.amazon.com/blogs/machine-learning/reduce-model-deployment-costs-by-50-on-average-using-sagemakers-latest-features/) sur le AWS blog.

# Conditions préalables à l’autoscaling
<a name="endpoint-auto-scaling-prerequisites"></a>

Avant de pouvoir utiliser la mise à l'échelle automatique, vous devez déjà avoir créé un point de terminaison du modèle Amazon SageMaker AI. Vous pouvez avoir plusieurs versions de modèle pour le même point de terminaison. Chaque modèle est appelé [variante de production (modèle)](model-ab-testing.md). Pour plus d’informations sur le déploiement d’un point de terminaison de modèle, consultez [Déployer le modèle sur les services d'hébergement SageMaker AI](ex1-model-deployment.md#ex1-deploy-model).

Pour activer le dimensionnement automatique d'un modèle, vous pouvez utiliser la console SageMaker AI, le AWS Command Line Interface (AWS CLI) ou un AWS SDK via l'API Application Auto Scaling. 
+ Si c’est la première fois que vous configurez l’autoscaling d’un modèle, nous vous recommandons [Configuration de l’autoscaling d’un modèle avec la console](endpoint-auto-scaling-add-console.md). 
+ Lorsque vous utilisez l'API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling, le flux consiste à enregistrer le modèle en tant que cible évolutive, à définir la politique de dimensionnement, puis à l'appliquer. Sur la console SageMaker AI, sous **Inference** dans le volet de navigation, sélectionnez **Endpoints**. Recherchez le nom du point de terminaison de votre modèle, puis choisissez-le pour trouver le nom de la variante. Vous devez spécifier à la fois le nom du point de terminaison et le nom de la variante pour activer l’autoscaling d’un modèle.

Le dimensionnement automatique est rendu possible par la combinaison d'Amazon SageMaker AI, d'Amazon CloudWatch et d'Application Auto Scaling APIs. Pour plus d’informations sur les autorisations minimales requises, consultez les [Exemples de stratégies Application Auto Scaling basées sur une identité](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_id-based-policy-examples.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

La politique IAM `SagemakerFullAccessPolicy` possède toutes les autorisations IAM requises pour effectuer l’autoscaling. Pour plus d'informations sur les autorisations SageMaker AI IAM, consultez[Comment utiliser les rôles d'exécution de l' SageMaker IA](sagemaker-roles.md).

Si vous gérez votre propre stratégie d’autorisation, vous devez inclure les autorisations suivantes :

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:DescribeEndpoint",
        "sagemaker:DescribeEndpointConfig",
        "sagemaker:UpdateEndpointWeightsAndCapacities"
      ],
      "Resource": "*"
    },
    {    
        "Effect": "Allow",
        "Action": [
            "application-autoscaling:*"
        ],
        "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:CreateServiceLinkedRole",
      "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint",
      "Condition": {
        "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com"	}
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricAlarm",
        "cloudwatch:DescribeAlarms",
        "cloudwatch:DeleteAlarms"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Rôle lié à un service
<a name="endpoint-auto-scaling-slr"></a>

Auto Scaling utilise le rôle lié à un service `AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint`. Le rôle lié à un service donne à Application Auto Scaling l’autorisation de décrire les alarmes de vos stratégies, de surveiller les niveaux de capacité actuels et de mettre à l’échelle la ressource cible. Ce rôle est créé automatiquement pour vous. Pour que la création automatique de rôle réussisse, vous devez avoir l’autorisation pour l’action `iam:CreateServiceLinkedRole`. Pour plus d’informations, consultez [Rôles liés à un service](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

# Configuration de l’autoscaling d’un modèle avec la console
<a name="endpoint-auto-scaling-add-console"></a>

**Pour configurer l’autoscaling d’un modèle (console)**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation, choisissez **Inférence**, puis **Points de terminaison**. 

1. Choisissez votre point de terminaison, puis pour les **Paramètres d’exécution du point de terminaison**, choisissez la variante.

1. Choisissez **Configurer Auto Scaling**.

1. Sur la page **Configurer la mise à l’échelle automatique d’une variante**, pour **Mise à l’échelle automatique d’une variante**, procédez comme suit :

   1. Pour **Nombre minimal d’instances**, saisissez le nombre minimal d’instances que la stratégie de mise à l’échelle doit gérer. Au moins 1 instance est requise.

   1. Pour **Nombre maximal d’instances**, saisissez le nombre maximal d’instances que la stratégie de mise à l’échelle doit gérer.

1. Pour **Stratégie de mise à l’échelle intégrée**, procédez comme suit :

   1. Pour la **Métrique cible**, `SageMakerVariantInvocationsPerInstance` est automatiquement sélectionné pour la métrique et ne peut pas être modifié.

   1. Pour la **Valeur cible**, saisissez le nombre moyen d’invocations par instance et par minute pour le modèle. Pour déterminer cette valeur, suivez les instructions proposées dans [Test de charge](endpoint-scaling-loadtest.md).

   1. (Facultatif) Pour **Réduire le temps de stabilisation (secondes)** et **Augmenter le temps de stabilisation (secondes)**, entrez le nombre de secondes pour chaque temps de stabilisation.

   1. (Facultatif) Sélectionnez **Désactiver la diminution en charge** si vous ne souhaitez pas que l’autoscaling résilie les instances lorsque le trafic diminue.

1. Choisissez **Enregistrer**.

Cette procédure enregistre un modèle en tant que cible évolutive avec Application Auto Scaling. Lorsque vous enregistrez un modèle, Application Auto Scaling effectue les contrôles de validation pour garantir que :
+ Le modèle existe
+ Les autorisations sont suffisantes
+ Vous n’enregistrez pas une variante avec une instance qui est une instance à performances extensibles comme T2
**Note**  
SageMaker L'IA ne prend pas en charge la mise à l'échelle automatique pour les instances instables telles que T2, car elles permettent déjà d'augmenter la capacité dans le cadre de charges de travail accrues. Pour plus d’informations sur les instances à performances extensibles, consultez [Types d’instances Amazon EC2](https://aws.amazon.com/ec2/instance-types/).

# Enregistrement d’un modèle
<a name="endpoint-auto-scaling-add-policy"></a>

Avant d’ajouter une stratégie de mise à l’échelle à votre modèle, vous devez d’abord enregistrer votre modèle pour l’autoscaling et définir les limites de mise à l’échelle du modèle.

Les procédures suivantes expliquent comment enregistrer un modèle (variante de production) pour le dimensionnement automatique à l'aide de l'API AWS Command Line Interface (AWS CLI) ou Application Auto Scaling.

**Topics**
+ [Enregistrement d’un modèle (AWS CLI)](#endpoint-auto-scaling-add-cli)
+ [Enregistrement d’un modèle (API Application Auto Scaling)](#endpoint-auto-scaling-add-api)

## Enregistrement d’un modèle (AWS CLI)
<a name="endpoint-auto-scaling-add-cli"></a>

Pour enregistrer votre variante de production, utilisez la [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)commande avec les paramètres suivants :
+ `--service-namespace`-Définissez cette valeur sur `sagemaker`.
+ `--resource-id`- L’identifiant de la ressource pour le modèle (plus précisément, la variante de production). Pour ce paramètre, le type de ressource est `endpoint` et l’identifiant unique est le nom de la variante de production. Par exemple, `endpoint/my-endpoint/variant/my-variant`.
+ `--scalable-dimension`-Définissez cette valeur sur `sagemaker:variant:DesiredInstanceCount`.
+ `--min-capacity` : nombre minimal d’instances. Cette valeur doit être au moins égale à 1 et être inférieure ou égale à celle spécifiée pour `max-capacity`.
+ `--max-capacity` : nombre maximal d’instances. Cette valeur doit être au moins égale à 1 et être supérieure ou égale à celle spécifiée pour `min-capacity`.

**Example**  
L’exemple suivant montre comment enregistrer une variante nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`, qui peut être mise à l’échelle de façon dynamique pour avoir de 1 à 8 instances.  

```
aws application-autoscaling register-scalable-target \
  --service-namespace sagemaker \
  --resource-id endpoint/my-endpoint/variant/my-variant \
  --scalable-dimension sagemaker:variant:DesiredInstanceCount \
  --min-capacity 1 \
  --max-capacity 8
```

## Enregistrement d’un modèle (API Application Auto Scaling)
<a name="endpoint-auto-scaling-add-api"></a>

Pour enregistrer votre modèle avec Application Auto Scaling, utilisez l'opération d'API Application Auto Scaling [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) avec les paramètres suivants :
+ `ServiceNamespace`-Définissez cette valeur sur `sagemaker`.
+ `ResourceID`- L’identifiant de la ressource pour la variante de production. Pour ce paramètre, le type de ressource est `endpoint` et l’identifiant unique est le nom de la variante. Par exemple `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`-Définissez cette valeur sur `sagemaker:variant:DesiredInstanceCount`.
+ `MinCapacity` : nombre minimal d’instances. Cette valeur doit être au moins égale à 1 et être inférieure ou égale à celle spécifiée pour `MaxCapacity`.
+ `MaxCapacity` : nombre maximal d’instances. Cette valeur doit être au moins égale à 1 et être supérieure ou égale à celle spécifiée pour `MinCapacity`.

**Example**  
L’exemple suivant montre comment enregistrer une variante de point de terminaison nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`, qui peut être mise à l’échelle de façon dynamique pour avoir de 1 à 8 instances.  

```
POST / HTTP/1.1
Host: application-autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
X-Amz-Date: 20230506T182145Z
User-Agent: aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS

{
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "MinCapacity": 1,
    "MaxCapacity": 8
}
```

# Définition d’une stratégie de mise à l’échelle
<a name="endpoint-auto-scaling-add-code-define"></a>

Avant d’ajouter une stratégie de mise à l’échelle à votre modèle, enregistrez votre configuration de stratégie sous forme de bloc JSON dans un fichier texte. Vous utilisez ce fichier texte lorsque vous appelez l'API AWS Command Line Interface (AWS CLI) ou Application Auto Scaling. Vous pouvez optimiser la mise à l'échelle en choisissant une CloudWatch métrique appropriée. Toutefois, avant d’utiliser une métrique personnalisée en production, vous devez tester l’autoscaling avec votre métrique personnalisée.

**Topics**
+ [Spécifiez une métrique prédéfinie (CloudWatch métrique : InvocationsPerInstance)](#endpoint-auto-scaling-add-code-predefined)
+ [Spécifiez une métrique prédéfinie à haute résolution (CloudWatch métriques : ConcurrentRequestsPerModel et ConcurrentRequestsPerCopy)](#endpoint-auto-scaling-add-code-high-res)
+ [Définissez une métrique personnalisée (CloudWatch métrique : CPUUtilization)](#endpoint-auto-scaling-add-code-custom)
+ [Définissez une métrique personnalisée (CloudWatch métrique : ExplanationsPerInstance)](#endpoint-auto-scaling-online-explainability)
+ [Spécification des temps de stabilisation](#endpoint-auto-scaling-add-code-cooldown)

Cette section présente des exemples de configurations de stratégie pour les stratégies de mise à l’échelle du suivi des cibles.

## Spécifiez une métrique prédéfinie (CloudWatch métrique : InvocationsPerInstance)
<a name="endpoint-auto-scaling-add-code-predefined"></a>

**Example**  
Voici un exemple de configuration de stratégie de suivi des cibles pour une variante qui conserve la moyenne des invocations par instance à 70. Enregistrez cette configuration dans un fichier nommé `config.json`.  

```
{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    }
}
```
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*.

## Spécifiez une métrique prédéfinie à haute résolution (CloudWatch métriques : ConcurrentRequestsPerModel et ConcurrentRequestsPerCopy)
<a name="endpoint-auto-scaling-add-code-high-res"></a>

Avec les CloudWatch mesures haute résolution suivantes, vous pouvez définir des politiques de dimensionnement pour le volume de demandes simultanées que reçoivent vos modèles :

**ConcurrentRequestsPerModel**  
Nombre de demandes simultanées reçues par un conteneur de modèle.

**ConcurrentRequestsPerCopy**  
Nombre de demandes simultanées reçues par un composant d’inférence.

Ces métriques permettent de suivre le nombre de demandes simultanées traitées par vos conteneurs de modèles, y compris les demandes placées en file d’attente à l’intérieur des conteneurs. Pour les modèles qui envoient leur réponse d’inférence sous forme de flux de jetons, ces métriques suivent chaque demande jusqu’à ce que le modèle envoie le dernier jeton correspondant à la demande.

En tant que métriques à haute résolution, elles émettent des données plus fréquemment que CloudWatch les métriques standard. Les métriques standard, telles que la métrique `InvocationsPerInstance`, émettent des données une fois par minute. Cependant, ces mesures à haute résolution émettent des données toutes les 10 secondes. Par conséquent, à mesure que le trafic simultané vers vos modèles augmente, votre stratégie réagit en augmentant horizontalement beaucoup plus rapidement qu’elle ne le ferait pour les métriques standard. Toutefois, à mesure que le trafic vers vos modèles diminue, votre stratégie réduit horizontalement à la même vitesse que pour les métriques standard.

Voici un exemple de configuration de stratégie de suivi des cibles qui ajoute des instances si le nombre de demandes simultanées par modèle est supérieur à 5. Enregistrez cette configuration dans un fichier nommé `config.json`.

```
{
    "TargetValue": 5.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantConcurrentRequestsPerModelHighResolution"
    }
}
```

Si vous utilisez des composants d’inférence pour déployer plusieurs modèles sur le même point de terminaison, vous pouvez créer une stratégie équivalente. Dans ce cas, définissez `PredefinedMetricType` sur `SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution`.

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

## Définissez une métrique personnalisée (CloudWatch métrique : CPUUtilization)
<a name="endpoint-auto-scaling-add-code-custom"></a>

Pour créer une stratégie de mise à l’échelle du suivi des cibles avec une métrique personnalisée, spécifiez son nom, son espace de noms, son unité, sa statistique et zéro ou plusieurs dimensions. Une dimension se compose d’un nom de dimension et d’une valeur de dimension. Vous pouvez utiliser n’importe quelle métrique de variante de production qui évolue proportionnellement à la capacité. 

**Example**  
L’exemple de configuration suivant illustre une stratégie de mise à l’échelle du suivi des cibles avec une métrique personnalisée. La stratégie met à l’échelle la variante en fonction d’une utilisation moyenne de l’UC de 50 % sur toutes les instances. Enregistrez cette configuration dans un fichier nommé `config.json`.  

```
{
    "TargetValue": 50.0,
    "CustomizedMetricSpecification":
    {
        "MetricName": "CPUUtilization",
        "Namespace": "/aws/sagemaker/Endpoints",
        "Dimensions": [
            {"Name": "EndpointName", "Value": "my-endpoint" },
            {"Name": "VariantName","Value": "my-variant"}
        ],
        "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*. 

## Définissez une métrique personnalisée (CloudWatch métrique : ExplanationsPerInstance)
<a name="endpoint-auto-scaling-online-explainability"></a>

Lorsque l’explicabilité en ligne est activée sur un point de terminaison, une métrique `ExplanationsPerInstance` est émise et affiche le nombre moyen d’enregistrements expliqués par minute, par instance, pour une variante. L’utilisation des ressources des enregistrements d’explicabilité peut être différente de celle des enregistrements de prédiction. Nous vous recommandons vivement d’utiliser cette métrique pour la mise à l’échelle du suivi des cibles des points de terminaison avec l’explicabilité en ligne activée.

Vous pouvez créer plusieurs stratégies de suivi des cibles pour une cible évolutive. Envisagez d’ajouter la stratégie `InvocationsPerInstance` à partir de la section [Spécifiez une métrique prédéfinie (CloudWatch métrique : InvocationsPerInstance)](#endpoint-auto-scaling-add-code-predefined) (en plus de la stratégie `ExplanationsPerInstance`). Si la plupart des invocations ne renvoient pas d’explication en raison de la valeur de seuil définie dans le paramètre `EnableExplanations`, le point de terminaison peut choisir la stratégie `InvocationsPerInstance`. S’il existe un grand nombre d’explications, le point de terminaison peut utiliser la politique `ExplanationsPerInstance`. 

**Example**  
L’exemple de configuration suivant illustre une stratégie de mise à l’échelle du suivi des cibles avec une métrique personnalisée. La mise à l’échelle de la stratégie ajuste le nombre d’instances de variantes afin que chaque instance possède une métrique `ExplanationsPerInstance` de 20. Enregistrez cette configuration dans un fichier nommé `config.json`.  

```
{
    "TargetValue": 20.0,
    "CustomizedMetricSpecification":
    {
        "MetricName": "ExplanationsPerInstance",
        "Namespace": "AWS/SageMaker",
        "Dimensions": [
            {"Name": "EndpointName", "Value": "my-endpoint" },
            {"Name": "VariantName","Value": "my-variant"}
        ],
        "Statistic": "Sum"
    }
}
```

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

## Spécification des temps de stabilisation
<a name="endpoint-auto-scaling-add-code-cooldown"></a>

Vous pouvez éventuellement définir des temps de stabilisation dans votre stratégie de mise à l’échelle du suivi des cibles en spécifiant les paramètres `ScaleOutCooldown` et `ScaleInCooldown`. 

**Example**  
Voici un exemple de configuration de stratégie de suivi des cibles pour une variante qui conserve la moyenne des invocations par instance à 70. La configuration de la stratégie indique un temps de stabilisation de réduction horizontale de 10 minutes (600 secondes) et un temps de stabilisation d’augmentation horizontale de 5 minutes (300 secondes). Enregistrez cette configuration dans un fichier nommé `config.json`.   

```
{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```
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*. 

# Application d’une stratégie de mise à l’échelle
<a name="endpoint-auto-scaling-add-code-apply"></a>

Après avoir enregistré votre modèle et défini une stratégie de mise à l’échelle, appliquez cette stratégie au modèle enregistré. Cette section explique comment appliquer une stratégie de mise à l’échelle à l’aide de l’ AWS Command Line Interface (AWS CLI) ou de l’API Application Auto Scaling. 

**Topics**
+ [Application d’une stratégie de mise à l’échelle avec suivi de cible (AWS CLI)](#endpoint-auto-scaling-add-code-apply-cli)
+ [Application d’une stratégie de mise à l’échelle (API Application Auto Scaling)](#endpoint-auto-scaling-add-code-apply-api)

## Application d’une stratégie de mise à l’échelle avec suivi de cible (AWS CLI)
<a name="endpoint-auto-scaling-add-code-apply-cli"></a>

Pour appliquer une politique de dimensionnement à votre modèle, utilisez la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) AWS CLI commande avec les paramètres suivants :
+ `--policy-name`Nom de la stratégie de mise à l'échelle.
+ `--policy-type`-Définissez cette valeur sur `TargetTrackingScaling`.
+ `--resource-id`- L’identifiant de la ressource pour la variante. Pour ce paramètre, le type de ressource est `endpoint` et l’identifiant unique est le nom de la variante. Par exemple, `endpoint/my-endpoint/variant/my-variant`.
+ `--service-namespace`-Définissez cette valeur sur `sagemaker`.
+ `--scalable-dimension`-Définissez cette valeur sur `sagemaker:variant:DesiredInstanceCount`.
+ `--target-tracking-scaling-policy-configuration` : la configuration de la stratégie de mise à l’échelle du suivi des cibles à utiliser pour le modèle.

**Example**  
L’exemple suivant applique une stratégie de mise à l’échelle du suivi des cibles nommée `my-scaling-policy` à une variante nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`. Pour l’option `--target-tracking-scaling-policy-configuration`, spécifiez le fichier `config.json` que vous avez créé précédemment.   

```
aws application-autoscaling put-scaling-policy \
  --policy-name my-scaling-policy \
  --policy-type TargetTrackingScaling \
  --resource-id endpoint/my-endpoint/variant/my-variant \
  --service-namespace sagemaker \
  --scalable-dimension sagemaker:variant:DesiredInstanceCount \
  --target-tracking-scaling-policy-configuration file://config.json
```

## Application d’une stratégie de mise à l’échelle (API Application Auto Scaling)
<a name="endpoint-auto-scaling-add-code-apply-api"></a>

Pour appliquer une stratégie de mise à l'échelle à une variante à l'aide de l'API Application Auto Scaling, utilisez l'opération d'API Application Auto Scaling [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) avec les paramètres suivants :
+ `PolicyName`- Le nom de la stratégie de mise à l'échelle.
+ `ServiceNamespace`-Définissez cette valeur sur `sagemaker`.
+ `ResourceID`- L’identifiant de la ressource pour la variante. Pour ce paramètre, le type de ressource est `endpoint` et l’identifiant unique est le nom de la variante. Par exemple, `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`-Définissez cette valeur sur `sagemaker:variant:DesiredInstanceCount`.
+ `PolicyType`-Définissez cette valeur sur `TargetTrackingScaling`.
+ `TargetTrackingScalingPolicyConfiguration` : la configuration de la politique de mise à l’échelle avec suivi des cibles à utiliser pour la variante.

**Example**  
L’exemple suivant applique une stratégie de mise à l’échelle du suivi des cibles nommée `my-scaling-policy` à une variante nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`. La configuration de la stratégie maintient le nombre moyen d’invocations par instance à 70.  

```
POST / HTTP/1.1
Host: application-autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
X-Amz-Target: AnyScaleFrontendService.
X-Amz-Date: 20230506T182145Z
User-Agent: aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS

{
    "PolicyName": "my-scaling-policy",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 70.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
        }
    }
}
```

# Instructions pour modifier une stratégie de mise à l’échelle
<a name="endpoint-auto-scaling-edit"></a>

Après avoir créé une stratégie de mise à l’échelle, vous pouvez mettre à jour n’importe lequel de ses paramètres, à l’exception du nom.

 Pour modifier une politique de dimensionnement du suivi des cibles à l'aide du AWS Management Console, utilisez la même procédure que celle que vous avez utilisée[Configuration de l’autoscaling d’un modèle avec la console](endpoint-auto-scaling-add-console.md).

Vous pouvez utiliser l'API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling pour modifier une politique de dimensionnement de la même manière que vous créez une nouvelle politique de dimensionnement. Pour de plus amples informations, veuillez consulter [Application d’une stratégie de mise à l’échelle](endpoint-auto-scaling-add-code-apply.md).

# Désactivation temporaire des stratégies de mise à l’échelle
<a name="endpoint-auto-scaling-suspend-scaling-activities"></a>

Après avoir configuré l’autoscaling, vous disposez des options suivantes si vous devez enquêter sur un problème sans interférer avec les stratégies de mise à l’échelle (mise à l’échelle dynamique) :
+ Suspendez temporairement puis reprenez les activités de dimensionnement en appelant la commande [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)CLI ou l'action d'[RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)API, en spécifiant une valeur booléenne pour les deux et`DynamicScalingInSuspended`. `DynamicScalingOutSuspended`   
**Example**  

  L’exemple suivant montre comment suspendre les stratégies de mise à l’échelle pour une variante nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace sagemaker \
    --resource-id endpoint/my-endpoint/variant/my-variant \
    --scalable-dimension sagemaker:variant:DesiredInstanceCount \
    --suspended-state '{"DynamicScalingInSuspended":true,"DynamicScalingOutSuspended":true}'
  ```
+ Empêchez les stratégies spécifiques de mise à l’échelle du suivi des cibles de procéder à une réduction horizontale de votre variante en désactivant la partie de réduction horizontale de la stratégie. Cette méthode empêche la stratégie de mise à l’échelle de supprimer des instances, tout en autorisant leur création si nécessaire.

  Désactivez temporairement puis activez les activités d'extension en modifiant la politique à l'aide de la commande [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)CLI ou de l'action [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API, en spécifiant une valeur booléenne pour. `DisableScaleIn`  
**Example**  

  Voici un exemple de configuration du suivi des cibles pour une stratégie de mise à l’échelle qui effectuera une augmentation horizontale, mais pas de réduction horizontale. 

  ```
  {
      "TargetValue": 70.0,
      "PredefinedMetricSpecification":
      {
          "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
      },
      "DisableScaleIn": true
  }
  ```

# Suppression d’une stratégie de mise à l’échelle
<a name="endpoint-auto-scaling-delete"></a>

Si vous n’avez plus besoin d’une stratégie de mise à l’échelle, vous pouvez la supprimer à tout moment.

**Topics**
+ [Suppression de toutes les stratégies de mise à l’échelle et désinscription du modèle (console)](#endpoint-auto-scaling-delete-console)
+ [Supprimer une politique de dimensionnement (AWS CLI ou une API Application Auto Scaling)](#endpoint-auto-scaling-delete-code)

## Suppression de toutes les stratégies de mise à l’échelle et désinscription du modèle (console)
<a name="endpoint-auto-scaling-delete-console"></a>

**Pour supprimer toutes les stratégies de mise à l’échelle et désinscrire la variante en tant que cible évolutive**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation, choisissez **Points de terminaison**.

1. Choisissez votre point de terminaison, puis pour les **Paramètres d’exécution du point de terminaison**, choisissez la variante.

1. Choisissez **Configurer Auto Scaling**.

1. Choisissez **Annuler l’enregistrement de la scalabilité automatique**.

## Supprimer une politique de dimensionnement (AWS CLI ou une API Application Auto Scaling)
<a name="endpoint-auto-scaling-delete-code"></a>

Vous pouvez utiliser l'API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling pour supprimer une politique de dimensionnement d'une variante.

### Suppression d’une stratégie de mise à l’échelle (interface AWS CLI)
<a name="endpoint-auto-scaling-delete-code-cli"></a>

Pour supprimer une politique de dimensionnement d'une variante, utilisez la [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html)commande avec les paramètres suivants :
+ `--policy-name`- Le nom de la stratégie de mise à l'échelle.
+ `--resource-id`- L'identifiant de la ressource pour la variante. Pour ce paramètre, le type de ressource est `endpoint` et l’identifiant unique est le nom de la variante. Par exemple, `endpoint/my-endpoint/variant/my-variant`.
+ `--service-namespace`-Définissez cette valeur sur `sagemaker`.
+ `--scalable-dimension`-Définissez cette valeur sur `sagemaker:variant:DesiredInstanceCount`.

**Example**  
L’exemple suivant supprime une stratégie de mise à l’échelle du suivi des cibles nommée `my-scaling-policy` de la variante nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`.  

```
aws application-autoscaling delete-scaling-policy \
  --policy-name my-scaling-policy \
  --resource-id endpoint/my-endpoint/variant/my-variant \
  --service-namespace sagemaker \
  --scalable-dimension sagemaker:variant:DesiredInstanceCount
```

### Suppression d'une stratégie de mise à l'échelle (API Application Auto Scaling)
<a name="endpoint-auto-scaling-delete-code-api"></a>

Pour supprimer une stratégie de mise à l'échelle de votre variante, utilisez l'opération d'API Application Auto Scaling [DeleteScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeleteScalingPolicy.html) avec les paramètres suivants :
+ `PolicyName`- Le nom de la stratégie de mise à l'échelle.
+ `ServiceNamespace`-Définissez cette valeur sur `sagemaker`.
+ `ResourceID`- L’identifiant de la ressource pour la variante. Pour ce paramètre, le type de ressource est `endpoint` et l’identifiant unique est le nom de la variante. Par exemple, `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`-Définissez cette valeur sur `sagemaker:variant:DesiredInstanceCount`.

**Example**  
L’exemple suivant supprime une stratégie de mise à l’échelle du suivi des cibles nommée `my-scaling-policy` de la variante nommée `my-variant`, exécutée sur le point de terminaison `my-endpoint`.  

```
POST / HTTP/1.1
Host: application-autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
X-Amz-Date: 20230506T182145Z
User-Agent: aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS

{
    "PolicyName": "my-scaling-policy",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount"
}
```

# Vérification de l’état d’une activité de mise à l’échelle en décrivant les activités de mise à l’échelle
<a name="endpoint-scaling-query-history"></a>

Vous pouvez vérifier l’état d’une activité de mise à l’échelle pour votre point de terminaison mis à l’échelle automatiquement en décrivant les activités de mise à l’échelle. Application Auto Scaling fournit des détails sur les activités de mise à l’échelle dans l’espace de noms spécifié des six semaines précédentes. Pour plus d’informations, consultez [Activités de mise à l’échelle pour Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

Pour vérifier l'état d'une activité de dimensionnement, utilisez la [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)commande. Vous ne pouvez pas vérifier l’état d’une activité de mise à l’échelle à l’aide de la console.

**Topics**
+ [Description des activités de mise à l’échelle (AWS CLI)](#endpoint-how-to)
+ [Identification des activités de mise à l’échelle bloquée à partir des quotas d’instance (AWS CLI)](#endpoint-identify-blocked-autoscaling)

## Description des activités de mise à l’échelle (AWS CLI)
<a name="endpoint-how-to"></a>

Pour décrire les activités de dimensionnement pour toutes les ressources d' SageMaker IA enregistrées auprès d'Application Auto Scaling, utilisez la [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)commande en spécifiant `sagemaker` l'`--service-namespace`option.

```
aws application-autoscaling describe-scaling-activities \
  --service-namespace sagemaker
```

Pour décrire les activités de mise à l’échelle pour une ressource spécifique, incluez l’option `--resource-id`. 

```
aws application-autoscaling describe-scaling-activities \
  --service-namespace sagemaker \
  --resource-id endpoint/my-endpoint/variant/my-variant
```

L’exemple suivant illustre la sortie produite lorsque vous exécutez cette commande.

```
{
    "ActivityId": "activity-id",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "Description": "string",
    "Cause": "string",
    "StartTime": timestamp,
    "EndTime": timestamp,
    "StatusCode": "string",
    "StatusMessage": "string"
}
```

## Identification des activités de mise à l’échelle bloquée à partir des quotas d’instance (AWS CLI)
<a name="endpoint-identify-blocked-autoscaling"></a>

Lorsque vous augmentez horizontalement (ajoutez d’autres instances), vous pouvez atteindre votre quota d’instances au niveau du compte. Vous pouvez utiliser la [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)commande pour vérifier si vous avez atteint votre quota d'instance. Si vous dépassez votre quota, l’autoscaling est bloqué. 

Pour vérifier si vous avez atteint votre quota d'instance, utilisez la [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)commande et spécifiez l'ID de ressource pour l'`--resource-id`option. 

```
aws application-autoscaling describe-scaling-activities \
    --service-namespace sagemaker \
    --resource-id endpoint/my-endpoint/variant/my-variant
```

Dans la syntaxe de retour, cochez les cases [StatusCode](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html#autoscaling-Type-ScalingActivity-StatusCode) et [StatusMessage](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html#autoscaling-Type-ScalingActivity-StatusMessage), ainsi que leurs valeurs associées.`StatusCode`renvoie `Failed`. `StatusMessage` contient un message indiquant que le quota de service au niveau du compte a été atteint. Ce message devrait ressembler à l’exemple suivant : 

```
{
    "ActivityId": "activity-id",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "Description": "string",
    "Cause": "minimum capacity was set to 110",
    "StartTime": timestamp,
    "EndTime": timestamp,
    "StatusCode": "Failed",
    "StatusMessage": "Failed to set desired instance count to 110. Reason: The 
    account-level service limit 'ml.xx.xxxxxx for endpoint usage' is 1000 
    Instances, with current utilization of 997 Instances and a request delta 
    of 20 Instances. Please contact AWS support to request an increase for this 
    limit. (Service: AmazonSageMaker; Status Code: 400; 
    Error Code: ResourceLimitExceeded; Request ID: request-id)."
}
```

# Mise à l’échelle d’un point de terminaison à zéro instance
<a name="endpoint-auto-scaling-zero-instances"></a>

Lorsque vous configurez l’autoscaling pour un point de terminaison, vous pouvez autoriser le processus de réduction horizontale à réduire le nombre d’instances en service à zéro. Ce faisant, vous réduisez les coûts pendant les périodes où votre point de terminaison ne traite pas les demandes d’inférence et ne nécessite donc aucune instance active. 

Cependant, après la réduction horizontale à zéro instance, votre point de terminaison ne peut répondre à aucune demande d’inférence entrante tant qu’il n’a pas provisionné au moins une instance. Pour automatiser le processus de provisionnement, vous créez une stratégie de mise à l’échelle par étapes avec Application Auto Scaling. Ensuite, vous assignez la politique à une CloudWatch alarme Amazon.

Une fois que vous avez configuré la stratégie de mise à l’échelle par étapes et l’alarme, votre point de terminaison provisionne automatiquement une instance peu après avoir reçu une demande d’inférence à laquelle il ne peut pas répondre. Sachez que le processus de provisionnement prend généralement plusieurs minutes. Pendant ce temps, toute tentative d’invoquer le point de terminaison produira une erreur.

Les procédures suivantes expliquent comment configurer l’autoscaling pour un point de terminaison afin qu’il puisse réduire horizontalement vers et augmenter horizontalement à partir de zéro instance. Les procédures utilisent des commandes avec l’ AWS CLI.

**Avant de commencer**

Avant que votre point de terminaison puisse réduire horizontalement vers et augmenter horizontalement à partir de zéro instance, il doit répondre aux exigences suivantes :
+ Il est en service.
+ Il héberge un ou plusieurs composants d’inférence. Un point de terminaison peut être mis à l’échelle vers ou à partir de zéro instance uniquement s’il héberge des composants d’inférence.

  Pour plus d'informations sur l'hébergement de composants d'inférence sur les points de terminaison SageMaker AI, consultez. [Déploiement de modèles pour l’inférence en temps réel](realtime-endpoints-deploy-models.md)
+ Dans la configuration du point de terminaison, pour l’objet `ManagedInstanceScaling` de variante de production, vous avez défini le paramètre `MinInstanceCount` sur `0`.

  Pour obtenir des informations de référence sur ce paramètre, consultez [ProductionVariantManagedInstanceScaling](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantManagedInstanceScaling.html).

**Pour permettre à un point de terminaison de réduire horizontalement vers zéro instance (AWS CLI)**

Pour chaque composant d’inférence hébergé par le point de terminaison, procédez comme suit :

1. Inscription du composant d’inférence en tant que cible évolutive. Lorsque vous l’enregistrez, définissez la capacité minimale sur `0`, comme indiqué dans la commande suivante :

   ```
   aws application-autoscaling register-scalable-target \
     --service-namespace sagemaker \
     --resource-id inference-component/inference-component-name \
     --scalable-dimension sagemaker:inference-component:DesiredCopyCount \
     --min-capacity 0 \
     --max-capacity n
   ```

   Dans cet exemple, remplacez-le *inference-component-name* par le nom de votre composant d'inférence. Remplacez *n* par le nombre maximum de copies de composants d'inférence à provisionner lors de la mise à l'échelle.

   Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)la *référence des AWS CLI commandes*.

1. Appliquez une stratégie du suivi des cibles au composant d’inférence, comme illustré par la commande suivante :

   ```
   aws application-autoscaling put-scaling-policy \
     --policy-name my-scaling-policy \
     --policy-type TargetTrackingScaling \
     --resource-id inference-component/inference-component-name \
     --service-namespace sagemaker \
     --scalable-dimension sagemaker:inference-component:DesiredCopyCount \
     --target-tracking-scaling-policy-configuration file://config.json
   ```

   Dans cet exemple, remplacez-le *inference-component-name* par le nom de votre composant d'inférence.

   Dans l’exemple, le fichier `config.json` contient une configuration de stratégie du suivi des cibles, telle que la suivante :

   ```
   {
     "PredefinedMetricSpecification": {
         "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy"
     },
     "TargetValue": 1,
     "ScaleInCooldown": 300,
     "ScaleOutCooldown": 300
   }
   ```

   Pour plus d’exemples de configurations de stratégie de suivi, consultez [Définition d’une stratégie de mise à l’échelle](endpoint-auto-scaling-add-code-define.md).

   Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)la *référence des AWS CLI commandes*.

**Pour permettre à un point de terminaison d’augmenter horizontalement à partir de zéro instance (AWS CLI)**

Pour chaque composant d’inférence hébergé par le point de terminaison, procédez comme suit :

1. Appliquez une stratégie de mise à l’échelle par étapes au composant d’inférence, comme illustré par la commande suivante :

   ```
   aws application-autoscaling put-scaling-policy \
     --policy-name my-scaling-policy \
     --policy-type StepScaling \
     --resource-id inference-component/inference-component-name \
     --service-namespace sagemaker \
     --scalable-dimension sagemaker:inference-component:DesiredCopyCount \
     --step-scaling-policy-configuration file://config.json
   ```

   Dans cet exemple, remplacez-le *my-scaling-policy* par un nom unique pour votre politique. *inference-component-name*Remplacez-le par le nom de votre composant d'inférence.

   Dans l’exemple, le fichier `config.json` contient une configuration de stratégie de mise à l’échelle par étapes, telle que la suivante :

   ```
   {
       "AdjustmentType": "ChangeInCapacity",
       "MetricAggregationType": "Maximum",
       "Cooldown": 60,
       "StepAdjustments":
         [
            {
              "MetricIntervalLowerBound": 0,
              "ScalingAdjustment": 1
            }
         ]
   }
   ```

   Lorsque la politique de dimensionnement de cette étape est déclenchée, l' SageMaker IA fournit les instances nécessaires pour prendre en charge les copies des composants d'inférence.

   Après avoir créé la stratégie de mise à l’échelle par étapes, notez son Amazon Resource Name (ARN). Vous aurez besoin de l'ARN de l' CloudWatch alarme à l'étape suivante.

   Pour plus d’informations sur les stratégies de mise à l’échelle par étapes, consultez [Stratégies de mise à l’échelle par étapes](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

1. Créez une CloudWatch alarme et attribuez-lui la politique de dimensionnement des étapes, comme illustré dans l'exemple suivant :

   ```
   aws cloudwatch put-metric-alarm \
   --alarm-actions step-scaling-policy-arn \
   --alarm-description "Alarm when SM IC endpoint invoked that has 0 instances." \
   --alarm-name ic-step-scaling-alarm \
   --comparison-operator GreaterThanThreshold  \
   --datapoints-to-alarm 1 \
   --dimensions "Name=InferenceComponentName,Value=inference-component-name" \
   --evaluation-periods 1 \
   --metric-name NoCapacityInvocationFailures \
   --namespace AWS/SageMaker \
   --period 60 \
   --statistic Sum \
   --threshold 1
   ```

   Dans cet exemple, remplacez-le *step-scaling-policy-arn* par l'ARN de votre politique d'échelonnement des étapes. *ic-step-scaling-alarm*Remplacez-le par le nom de votre choix. *inference-component-name*Remplacez-le par le nom de votre composant d'inférence. 

   Cet exemple définit le `--metric-name` paramètre sur`NoCapacityInvocationFailures`. SageMaker L'IA émet cette métrique lorsqu'un point de terminaison reçoit une demande d'inférence, mais que le point de terminaison ne dispose d'aucune instance active pour traiter la demande. Lorsque cet événement se produit, l’alarme déclenche la stratégie de mise à l’échelle par étapes de l’étape précédente.

   Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)la *référence des AWS CLI commandes*.

# Test de charge de votre configuration d’autoscaling
<a name="endpoint-scaling-loadtest"></a>

Effectuez les tests de charge pour choisir une configuration de mise à l’échelle qui fonctionne comme vous le voulez.

Les consignes suivantes pour le test de charge supposent que vous utilisez une stratégie de mise à l’échelle qui utilise la métrique cible prédéfinie `SageMakerVariantInvocationsPerInstance`.

**Topics**
+ [Détermination des caractéristiques de performance](#endpoint-scaling-loadtest-variant)
+ [Calcul de la charge cible](#endpoint-scaling-loadtest-calc)

## Détermination des caractéristiques de performance
<a name="endpoint-scaling-loadtest-variant"></a>

Effectuez un test de charge pour trouver le pic des `InvocationsPerInstance` que la variante de production de votre modèle peut gérer, et la latence des demandes lorsque la simultanéité augmente.

Cette valeur dépend du type d’instance choisi, des données utiles que les clients de votre modèle envoient généralement et des performances de toutes les dépendances externes de votre modèle.

**Pour déterminer le pic requests-per-second (RPS) que la variante de production de votre modèle peut gérer et la latence des demandes**

1. Configurez un point de terminaison avec votre modèle à l’aide d’une seule instance. Pour plus d’informations sur la configuration d’un point de terminaison, consultez [Déployer le modèle sur les services d'hébergement SageMaker AI](ex1-model-deployment.md#ex1-deploy-model).

1. Utilisez un outil de test de charge pour générer un nombre croissant de requêtes parallèles, et surveiller les demandes par seconde et le modèle de latence dans la sortie de l’outil de test de charge. 
**Note**  
Vous pouvez également surveiller requests-per-minute au lieu du RPS. Dans ce cas, ne multipliez pas par 60 dans l’équation pour calculer `SageMakerVariantInvocationsPerInstance` comme ci-dessous.

   Lorsque la latence du modèle augmente ou que la proportion de transactions réussies diminue, il s’agit du pic des demandes par seconde que votre modèle peut traiter.

## Calcul de la charge cible
<a name="endpoint-scaling-loadtest-calc"></a>

Une fois que vous avez trouvé les caractéristiques de performance de la variante, vous pouvez déterminer le RPS maximal autorisé à être envoyé à une instance. Le seuil utilisé pour le dimensionnement doit être inférieur à la valeur maximale. Utilisez l’équation suivante en combinaison avec un test de charge pour déterminer la valeur appropriée pour la métrique cible `SageMakerVariantInvocationsPerInstance` de votre configuration de mise à l’échelle.

```
SageMakerVariantInvocationsPerInstance = (MAX_RPS * SAFETY_FACTOR) * 60
```

Où `MAX_RPS` est le RPS maximal que vous avez déterminé précédemment et `SAFETY_FACTOR` le facteur de sécurité que vous avez choisi pour vous assurer que vos clients ne dépassent pas le RPS maximal. Multipliez par 60 pour convertir le RPS en un CloudWatch indicateur par minute utilisé par l' SageMaker IA pour implémenter la mise à l'échelle automatique (vous n'avez pas besoin de le faire si vous avez mesuré requests-per-minute au lieu de requests-per-second). invocations-per-minute

**Note**  
SageMaker AI vous recommande de commencer les tests avec une valeur `SAFETY_FACTOR` de 0,5. Testez votre configuration de mise à l’échelle pour vous assurer qu’elle fonctionne de la façon escomptée avec votre modèle pour augmenter et diminuer le trafic client sur votre point de terminaison.

# CloudFormation À utiliser pour créer une politique de dimensionnement
<a name="endpoint-scaling-cloudformation"></a>

L’exemple suivant montre comment configurer l’autoscaling du modèle sur un point de terminaison à l’aide de CloudFormation.

```
  Endpoint:
    Type: "AWS::SageMaker::Endpoint"
    Properties:
      EndpointName: yourEndpointName
      EndpointConfigName: yourEndpointConfigName

  ScalingTarget:
    Type: "AWS::ApplicationAutoScaling::ScalableTarget"
    Properties:
      MaxCapacity: 10
      MinCapacity: 2
      ResourceId: endpoint/my-endpoint/variant/my-variant
      RoleARN: arn
      ScalableDimension: sagemaker:variant:DesiredInstanceCount
      ServiceNamespace: sagemaker

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      PolicyName: my-scaling-policy
      PolicyType: TargetTrackingScaling
      ScalingTargetId:
        Ref: ScalingTarget
      TargetTrackingScalingPolicyConfiguration:
        TargetValue: 70.0
        ScaleInCooldown: 600
        ScaleOutCooldown: 30
        PredefinedMetricSpecification:
          PredefinedMetricType: SageMakerVariantInvocationsPerInstance
```

Pour plus d’informations, consultez [Création de ressources Application Auto Scaling avec AWS CloudFormation](https://docs.aws.amazon.com/autoscaling/application/userguide/creating-resources-with-cloudformation.html) dans le *Guide de l’utilisateur d’Application Auto Scaling*.

# Mise à jour des points de terminaison qui utilisent l’autoscaling
<a name="endpoint-scaling-update"></a>

Lorsque vous mettez à jour un point de terminaison, Application Auto Scaling vérifie si l’un des modèles de ce point de terminaison est une cible d’autoscaling. Si la mise à jour modifie le type d’instance d’un modèle qui est une cible de l’autoscaling, la mise à jour échoue. 

Dans le AWS Management Console, vous voyez un avertissement indiquant que vous devez désenregistrer le modèle de la mise à l'échelle automatique avant de pouvoir le mettre à jour. Si vous essayez de mettre à jour le point de terminaison en appelant l'API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html), l'appel échoue. Avant de mettre à jour le point de terminaison, supprimez toutes les politiques de dimensionnement configurées pour celui-ci et annulez l'enregistrement de la variante en tant que cible évolutive en appelant l'action API [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)Application Auto Scaling. Une fois que vous avez mis à jour le point de terminaison, vous pouvez enregistrer la variante mise à jour en tant que cible évolutive et attacher une stratégie de mise à l’échelle.

Il y a une exception. Si vous modifiez le modèle d'une variante configurée pour le dimensionnement automatique, Amazon SageMaker AI Auto Scaling autorise la mise à jour. Cela est dû au fait que la modification du modèle n’affecte pas généralement suffisamment les performances pour modifier la mise à l’échelle. Si vous mettez à jour un modèle pour une variante configurée pour l’autoscaling, vérifiez que la modification du modèle n’a pas d’incidence significative sur les performances et le comportement de mise à l’échelle.

Lorsque vous mettez à jour les points de terminaison SageMaker AI auxquels la mise à l'échelle automatique est appliquée, procédez comme suit :

**Pour mettre à jour un point de terminaison auquel l’autoscaling est appliqué**

1. Désenregistrez le point de terminaison en tant que cible évolutive en appelant. [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)

1. Étant donné que l’autoscaling est bloqué pendant l’opération de mise à jour (ou si vous avez désactivé l’autoscaling à l’étape précédente), vous pouvez prendre la précaution supplémentaire d’augmenter le nombre d’instances de votre point de terminaison pendant la mise à jour. Pour cela, mettez à jour le nombre d'instances pour les variantes de production hébergées sur le point de terminaison en appelant [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html).

1. Appelez [ DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) de façon répétée jusqu'à ce que la valeur du champ `EndpointStatus` de la réponse soit `InService`.

1. Appelez [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) pour obtenir les valeurs de la configuration du point de terminaison actuel.

1. Créez une configuration de point de terminaison en appelant [ CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html). Pour les variantes de production où vous souhaitez conserver le nombre ou la pondération d'instance existant(e), utilisez le même nom de variante que celui de la réponse de l'appel à [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) à l'étape précédente. Pour toutes les autres valeurs, utilisez les valeurs que vous avez obtenues comme réponse lorsque vous avez appelé [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) lors de l'étape précédente.

1. Mettez à jour le point de terminaison en appelant [ UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html). Spécifiez la configuration du point de terminaison que vous avez créée à l’étape précédente comme champ `EndpointConfig`. Si vous souhaitez conserver les propriétés de variante telles que le nombre d’instances ou la pondération, définissez la valeur du paramètre `RetainAllVariantProperties` sur `True`. Ce paramètre spécifie que les variantes de production portant le même nom seront mises à jour avec le nombre `DesiredInstanceCount` le plus récent de la réponse de l’appel à `DescribeEndpoint`, quelles que soient les valeurs du champ `InitialInstanceCount` dans le nouveau `EndpointConfig`.

1. (Facultatif) Réactivez le dimensionnement automatique en appelant [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)et [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html).

**Note**  
Les étapes 1 et 7 sont obligatoires uniquement si vous mettez à jour un point de terminaison avec les modifications suivantes :  
Modification du type d’instance d’une variante de production dont l’autoscaling est configuré
Suppression d’une variante de production dont l’autoscaling est configuré.

# Suppression de points de terminaison configurés pour l’autoscaling
<a name="endpoint-delete-with-scaling"></a>

Si vous supprimez un point de terminaison, Application Auto Scaling vérifie si l’un des modèles sur ce point de terminaison est une cible d’autoscaling. Si c’est le cas et que vous avez l’autorisation d’annuler l’inscription du modèle, Application Auto Scaling annule l’inscription des modèles en tant que cibles évolutives, sans vous en informer. Si vous utilisez une politique d'autorisation personnalisée qui n'autorise pas l'[DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)action, vous devez demander l'accès à cette action avant de supprimer le point de terminaison.

**Note**  
En tant qu’utilisateur IAM, vous n’avez peut-être pas l’autorisation suffisante pour supprimer un point de terminaison si un autre utilisateur a configuré l’autoscaling pour une variante sur ce point de terminaison.