Escalado de un punto de conexión a cero instancias - Amazon SageMaker AI

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.

Escalado de un punto de conexión a cero instancias

Al configurar el escalado automático para un punto de conexión, puede permitir que el proceso de reducción horizontal disminuya el número de instancias en servicio a cero. De este modo, ahorra costos durante los períodos en los que el punto de conexión no atiende solicitudes de inferencia y, por lo tanto, no requiere instancias activas.

Sin embargo, tras reducir horizontalmente a cero instancias, el punto de conexión no podrá responder a solicitudes de inferencia entrantes hasta que aprovisione al menos una instancia. Para automatizar el proceso de aprovisionamiento, cree una política de escalado por pasos con Application Auto Scaling. A continuación, asignas la política a una CloudWatch alarma de Amazon.

Tras configurar la política de escalado por pasos y la alarma, el punto de conexión aprovisionará automáticamente una instancia poco después de recibir una solicitud de inferencia a la que no pueda responder. Tenga en cuenta que el proceso de aprovisionamiento suele tardar varios minutos. Durante ese tiempo, cualquier intento de invocar el punto de conexión producirá un error.

Los siguientes procedimientos explican cómo configurar el escalado automático para un punto de conexión de manera que se reduzca horizontalmente a cero instancias y se escale horizontalmente desde cero instancias. En los procedimientos se utilizan comandos con la AWS CLI.

Antes de empezar

Para que el punto de conexión pueda reducirse horizontalmente hacia o desde cero instancias, debe cumplir los siguientes requisitos:

  • Está en servicio.

  • Aloja uno o más componentes de inferencia. Un punto de conexión se puede reducir horizontalmente a cero instancias y escalar horizontalmente desde cero instancias únicamente si aloja componentes de inferencia.

    Para obtener información sobre el alojamiento de componentes de inferencia en puntos finales de SageMaker IA, consulte. Implementación de modelos para inferencia en tiempo real

  • En la configuración de punto de conexión, para el objeto ManagedInstanceScaling de variante de producción, ha establecido el parámetro MinInstanceCount en 0.

    Para obtener información de referencia sobre este parámetro, consulte. ProductionVariantManagedInstanceScaling

Cómo permitir que un punto de conexión se reduzca horizontalmente a cero instancias (AWS CLI)

Para cada componente de inferencia que aloja el punto de conexión, haga lo siguiente:

  1. Registre el componente de inferencia como destino escalable. Al registrarlo, defina la capacidad mínima en 0, como se muestra en el siguiente comando:

    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

    En este ejemplo, inference-component-name sustitúyalo por el nombre del componente de inferencia. nSustitúyalo por el número máximo de copias del componente de inferencia que desee aprovisionar al ampliarlo.

    Para obtener más información sobre este comando y cada uno de sus parámetros, consulte register-scalable-targetla Referencia de AWS CLI comandos.

  2. Aplique una política de seguimiento de destino al componente de inferencia, como se muestra en el siguiente comando:

    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

    En este ejemplo, inference-component-name sustitúyalo por el nombre del componente de inferencia.

    En el ejemplo, el archivo config.json contiene una configuración de política de seguimiento de destino similar a esta:

    { "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy" }, "TargetValue": 1, "ScaleInCooldown": 300, "ScaleOutCooldown": 300 }

    Para obtener más ejemplos de configuraciones de políticas de seguimiento, consulte Definir una política de escalado.

    Para obtener más información sobre este comando y cada uno de sus parámetros, consulte put-scaling-policyla Referencia de AWS CLI comandos.

Para permitir que un punto de conexión se escale horizontalmente desde cero instancias (AWS CLI)

Para cada componente de inferencia que aloja el punto de conexión, haga lo siguiente:

  1. Aplique una política de escalado por pasos al componente de inferencia, como se muestra en el siguiente comando:

    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

    En este ejemplo, my-scaling-policy sustitúyalo por un nombre único para la política. inference-component-nameSustitúyalo por el nombre del componente de inferencia.

    En el ejemplo, el archivo config.json contiene una configuración de política de escalado por pasos, como la siguiente:

    { "AdjustmentType": "ChangeInCapacity", "MetricAggregationType": "Maximum", "Cooldown": 60, "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ] }

    Cuando se activa esta política de escalado por etapas, la SageMaker IA aprovisiona las instancias necesarias para respaldar las copias de los componentes de inferencia.

    Después de crear la política de escalado por pasos, anote su nombre de recurso de Amazon (ARN). En el siguiente paso, necesitará el ARN CloudWatch de la alarma.

    Para obtener más información acerca de políticas de escalado por pasos, consulte Step scaling policies en la Guía del usuario de Application Auto Scaling.

  2. Cree una CloudWatch alarma y asígnele la política de escalado escalonado, como se muestra en el siguiente ejemplo:

    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

    En este ejemplo, step-scaling-policy-arn sustitúyalo por el ARN de tu política de escalado por pasos. ic-step-scaling-alarmSustitúyalo por el nombre que prefiera. inference-component-nameSustitúyalo por el nombre del componente de inferencia.

    En este ejemplo, se establece el --metric-name parámetro enNoCapacityInvocationFailures. SageMaker La IA emite esta métrica cuando un punto final recibe una solicitud de inferencia, pero el punto final no tiene instancias activas para atender la solicitud. Cuando se produce ese evento, la alarma inicia la política de escalado por pasos del paso anterior.

    Para obtener más información sobre este comando y cada uno de sus parámetros, consulte la put-metric-alarmReferencia de AWS CLIcomandos.