Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Amazon SageMaker AI escala automáticamente los puntos de conexión sin servidor bajo demanda para ampliarlos o reducirlos. Para los puntos de conexión sin servidor con simultaneidad aprovisionada, puede utilizar Application Auto Scaling para aumentar o reducir la simultaneidad aprovisionada en función de su perfil de tráfico, optimizando así los costes.
He aquí los requisitos previos para escalar automáticamente la simultaneidad aprovisionada en los puntos de conexión sin servidor:
Para poder utilizar el escalado automático, debe haber implementado ya un modelo en un punto de conexión sin servidor con la simultaneidad aprovisionada. Los modelos desplegados se conocen como variantes de producción. Consulte Creación de una configuración de punto de conexión y Crear un punto de conexión para obtener más información sobre la implementación de un modelo en un punto de conexión sin servidor con la simultaneidad aprovisionada. Para especificar las métricas y los valores de destino para una política de escalado, deberá configurar una política de escalado. Para obtener más información sobre cómo definir una política de escalado, consulte Definir una política de escalado. Una vez registrado su modelo y definido una política de escalado, aplique la política de escalado al modelo registrado. Para obtener información sobre cómo aplicar la política de escalado, consulte Aplicar una política de escalado.
Registrar un modelo
Para añadir el escalado automático a un punto final sin servidor con Provisioned Concurrency, primero debe registrar su modelo (variante de producción) mediante la API Application AWS CLI Auto Scaling.
Registrar un modelo (AWS CLI)
Para registrar el modelo, utilice el register-scalable-target
AWS CLI comando con los siguientes parámetros:
-
--service-namespace
: establezca este valor ensagemaker
. -
--resource-id
: el identificador de recursos del modelo (específicamente, la variante de producción). Para este parámetro, el tipo de recurso esendpoint
y el identificador único es el nombre de la variante de producción. Por ejemplo,endpoint/MyEndpoint/variant/MyVariant
. -
--scalable-dimension
: establezca este valor ensagemaker:variant:DesiredProvisionedConcurrency
. -
--min-capacity
: el número mínimo de simultaneidad aprovisionada para el modelo. Establezca--min-capacity
en al menos 1. Debe ser igual o inferior al valor especificado para--max-capacity
. -
--max-capacity
: el número máximo de simultaneidad aprovisionada que debe habilitarse mediante Application Auto Scaling. Establezca--max-capacity
en un mínimo de 1. Debe ser mayor o igual que el valor especificado para--min-capacity
.
El siguiente ejemplo muestra cómo registrar un modelo denominado MyVariant
que se escala dinámicamente para tener un valor de simultaneidad aprovisionada de 1 a 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
Registrar un modelo (API de Application Auto Scaling)
Para registrar su modelo, utilice la acción de la API de Application Auto Scaling RegisterScalableTarget
con los siguientes parámetros:
-
ServiceNamespace
: establezca este valor ensagemaker
. -
ResourceId
: el identificador de recursos del modelo (específicamente, la variante de producción). Para este parámetro, el tipo de recurso esendpoint
y el identificador único es el nombre de la variante de producción. Por ejemplo,endpoint/MyEndpoint/variant/MyVariant
. -
ScalableDimension
: establezca este valor ensagemaker:variant:DesiredProvisionedConcurrency
. -
MinCapacity
: el número mínimo de simultaneidad aprovisionada para el modelo. EstablezcaMinCapacity
en al menos 1. Debe ser igual o inferior al valor especificado paraMaxCapacity
. -
MaxCapacity
: el número máximo de simultaneidad aprovisionada que debe habilitarse mediante Application Auto Scaling. EstablezcaMaxCapacity
en un mínimo de 1. Debe ser mayor o igual que el valor especificado paraMinCapacity
.
El siguiente ejemplo muestra cómo registrar un modelo denominado MyVariant
que se escala dinámicamente para tener un valor de simultaneidad aprovisionada de 1 a 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
}
Definir una política de escalado
Para especificar las métricas y los valores de destino para una política de escalado, puede configurar una política de escalado de seguimiento de destino. Defina la política de escalado como un bloque JSON en un archivo de texto. A continuación, puede utilizar ese archivo de texto al invocar la API Application Auto Scaling AWS CLI o la API. Para definir rápidamente una política de escalado de seguimiento de destino para un punto de conexión sin servidor, utilice la métrica predefinida SageMakerVariantProvisionedConcurrencyUtilization
.
{
"TargetValue": 0.5,
"PredefinedMetricSpecification":
{
"PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization"
},
"ScaleOutCooldown": 1,
"ScaleInCooldown": 1
}
Aplicar una política de escalado
Una vez registrado su modelo, podrá aplicar una política de escalado a su punto de conexión sin servidor con la simultaneidad aprovisionada. Consulte Aplicar una política de escalado de seguimiento de destino para aplicar una política de escalado de seguimiento de destino que haya definido. Si el flujo de tráfico hacia su punto de conexión sin servidor sigue una rutina predecible, en lugar de aplicar una política de escalado basada en el seguimiento de los objetivos, puede que quiera programar las acciones de escalado en momentos específicos. Para obtener más información sobre las acciones de escalado de programación, consulte Escalado programado.
Aplicar una política de escalado de seguimiento de destino
Puede usar la AWS Management Console API Application Auto Scaling AWS CLI o la API para aplicar una política de escalado de seguimiento de objetivos a su terminal sin servidor con Provisioned Concurrency.
Aplicar una política de escalado de seguimiento de destino (AWS CLI)
Para aplicar una política de escalado a su modelo, use el comando put-scaling-policy
de la AWS CLI con los siguientes parámetros:
-
--policy-name
: el nombre de la política de escalado. -
--policy-type
: establezca este valor enTargetTrackingScaling
. -
--resource-id
: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso esendpoint
y el identificador único es el nombre de la variante. Por ejemplo,endpoint/MyEndpoint/variant/MyVariant
. -
--service-namespace
: establezca este valor ensagemaker
. -
--scalable-dimension
: establezca este valor ensagemaker:variant:DesiredProvisionedConcurrency
. -
--target-tracking-scaling-policy-configuration
: configuración de la política de escalado de seguimiento de destino que se usará para el modelo.
El siguiente ejemplo muestra cómo aplicar una política de escalado de seguimiento de destino nombrada MyScalingPolicy
a un modelo llamado MyVariant
. La configuración de la política se guarda en un archivo denominado 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
Aplicar una política de escalado de seguimiento de destino (API de Application Auto Scaling)
Para aplicar una política de escalado a su modelo, use la acción de la API de Application Auto Scaling PutScalingPolicy
con los siguientes parámetros.
-
PolicyName
: el nombre de la política de escalado. -
PolicyType
: establezca este valor enTargetTrackingScaling
. -
ResourceId
: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso esendpoint
y el identificador único es el nombre de la variante. Por ejemplo,endpoint/MyEndpoint/variant/MyVariant
. -
ServiceNamespace
: establezca este valor ensagemaker
. -
ScalableDimension
: establezca este valor ensagemaker:variant:DesiredProvisionedConcurrency
. -
TargetTrackingScalingPolicyConfiguration
: configuración de la política de escalado de seguimiento de destino que se usará para el modelo.
El siguiente ejemplo muestra cómo aplicar una política de escalado de seguimiento de destino nombrada MyScalingPolicy
a un modelo llamado MyVariant
. La configuración de la política se guarda en un archivo denominado 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"
}
}
}
Aplicar una política de escalado de seguimiento de destino (AWS Management Console)
Para aplicar una política de escalado de seguimiento de objetivos con: AWS Management Console
-
Inicia sesión en la consola de Amazon SageMaker AI
. -
En el panel de navegación, elija Inferencia.
-
Seleccione punto de conexión para ver una lista de todos sus puntos de conexión.
-
Seleccione el punto de conexión al que quiera aplicar la política de escalado. Aparecerá una página con la configuración del punto de conexión, con los modelos (variante de producción) listados en la sección de configuración del tiempo de ejecución del punto de conexión.
-
Seleccione la variante de producción a la que quiera aplicar la política de escalado y elija Configurar el autoescalado. Aparecerá la página Configurar escalado automático de variantes.
-
Introduzca los valores mínimo y máximo de simultaneidad aprovisionada en los campos Simultaneidad mínima aprovisionada y Simultaneidad máxima aprovisionada, respectivamente, en la sección Escalado automático de variantes. La simultaneidad mínima aprovisionada debe ser menor o igual que la simultaneidad máxima aprovisionada.
-
Introduzca el valor objetivo en el campo Valor objetivo de la métrica de destino,
SageMakerVariantProvisionedConcurrencyUtilization
. -
(Opcional) Introduzca los valores de recuperación de escalado descendente y recuperación de escalado ascendente (en segundos) en los campos Recuperación de escalado descendente y Recuperación de escalado ascendente respectivamente.
-
(Opcional) Seleccione Desactivar escalado descendente si no desea que el escalado automático elimine la instancia cuando disminuye el tráfico.
-
Seleccione Guardar.
Escalado programado
Si el tráfico hacia su punto de conexión sin servidor con la simultaneidad aprovisionada sigue un patrón rutinario, puede programar acciones de escalado en momentos específicos, para escalar de forma descendente o ascendente la simultaneidad aprovisionada. Puede utilizar la aplicación Auto Scaling AWS CLI o la aplicación Auto Scaling para programar acciones de escalado.
Escalado programado (AWS CLI)
Para aplicar una política de escalado al modelo, utilice el comando put-scheduled-action
AWS CLI; con los siguientes parámetros:
-
--schedule-action-name
: el nombre de la acción de escalado. -
--schedule
: una expresión cron que especifica las horas de inicio y finalización de la acción de escalado con una programación periódica. -
--resource-id
: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso esendpoint
y el identificador único es el nombre de la variante. Por ejemplo,endpoint/MyEndpoint/variant/MyVariant
. -
--service-namespace
: establezca este valor ensagemaker
. -
--scalable-dimension
: establezca este valor ensagemaker:variant:DesiredProvisionedConcurrency
. -
--scalable-target-action
: el destino de la acción de escalado.
El siguiente ejemplo muestra cómo agregar una acción de escalado denominada MyScalingAction
a un modelo nombrado MyVariant
en una programación recurrente. En el momento de la programación especificada (todos los días a las 12:15 PM UTC), si la simultaneidad aprovisionada actual es inferior al valor especificado para MinCapacity
. Application Auto Scaling escala horizontalmente la simultaneidad aprovisionada al valor especificado por 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'
Escalado programado (API de Application Auto Scaling API)
Para aplicar una política de escalado a su modelo, utilice la acción de la API de Application Auto Scaling PutScheduledAction
con los siguientes parámetros:
-
ScheduleActionName
: el nombre de la acción de escalado. -
Schedule
: una expresión cron que especifica las horas de inicio y finalización de la acción de escalado con una programación periódica. -
ResourceId
: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso esendpoint
y el identificador único es el nombre de la variante. Por ejemplo,endpoint/MyEndpoint/variant/MyVariant
. -
ServiceNamespace
: establezca este valor ensagemaker
. -
ScalableDimension
: establezca este valor ensagemaker:variant:DesiredProvisionedConcurrency
. -
ScalableTargetAction
: el destino de la acción de escalado.
El siguiente ejemplo muestra cómo agregar una acción de escalado denominada MyScalingAction
a un modelo nombrado MyVariant
en una programación recurrente. En el momento de la programación especificada (todos los días a las 12:15 PM UTC), si la simultaneidad aprovisionada actual es inferior al valor especificado para MinCapacity
. Application Auto Scaling escala horizontalmente la simultaneidad aprovisionada al valor especificado por 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"
}
}
}