Mise à l’échelle d’un point de terminaison à zéro instance - Amazon SageMaker AI

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 d’un point de terminaison à zéro instance

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

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

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 du dimensionnement.

    Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez register-scalable-targetla référence des AWS CLI commandes.

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

    Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez put-scaling-policyla 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-nameRemplacez-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 dans le Guide de l’utilisateur Application Auto Scaling.

  2. 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 de dimensionnement des étapes. Remplacez ic-step-scaling-alarm par le nom de votre choix. inference-component-nameRemplacez-le par le nom de votre composant d'inférence.

    Cet exemple définit le --metric-name paramètre surNoCapacityInvocationFailures. 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-alarmla référence des AWS CLI commandes.