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érequis pour le dimensionnement automatique 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 Application Auto AWS CLI Scaling. API

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

Enregistrer un modèle (Application Auto ScalingAPI)

Pour enregistrer votre modèle, utilisez l'APIaction RegisterScalableTarget Application Auto Scaling 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 dimensionnement sous forme de JSON bloc dans un fichier texte. Vous pouvez ensuite utiliser ce fichier texte lorsque vous invoquez le AWS CLI ou l'Application Auto ScalingAPI. 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 le AWS CLI ou l' AWS Management Console Application Auto Scaling API 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

Appliquer une politique de dimensionnement pour le suivi des cibles (Application Auto Scaling) API

Pour appliquer une politique de dimensionnement à votre modèle, utilisez l'APIaction PutScalingPolicy 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 15UTC), 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'

Dimensionnement planifié (Application Auto ScalingAPI)

Pour appliquer une politique de dimensionnement à votre modèle, utilisez l'APIaction PutScheduledAction 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 15UTC), 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" } } }