Mise à l'échelle automatique de la simultanéité provisionnée pour un point de terminaison sans serveur - Amazon SageMaker

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 de la simultanéité provisionnée pour un point de terminaison sans serveur

Amazon intègre ou déconnecte SageMaker automatiquement les points de terminaison sans serveur à la demande. Pour les points de terminaison sans serveur dotés d'une simultanéité provisionnée, vous pouvez utiliser Application Auto Scaling pour augmenter ou réduire la simultanéité provisionnée en fonction de votre profil de trafic, optimisant ainsi les coûts.

Les conditions préalables requises pour automatiquement mettre à l'échelle la simultanéité provisionnée sur les points de terminaison sans serveur sont les suivantes :

Avant de pouvoir utiliser la mise à l'échelle automatique, vous devez avoir déjà déployé un modèle vers un point de terminaison sans serveur avec la simultanéité provisionnée. Les modèles déployés sont appelés variante de production. Consultez Créer une configuration de point de terminaison et Créer un point de terminaison pour plus d'informations sur le déploiement d'un modèle sur un point de terminaison sans serveur avec la simultanéité provisionnée. Pour spécifier les métriques et les valeurs cibles d'une politique de mise à l'échelle, vous devez configurer une politique de mise à l'échelle. Pour plus d'informations sur comment définir une politique de mise à l'échelle, consultez Définition d'une stratégie de mise à l'échelle. 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é. Pour en savoir plus sur comment appliquer la politique de mise à l'échelle, consultez Application d'une stratégie de mise à l'échelle.

Pour plus de détails sur les autres prérequis et composants utilisés avec l'autoscaling, consultez la Présentation de Auto Scaling section de la documentation sur l'SageMaker autoscaling.

Enregistrement d'un modèle

Pour ajouter l'autoscaling à un point de terminaison sans serveur avec Provisioned Concurrency, vous devez d'abord enregistrer votre modèle (variante de production) à l'aide de l'API Application AWS CLI Auto Scaling.

Enregistrement d'un modèle (AWS CLI)

Pour enregistrer votre modèle, utilisez la register-scalable-target AWS CLI 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/MyEndpoint/variant/MyVariant.

  • --scalable-dimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

  • --min-capacity : le nombre minimum de simultanéité provisionnée pour le modèle. Définissez --min-capacity sur au moins 1. La valeur doit être inférieure ou égale à celle spécifiée pour --max-capacity.

  • --max-capacity : le nombre maximum de simultanéité provisionnée qui doit être activée via Application Auto Scaling. Définissez --max-capacity sur 1 au minimum. Cette valeur doit être supérieure ou égale à la valeur spécifiée pour --min-capacity.

L'exemple suivant montre comment enregistrer un modèle nommé MyVariant qui est mis à l'échelle de façon dynamique pour avoir une valeur de simultanéité provisionnée de 1 à 10 :

aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --min-capacity 1 \ --max-capacity 10

Enregistrement d'un modèle (API Application Auto Scaling)

Pour enregistrer votre modèle, utilisez l'action d'API Application Auto Scaling RegisterScalableTarget avec les paramètres suivants :

  • ServiceNamespace – Définissez cette valeur sur sagemaker.

  • ResourceId : 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/MyEndpoint/variant/MyVariant.

  • ScalableDimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

  • MinCapacity : le nombre minimum de simultanéité provisionnée pour le modèle. Définissez MinCapacity sur au moins 1. La valeur doit être inférieure ou égale à celle spécifiée pour MaxCapacity.

  • MaxCapacity : le nombre maximum de simultanéité provisionnée qui doit être activée via Application Auto Scaling. Définissez MaxCapacity sur 1 au minimum. Cette valeur doit être supérieure ou égale à la valeur spécifiée pour MinCapacity.

L'exemple suivant montre comment enregistrer un modèle nommé MyVariant qui est mis à l'échelle de façon dynamique pour avoir une valeur de simultanéité provisionnée de 1 à 10 :

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndPoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "MinCapacity": 1, "MaxCapacity": 10 }

Définition d'une stratégie de mise à l'échelle

