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.
Redimensionner un point de terminaison à zéro instance
Lorsque vous configurez le dimensionnement automatique pour un point de terminaison, vous pouvez autoriser le processus d'évolutivité à 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, une fois le nombre d'instances réduit à zéro, 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 devez créer une politique de dimensionnement par étapes avec Application Auto Scaling. Ensuite, vous assignez la politique à une CloudWatch alarme Amazon.
Une fois que vous avez configuré la politique de dimensionnement des é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 plusieurs minutes. Pendant ce temps, toute tentative d'invoquer le point de terminaison produira une erreur.
Les procédures suivantes expliquent comment configurer le dimensionnement automatique pour un point de terminaison afin qu'il puisse évoluer vers et hors de zéro instance. Les procédures utilisent des commandes avec le AWS CLI.
Avant de commencer
Avant que votre point de terminaison puisse évoluer jusqu'à zéro instance et en sortir, 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 évoluer jusqu'à 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éployez des modèles pour une inférence en temps réel
-
Dans la configuration du point de terminaison, pour l'
ManagedInstanceScaling
objet variant de production, vous avez défini leMinInstanceCount
paramètre sur0
.Pour obtenir des informations de référence sur ce paramètre, consultez ProductionVariantManagedInstanceScaling.
Pour permettre à un point de terminaison de passer à zéro instance (AWS CLI)
Pour chaque composant d'inférence hébergé par le point de terminaison, procédez comme suit :
-
Enregistrez le 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-capacityn
Dans cet exemple, remplacez-le
inference-component-name
par le nom de votre composant d'inférence. Remplacezn
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-targetla référence des AWS CLI commandes.
-
Appliquez une politique de 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.jsonDans cet exemple, remplacez-le
inference-component-name
par le nom de votre composant d'inférence.Dans l'exemple, le
config.json
fichier contient une configuration de politique de suivi des cibles, telle que la suivante :{ "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy" }, "TargetValue": 1, "ScaleInCooldown": 300, "ScaleOutCooldown": 300 }
Pour plus d'exemples de configurations de politiques de suivi, voirDé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 de passer à zéro instance (AWS CLI)
Pour chaque composant d'inférence hébergé par le point de terminaison, procédez comme suit :
-
Appliquez une politique de dimensionnement 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 \ --target-tracking-scaling-policy-configuration file://config.jsonDans 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
config.json
fichier contient une configuration de politique de dimensionnement 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 politique de dimensionnement des étapes, notez son nom de ressource Amazon (ARN). Vous aurez besoin ARN de l' CloudWatch alarme à l'étape suivante.
Pour plus d'informations sur les politiques de dimensionnement par étapes, consultez la section Politiques de dimensionnement par étapes dans le Guide de l'utilisateur d'Application Auto Scaling.
-
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-nameic-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 1Dans cet exemple, remplacez
step-scaling-policy-arn
par le ARN de votre politique de dimensionnement 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 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 politique de dimensionnement des é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.