Prerequisites - Amazon SageMaker

Prerequisites

Avant de pouvoir utiliser la scalabilité automatique, vous devez avoir créé un déploiement de modèle Amazon SageMaker. Les modèles déployés sont appelés variante de production. Cela inclut des informations sur le modèle et les ressources utilisées pour l'héberger.

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.

Pour activer la scalabilité automatique d'un modèle, vous pouvez utiliser la console, la AWS CLI ou l'API Application Auto Scaling. Il est recommandé d'essayer de Configuration de la mise à l'échelle automatique d'un modèle avec la console pour vous familiariser avec les exigences et pour tester votre première configuration de mise à l'échelle automatique. Lorsque vous utilisez la AWS CLI ou Application Auto Scaling, le flux consiste à enregistrer le modèle, définir la stratégie de mise à l'échelle, puis à l'appliquer. La présentation suivante fournit de plus amples détails sur les conditions préalables et les composants utilisés avec la mise à l'échelle automatique.

Présentation de la stratégie de mise à l'échelle automatique

Pour utiliser la scalabilité automatique, vous définissez et appliquez une stratégie de mise à l'échelle qui utilise les métriques Amazon CloudWatch et les valeurs cibles que vous attribuez. La mise à l'échelle automatique utilise la stratégie pour augmenter ou diminuer le nombre d'instances en réponse aux charges de travail réelles.

Vous pouvez utiliser AWS Management Console pour appliquer une stratégie de dimensionnement basée sur une métrique prédéfinie. Une métrique prédéfinie est définie dans une énumération de telle sorte que vous pouvez la spécifier par son nom dans le code ou l'utiliser dans AWS Management Console. Vous pouvez également utiliser l'AWS Command Line Interface (AWS CLI) ou l'API Auto Scaling de l'application pour appliquer une stratégie de mise à l'échelle basée sur une métrique personnalisée ou prédéfinie.