Pour spécifier les métriques et les valeurs cibles d'une stratégie de mise à l'échelle automatique, vous configurez une stratégie de mise à l'échelle automatique avec suivi de cible. Définissez la politique de mise à l'échelle sous forme de bloc JSON dans un fichier texte. Vous pouvez ensuite utiliser ce fichier texte lorsque vous appelez l'API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling. Pour définir rapidement la politique de mise à l'échelle avec suivi de cible pour un point de terminaison sans serveur, utilisez la métrique SageMakerVariantProvisionedConcurrencyUtilization prédéfinie.

{ "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" }, "ScaleOutCooldown": 1, "ScaleInCooldown": 1 }

Application d'une stratégie de mise à l'échelle

Après avoir enregistré votre modèle, vous pouvez appliquer une politique de mise à l'échelle à votre point de terminaison sans serveur avec la simultanéité provisionnée. Consultez Application d'une politique de mise à l'échelle avec suivi de cible pour appliquer une politique de mise à l'échelle avec suivi de cible que vous avez définie. Si le flux de trafic vers votre point de terminaison sans serveur suit une routine prévisible, au lieu d'appliquer une politique de mise à l'échelle avec suivi de cible, vous souhaiterez peut-être planifier des actions de mise à l'échelle à des moments précis. Pour plus d'informations sur la planification d'actions de mise à l'échelle, consultez Mise à l’échelle planifiée.

Application d'une politique de mise à l'échelle avec suivi de cible

Vous pouvez utiliser l' AWS Management Console API Application Auto Scaling AWS CLI ou l'API Application Auto Scaling pour appliquer une politique de dimensionnement du suivi des cibles à votre point de terminaison sans serveur avec Provisioned Concurrency.

Application d'une politique de mise à l'échelle avec suivi de cible (AWS CLI)

Pour appliquer une politique de mise à l'échelle à votre modèle, utilisez la commande put-scaling-policy de l' AWS CLI 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 : 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/MyEndpoint/variant/MyVariant.

  • --service-namespace – Définissez cette valeur sur sagemaker.

  • --scalable-dimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

  • --target-tracking-scaling-policy-configuration : la configuration de la politique de mise à l'échelle avec suivi de cible à utiliser pour le modèle.

L'exemple suivant montre comment appliquer une politique de mise à l'échelle avec suivi de cible nommée MyScalingPolicy à une variante nommée MyVariant. La configuration de stratégie est enregistrée dans un fichier nommé scaling-policy.json.

aws application-autoscaling put-scaling-policy \ --policy-name MyScalingPolicy \ --policy-type TargetTrackingScaling \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --target-tracking-scaling-policy-configuration file://[file-localtion]/scaling-policy.json

Application d'une politique de mise à l'échelle avec suivi de cible (API Application Auto Scaling)

Pour appliquer une politique de mise à l'échelle à votre modèle, utilisez l'action PutScalingPolicy de l'API Application Auto Scaling avec les paramètres suivants :

  • PolicyName – Nom de la stratégie de mise à l'échelle.

  • PolicyType – Définissez cette valeur sur TargetTrackingScaling.

  • ResourceId : 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/MyEndpoint/variant/MyVariant.

  • ServiceNamespace – Définissez cette valeur sur sagemaker.

  • ScalableDimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

  • TargetTrackingScalingPolicyConfiguration : la configuration de la politique de mise à l'échelle avec suivi de cible à utiliser pour le modèle.

L'exemple suivant montre comment appliquer une politique de mise à l'échelle avec suivi de cible nommée MyScalingPolicy à une variante nommée MyVariant. La configuration de stratégie est enregistrée dans un fichier nommé scaling-policy.json.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "MyScalingPolicy", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" } } }

Application d'une politique de mise à l'échelle avec suivi de cible (AWS Management Console)

Pour appliquer une politique de dimensionnement axée sur le suivi des cibles avec : AWS Management Console

  1. Connectez-vous à la SageMakerconsole Amazon.

  2. Sous le volet de navigation, sélectionnez Inference (Inférence).

  3. Choisissez Points de terminaison pour afficher la liste de tous vos points de terminaison.

  4. Choisissez le point de terminaison auquel vous souhaitez appliquer la politique de mise à l'échelle. Une page contenant les paramètres du point de terminaison apparaîtra, avec les modèles (variante de production) répertoriés dans la section Paramètres d'exécution de point de terminaison.

  5. Sélectionnez la variante de production à laquelle vous souhaitez appliquer la politique de mise à l'échelle, puis choisissez Configurer la scalabilité automatique. La boîte de dialogue Configurer la scalabilité automatique d'une variante s'affiche.

    Capture d'écran de la boîte de dialogue de configuration de la mise à l'échelle automatique d'une variante dans la console.
  6. Entrez les valeurs de simultanéité provisionnée minimale et maximale dans les champs Simultanéité provisionnée minimale et Simultanéité provisionnée maximale dans la section Scalabilité automatique d'une variante. La simultanéité provisionnée minimale doit être inférieure ou égale à la simultanéité provisionnée maximale.

  7. Entrez la valeur cible dans le champ Valeur cible pour la métrique cible, SageMakerVariantProvisionedConcurrencyUtilization.

  8. (Facultatif) Entrez les valeurs de stabilisation de la diminution en charge et de la montée en charge (en secondes) dans les champs Stabilisation de la diminution en charge et Stabilisation de la montée en charge respectivement.

  9. (Facultatif) Sélectionnez Désactiver la diminution en charge si vous ne souhaitez pas qu'Auto Scaling supprime l'instance lorsque le trafic diminue.

  10. Sélectionnez Save.

Mise à l’échelle planifiée

Si le trafic vers votre point de terminaison sans serveur avec la simultanéité provisionnée suit un schéma de routine, vous souhaiterez peut-être planifier des actions de mise à l'échelle à des moments précis, afin d'effectuer une mise à l'échelle horizontale ou une montée en puissance de la simultanéité provisionnée. Vous pouvez utiliser le AWS CLI ou l'Application Auto Scaling pour planifier des actions de dimensionnement.

Mise à l'échelle planifiée (AWS CLI)

Pour appliquer une politique de dimensionnement à votre modèle, utilisez la commande put-scheduled-action AWS CLI ; avec les paramètres suivants :

  • --schedule-action-name : nom de l'action de mise à l'échelle.

  • --schedule : expression cron qui spécifie les heures de début et de fin de l'action de mise à l'échelle selon un calendrier récurrent.

  • --resource-id : 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/MyEndpoint/variant/MyVariant.

  • --service-namespace – Définissez cette valeur sur sagemaker.

  • --scalable-dimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

  • --scalable-target-action : cible de l'action de mise à l'échelle.

L'exemple suivant montre comment ajouter une action de mise à l'échelle nommée MyScalingAction vers un modèle nommé MyVariant selon un calendrier récurrent. Selon le calendrier spécifié (tous les jours à 12 h 15 UTC), si la simultanéité provisionnée actuelle est inférieure à la valeur spécifiée pour MinCapacity. Application Auto Scaling faire monter en puissance la simultanéité provisionnée à la valeur spécifiée par MinCapacity.

aws application-autoscaling put-scheduled-action \ --scheduled-action-name 'MyScalingAction' \ --schedule 'cron(15 12 * * ? *)' \ --service-namespace sagemaker \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --scalable-target-action 'MinCapacity=10'

Mise à l'échelle planifiée (API Application Auto Scaling)

Pour appliquer une politique de mise à l'échelle à votre modèle, utilisez l'action PutScheduledAction de l'API Application Auto Scaling avec les paramètres suivants :

  • ScheduleActionName : nom de l'action de mise à l'échelle.

  • Schedule : expression cron qui spécifie les heures de début et de fin de l'action de mise à l'échelle selon un calendrier récurrent.

  • ResourceId : 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/MyEndpoint/variant/MyVariant.

  • ServiceNamespace – Définissez cette valeur sur sagemaker.

  • ScalableDimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

  • ScalableTargetAction : cible de l'action de mise à l'échelle.

L'exemple suivant montre comment ajouter une action de mise à l'échelle nommée MyScalingAction vers un modèle nommé MyVariant selon un calendrier récurrent. Selon le calendrier spécifié (tous les jours à 12 h 15 UTC), si la simultanéité provisionnée actuelle est inférieure à la valeur spécifiée pour MinCapacity. Application Auto Scaling faire monter en puissance la simultanéité provisionnée à la valeur spécifiée par MinCapacity.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScheduledAction X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ScheduledActionName": "MyScalingAction", "Schedule": "cron(15 12 * * ? *)", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "ScalableTargetAction": "MinCapacity=10" } } }