Il existe deux types de stratégies de mise à l'échelle prises en charge : la mise à l'échelle avec suivi de cible et la mise à l'échelle par étapes. Il est recommandé d'utiliser des stratégies de mise à l'échelle avec suivi de cible pour votre configuration de mise à l'échelle automatique. Vous configurez la stratégie de mise à l'échelle avec suivi de cible en spécifiant une métrique prédéfinie ou personnalisée, ainsi qu'une valeur cible pour la métrique. Pour de plus amples informations sur l'utilisation des stratégies de mise à l’échelle avec suivi de cible Application Auto Scaling, veuillez consulter Target Tracking Scaling Policies (Stratégies de mise à l’échelle avec suivi de cible).

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. Sinon, il est préférable d'utiliser la mise à l'échelle avec suivi de cible, car elle sera entièrement automatisée. Pour de plus amples informations sur l'utilisation des stratégies de mise à l’échelle d'étape Application Auto Scaling, consultez Step Scaling Policies (Stratégies de mise à l’échelle d'étape).

Une stratégie de mise à l'échelle comporte les éléments suivants :

  • Une métrique cible : la métrique Amazon CloudWatch que la scalabilité automatique SageMaker utilise pour déterminer quand et combien mettre à l'échelle.

  • Capacités maximale et minimale : les nombres minimal et maximal d'instances à utiliser pour la mise à l’échelle.

  • Un temps de stabilisation : la durée, en secondes, entre la fin d'une activité de mise à l'échelle horizontale ou de montée en puissance et le début d'une autre activité de montée en puissance.

  • Autorisations requises : les autorisations requises pour effectuer des actions de scalabilité automatique.

  • Un rôle lié au service : un rôle AWS Identity and Access Management (IAM) lié à un service AWS spécifique. Un rôle lié au service comprend toutes les autorisations requises par le service pour appeler d'autres services AWS en votre nom. La scalabilité automatique SageMaker génère automatiquement ce rôle, AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint, pour vous.

Métrique cible pour la mise à l'échelle automatique

Les alarmes Amazon CloudWatch déclenchent la stratégie de mise à l'échelle, qui calcule comment ajuster la mise à l'échelle en fonction de la métrique et de la valeur cible que vous définissez. La stratégie de dimensionnement ajoute ou supprime les instances de point de terminaison comme requis pour maintenir la métrique à la valeur cible spécifiée ou à une valeur proche. En outre, une stratégie de mise à l'échelle avec suivi de cible s'ajuste également aux fluctuations de la métrique lors d'une modification de la charge de travail. La stratégie de mise à l'échelle réduit au maximum les fluctuations rapides du nombre d'instances disponibles pour votre modèle.

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.

Une capacité maximale et minimale

Vous pouvez spécifier le nombre maximal d'instances de point de terminaison pour le modèle. La valeur maximale doit être égale ou supérieure à la valeur spécifiée pour le nombre minimal d'instances de point de terminaison. La scalabilité automatique SageMaker n'applique pas de limite pour cette valeur.

Vous devez également spécifier le nombre minimal d'instances pour le modèle. Cette valeur doit être au moins égale à 1 et égale ou inférieure à la valeur spécifiée pour le nombre maximal d'instances de point de terminaison.

Pour déterminer le nombre minimal et le nombre maximal d'instances dont vous avez besoin pour un trafic classique, testez votre configuration de mise à l'échelle automatique avec le débit attendu de trafic pour votre modèle.

Important

Une mise à l'échelle horizontale se produit en l'absence de trafic : si le trafic d'une variante devient nul, SageMaker se met à l'échelle horizontale automatiquement par rapport au nombre minimal d'instances spécifiées. Dans ce cas, SageMaker émet des métriques de valeur nulle. Le nombre minimal d'instances doit être égal ou supérieur à 1.

Temps de stabilisation

Réglez la réactivité de votre stratégie de mise à l'échelle en ajoutant un temps de stabilisation. Un temps de stabilisation contrôle à quel moment une diminution de charge est appliquée à votre modèle (avec une réduction des instances) ou une montée en charge est appliquée à votre modèle (avec une augmentation des instances). Il procède en bloquant les demandes de diminution de charge ou de montée en charge suivantes jusqu'à ce que la période expire. La suppression des instances pour les demandes de diminution de charge s'en trouve ralentie, ainsi que la création d'instances pour les demandes de montée en charge. Un temps de stabilisation permet de s'assurer qu'aucune instance additionnelle n'est lancée ni résiliée par la stratégie de mise à l'échelle avant que l'activité de mise à l'échelle précédente n'ait pris effet. Après que le dimensionnement automatique a mis dynamiquement à l'échelle à l'aide d'une stratégie de dimensionnement, il attend la fin du temps de stabilisation avant de reprendre son activité.

Vous configurez le temps de stabilisation dans votre stratégie de dimensionnement automatique. Vous pouvez spécifier les temps de stabilisation suivants :

  • Une activité de diminution de charge réduit le nombre d'instances. Un temps de stabilisation de diminution en charge spécifie la durée, en secondes, devant s'écouler entre la fin d'une activité de diminution et le début d'une autre.

  • Une activité de montée en charge augmente le nombre d'instances. Un temps de stabilisation de montée en charge spécifie la durée, en secondes, devant s'écouler entre la fin d'une activité de montée en charge et le début d'une autre.

Si vous ne spécifiez pas un temps de stabilisation de diminution ou d'augmentation de charge, le dimensionnement automatique 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 dimensionnement automatique, 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 scalabilité automatique 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.

Permissions

La stratégie IAM SagemakerFullAccessPolicy possède toutes les autorisations IAM requises pour effectuer la scalabilité automatique. Pour plus d'informations sur les autorisations IAM SageMaker, consultez Rôles SageMaker.

Si vous utilisez une stratégie d'autorisation personnalisée, vous devez inclure les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": "*" } { "Action": [ "application-autoscaling:*" ], "Effect": "Allow", "Resource": "*" } { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "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

La mise à l'échelle automatique utilise le rôle AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint lié au service ; il est créé automatiquement pour vous. Un rôle lié à un service est un type unique de rôle IAM directement lié à un service AWS. Les rôles liés à un service sont prédéfinis par le service et comprennent toutes les autorisations nécessaires au service pour appeler d'autres services AWS en votre nom. Pour de plus amples informations, veuillez consulter Rôles liés à un service.