Suppression d'une stratégie de mise à l'échelle

Vous pouvez supprimer une politique de dimensionnement à l'aide de l' AWS Management Console API Application Auto Scaling ou de l'API Application Auto Scaling. AWS CLI Pour plus d'informations sur la suppression d'une politique de dimensionnement avec le AWS Management Console, consultez Suppression d'une stratégie de mise à l'échelle la documentation sur le SageMaker dimensionnement automatique.

Suppression d'une stratégie de mise à l'échelle (interface AWS CLI)

Pour appliquer une politique de mise à l'échelle à votre modèle, utilisez la commande delete-scaling-policy de l' AWS CLI avec les paramètres suivants :

  • --policy-name – Nom de la stratégie de mise à l'échelle.

  • --resource-id : 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/MyEndpoint/variant/MyVariant.

  • --service-namespace – Définissez cette valeur sur sagemaker.

  • --scalable-dimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

L'exemple suivant supprime une politique de mise à l'échelle nommée MyScalingPolicy du modèle nommé MyVariant.

aws application-autoscaling delete-scaling-policy \ --policy-name MyScalingPolicy \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant

Suppression d'une stratégie de mise à l'échelle (API Application Auto Scaling)

Pour supprimer une politique de mise à l'échelle de votre modèle, utilisez l'action DeleteScalingPolicy de l'API Application Auto Scaling avec les paramètres suivants :

  • PolicyName – Nom de la stratégie de mise à l'échelle.

  • ResourceId : 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/MyEndpoint/variant/MyVariant.

  • ServiceNamespace – Définissez cette valeur sur sagemaker.

  • ScalableDimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

L'exemple suivant utilise l'API Application Auto Scaling pour supprimer une politique de mise à l'échelle nommée MyScalingPolicy du modèle nommé MyVariant.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "MyScalingPolicy", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", }

Annulation de l'enregistrement d'un modèle

Vous pouvez annuler l'enregistrement d'un modèle à l'aide de l' AWS Management Console API Application Auto Scaling ou de l'API Application Auto Scaling. AWS CLI

Annulation de l'enregistrement d'un modèle (AWS CLI)

Pour annuler l'enregistrement d'un modèle d'Application Auto Scaling, utilisez la commande deregister-scalable-target de l' AWS CLI avec les paramètres suivants :

  • --resource-id : 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/MyEndpoint/variant/MyVariant.

  • --service-namespace – Définissez cette valeur sur sagemaker.

  • --scalable-dimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

L'exemple suivant annule l'enregistrement d'un modèle nommé MyVariant d'Application Auto Scaling.

aws application-autoscaling deregister-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant

Annulation de l'enregistrement d'un modèle (API Application Auto Scaling)

Pour annuler l'enregistrement d'un modèle avec Application Auto Scaling, utilisez l'action DeregisterScalableTarget d'API Application Auto Scaling avec les paramètres suivants :

  • ResourceId : 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/MyEndpoint/variant/MyVariant.

  • ServiceNamespace – Définissez cette valeur sur sagemaker.

  • ScalableDimension – Définissez cette valeur sur sagemaker:variant:DesiredProvisionedConcurrency.

L'exemple suivant utilise l'API Application Auto Scaling pour annuler l'enregistrement d'un modèle nommé MyVariant d'Application Auto Scaling.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.DeregisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", }

Annulation de l'enregistrement d'un modèle (AWS Management Console)

Pour annuler l'enregistrement d'un modèle (variante de production) avec : AWS Management Console

  1. Ouvrez la SageMaker console Amazon.

  2. Sous le panneau de navigation, choisissez Inférence.

  3. Choisissez Points de terminaison pour afficher la liste de vos points de terminaison.

  4. Choisissez le point de terminaison sans serveur hébergeant la variante de production. Une page contenant les paramètres du point de terminaison apparaîtra, avec les variantes de production répertoriées dans la section Paramètres d'exécution de point de terminaison.

  5. Sélectionnez la variante de production dont vous souhaitez annuler l'enregistrement, puis choisissez Configurer la scalabilité automatique. La boîte de dialogue Configurer la scalabilité automatique d'une variante s'affiche.

  6. Choisissez Annuler l'enregistrement de la scalabilité automatique.