

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 automático de los modelos de Amazon SageMaker AI
<a name="endpoint-auto-scaling"></a>

Amazon SageMaker AI admite el escalado automático (autoescalado) para sus modelos alojados. El *escalado automático* ajusta dinámicamente el número de instancias aprovisionadas para un modelo en respuesta a los cambios en su carga de trabajo. Cuando la carga de trabajo aumenta, el escalado automático proporciona más instancias en línea. Cuando la carga de trabajo desciende, el escalado automático quita las instancias innecesarias, a fin de que no pague por las instancias aprovisionadas que no utiliza.

**Topics**
+ [Información general sobre las políticas de escalado automático](endpoint-auto-scaling-policy.md)
+ [Requisitos previos de escalado automático](endpoint-auto-scaling-prerequisites.md)
+ [Configuración del escalado automático de modelos con la consola](endpoint-auto-scaling-add-console.md)
+ [Registrar un modelo](endpoint-auto-scaling-add-policy.md)
+ [Definir una política de escalado](endpoint-auto-scaling-add-code-define.md)
+ [Aplicar una política de escalado](endpoint-auto-scaling-add-code-apply.md)
+ [Instrucciones para editar una política de escalado](endpoint-auto-scaling-edit.md)
+ [Cierre temporal de las políticas de escalado](endpoint-auto-scaling-suspend-scaling-activities.md)
+ [Eliminación de una política de escalado](endpoint-auto-scaling-delete.md)
+ [Comprobación del estado de una actividad de escalado describiendo las actividades de escalado](endpoint-scaling-query-history.md)
+ [Escalado de un punto de conexión a cero instancias](endpoint-auto-scaling-zero-instances.md)
+ [Prueba de carga de la configuración de escalado automático](endpoint-scaling-loadtest.md)
+ [Se utiliza CloudFormation para crear una política de escalado](endpoint-scaling-cloudformation.md)
+ [Actualización de puntos de conexión que utilizan el escalado automático](endpoint-scaling-update.md)
+ [Eliminación de puntos de conexión configurados para el escalado automático](endpoint-delete-with-scaling.md)

# Información general sobre las políticas de escalado automático
<a name="endpoint-auto-scaling-policy"></a>

Para usar el escalado automático, debe definir una política de escalado que agregue y elimine el número de instancias de la variante de producción en respuesta a las cargas de trabajo reales.

Para escalar automáticamente a medida que se producen cambios en la carga de trabajo, tiene dos opciones: políticas de seguimiento de destino y de escalado por pasos. 

En la mayoría de los casos, recomendamos utilizar políticas de escalado de seguimiento de destino. Con el seguimiento objetivo, eliges una CloudWatch métrica y un valor objetivo de Amazon. El escalado automático crea y gestiona las CloudWatch alarmas de la política de escalado y calcula el ajuste de escalado en función de la métrica y el valor objetivo. La política agrega o quita las instancias en función de las necesidades para mantener la métrica en el valor objetivo especificado o en un valor próximo. Por ejemplo, una política de escalado que utiliza la métrica predefinida `InvocationsPerInstance` con un valor de destino de 70 puede mantener `InvocationsPerInstance` en 70 o cerca de ese valor. Para obtener más información, consulte [Políticas de escalado de seguimiento de destino](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) en la *Guía del usuario de Application Auto Scaling*.

Puede utilizar el escalado por pasos cuando necesite una configuración avanzada, como especificar cuántas instancias se implementarán y en qué condiciones. Por ejemplo, debe usar el escalado por pasos si desea permitir que un punto de conexión se escale horizontalmente desde cero instancias activas. Para obtener más información acerca de políticas de escalado por pasos y su funcionamiento, consulte [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) en la *Guía del usuario de Application Auto Scaling*.

Para crear una política de escalado de seguimiento de destino, debe especificar lo siguiente:
+ **Métrica**: la CloudWatch métrica que se debe rastrear, como el número promedio de invocaciones por instancia. 
+ **Valor objetivo**: el valor objetivo de la métrica, como 70 invocaciones por instancia por minuto.

Puede crear políticas de escalado de seguimiento de destino con métricas predefinidas o personalizadas. Una métrica predefinida se define en una enumeración para que puedas especificarla por su nombre en el código o utilizarla en la consola de SageMaker IA. También puede utilizar la AWS CLI o la API de Application Auto Scaling para aplicar una política de escalado de seguimiento de destino basada en una métrica predefinida o personalizada.

Tenga en cuenta que las actividades de escalado se realizan con periodos de recuperación entre ellas para evitar fluctuaciones rápidas de la capacidad. Si lo desea, puede configurar los periodos de recuperación para su política de escalado. 

Para obtener más información acerca de los conceptos clave del escalado automático, consulte la siguiente sección.

## Escalado basado en programación
<a name="scheduled-scaling"></a>

También puede crear acciones programadas para realizar actividades de escalado en momentos específicos. Puede crear acciones programadas que se escalen solo una vez o que se escalen según un cronograma recurrente. Después de ejecutar una acción programada, la política de escalado puede seguir tomando decisiones sobre si desea escalar dinámicamente a medida que se producen cambios en la carga de trabajo. El escalado programado solo se puede gestionar desde la API Application Auto Scaling AWS CLI o desde ella. Para obtener más información, consulte [Escalado programado](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) en la *Guía del usuario de Auto Scaling de aplicaciones*.

## Límites de escalado máximo y mínimo
<a name="endpoint-auto-scaling-target-capacity"></a>

Al configurar el escalado automático, debe especificar sus límites de escalado antes de crear una política de escalado. Configure los límites por separado para los valores mínimo y máximo.

Este valor debe ser al menos 1, e igual o inferior al valor especificado para el máximo.

El valor máximo debe ser igual o superior al valor especificado para el valor mínimo. SageMaker El escalado automático mediante IA no impone un límite para este valor.

Para determinar los límites de escalado que necesita para el tráfico normal, pruebe la configuración de escalado automático con la tasa de tráfico esperada para su modelo.

Si el tráfico de una variante se reduce a cero, la SageMaker IA se ajusta automáticamente al número mínimo de instancias especificado. En este caso, la SageMaker IA emite métricas con un valor de cero.

Hay tres opciones para especificar la capacidad mínima y máxima:

1. Utilice la consola para actualizar la configuración del **número mínimo de instancias** y el **número máximo de instancias**.

1. Utilice las opciones AWS CLI e incluya las `--max-capacity` opciones `--min-capacity` y al ejecutar el [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)comando.

1. Llame a la [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)API y especifique los `MaxCapacity` parámetros `MinCapacity` y.

**sugerencia**  
Puede escalar horizontalmente de forma manual aumentando el valor mínimo, o reducir horizontalmente de forma manual reduciendo el valor máximo.

## Periodo de recuperación
<a name="endpoint-auto-scaling-target-cooldown"></a>

Se utiliza un *periodo de recuperación* para proteger contra el escalado excesivo cuando el modelo se reduzca horizontalmente (reducción de la capacidad) o se escale horizontalmente (aumento de la capacidad). Se hace ralentizando las actividades de escalado posteriores hasta que venza el periodo. En concreto, bloquea la eliminación de las instancias para las solicitudes de reducción horizontal y limita la creación de instancias de solicitudes de escalado horizontal. Para obtener más información, consulte [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) en la *Guía del usuario de Application Auto Scaling*. 

El periodo de recuperación se configura en la política de escalado. 

Si no especifica un periodo de recuperación de reducción horizontal o escalado horizontal, la política de escalado utiliza el valor predeterminado, que es 300 segundos en cada uno de ellos.

Si las instancias se agregan o quitan demasiado rápido al probar la configuración del escalado, plantéese aumentar ese valor. Puede ver este comportamiento si el tráfico al modelo tiene muchos picos, o si dispone de varias políticas de escalado definidas para una variante.

Si las instancias no se agregan lo suficientemente rápido como para tratar el aumento del tráfico, considere reducir este valor.

## Recursos relacionados
<a name="auto-scaling-related-resources"></a>

Para obtener más información sobre la configuración del escalado automático, vea los siguientes recursos:
+ Sección [application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling) de la *Referencia de comandos de la AWS CLI *
+ [Referencia de la API de Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/APIReference/)
+ [Guía del usuario de la aplicación Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/)

**nota**  
SageMaker La IA introdujo recientemente nuevas capacidades de inferencia basadas en puntos finales de inferencia en tiempo real. Se crea un punto final de SageMaker IA con una configuración de punto final que define el tipo de instancia y el recuento inicial de instancias del punto final. A continuación, cree un componente de inferencia, que es un objeto de alojamiento de SageMaker IA que puede utilizar para implementar un modelo en un punto final. Para obtener información sobre cómo escalar los componentes de inferencia, consulte La [SageMaker IA añade nuevas capacidades de inferencia para ayudar a reducir los costes de despliegue y la latencia del modelo básico](https://aws.amazon.com/blogs/aws/amazon-sagemaker-adds-new-inference-capabilities-to-help-reduce-foundation-model-deployment-costs-and-latency/) y [reduce los costes de despliegue del modelo en un 50% de media utilizando las últimas funciones de SageMaker IA](https://aws.amazon.com/blogs/machine-learning/reduce-model-deployment-costs-by-50-on-average-using-sagemakers-latest-features/) publicadas en el blog. AWS 

# Requisitos previos de escalado automático
<a name="endpoint-auto-scaling-prerequisites"></a>

Antes de poder utilizar el escalado automático, debe haber creado ya un punto final del modelo Amazon SageMaker AI. Puede tener varias versiones del modelo para el mismo punto de conexión. Cada modelo se denomina [variante de producción (modelo)](model-ab-testing.md). Para obtener más información sobre la implementación de un punto de enlace del modelo, consulte [Implemente el modelo en los servicios de alojamiento de SageMaker IA](ex1-model-deployment.md#ex1-deploy-model).

Para activar el autoescalado de un modelo, puede usar la consola de SageMaker IA, el AWS Command Line Interface (AWS CLI) o un AWS SDK a través de la API Application Auto Scaling. 
+ Si es la primera vez que configura el escalado de un modelo, le recomendamos [Configuración del escalado automático de modelos con la consola](endpoint-auto-scaling-add-console.md). 
+ Cuando se utiliza la AWS CLI API Application Auto Scaling, el flujo consiste en registrar el modelo como un objetivo escalable, definir la política de escalado y, a continuación, aplicarla. En la consola de SageMaker IA, en **Inferencia** del panel de navegación, elija **Endpoints**. Busque el nombre del punto de conexión del modelo y, a continuación, elíjalo para buscar el nombre de la variante. Debe especificar tanto el nombre del punto de conexión como el nombre de la variante para activar el escalado automático de un modelo.

El escalado automático es posible gracias a una combinación de Amazon SageMaker AI CloudWatch, Amazon y Application Auto Scaling APIs. Para obtener información sobre los permisos mínimos necesarios, consulte los [Application Auto Scaling identity-based policy examples](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_id-based-policy-examples.html) en la *Guía del usuario de Application Auto Scaling*.

La política de IAM `SagemakerFullAccessPolicy` dispone de todos los permisos de IAM necesarios para el escalado automático. Para obtener más información sobre los permisos de SageMaker AI IAM, consulte[Cómo utilizar las funciones de ejecución de la SageMaker IA](sagemaker-roles.md).

Si administra su propia política de permiso, debe incluir los siguientes permisos:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:DescribeEndpoint",
        "sagemaker:DescribeEndpointConfig",
        "sagemaker:UpdateEndpointWeightsAndCapacities"
      ],
      "Resource": "*"
    },
    {    
        "Effect": "Allow",
        "Action": [
            "application-autoscaling:*"
        ],
        "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:CreateServiceLinkedRole",
      "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint",
      "Condition": {
        "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com"	}
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricAlarm",
        "cloudwatch:DescribeAlarms",
        "cloudwatch:DeleteAlarms"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Rol vinculado a servicios
<a name="endpoint-auto-scaling-slr"></a>

Auto Scaling usa el rol vinculado a un servicio `AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint`. Este rol vinculado a servicio concede a Application Auto Scaling permiso para describir las alarmas de sus políticas, supervisar los niveles de capacidad actual y escalar el recurso de destino. Este rol se crea automáticamente para usted. Para que la creación automática de roles se realice correctamente, debe disponer de permisos para la acción `iam:CreateServiceLinkedRole`. Para obtener más información, consulte [Roles vinculados a servicios](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) en la *Guía del usuario de Auto Scaling de aplicaciones*.

# Configuración del escalado automático de modelos con la consola
<a name="endpoint-auto-scaling-add-console"></a>

**Configuración del escalado automático de un modelo (consola)**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación, elija **Inferencia** y, a continuación, elija **Puntos de conexión**. 

1. Elija el punto de conexión y, a continuación, en **Configuración del tiempo de ejecución de punto de conexión**, elija la variante.

1. Elija **Configure auto scaling (Configurar escalado automático)**.

1. En la página **Configurar escalado automático de variantes**, para **Escalado automático de variantes**, realice lo siguiente:

   1. Para **Recuento mínimo de instancias**, escriba el número mínimo de instancias que desee que conserve la política de escalado. Se requiere al menos 1 instancia.

   1. Para **Recuento máximo de instancias**, escriba el número máximo de instancias que desee que conserve la política de escalado.

1. Para una **política de escalado integrada**, haga lo siguiente:

   1. Para la **Métrica de destino**, se selecciona automáticamente `SageMakerVariantInvocationsPerInstance` para la métrica y no se puede cambiar.

   1. Para el **Valor de destino**, escriba el número medio de invocaciones por instancia por minuto para el modelo. Para determinar este valor, siga las directrices en [Prueba de carga](endpoint-scaling-loadtest.md).

   1. (Opcional) Para **Periodo de recuperación de escalado descendente (segundos)** y **Periodo de recuperación de escalado ascendente (segundos)**, escriba la cantidad de tiempo, en segundos, para cada periodo de recuperación.

   1. (Opcional) Seleccione **Deshabilitar escalado descendente** si no desea que el escalado automático termine instancias cuando disminuye el tráfico.

1. Seleccione **Save**.

Este procedimiento registra un modelo como destino escalable con Application Auto Scaling. Al registrar un modelo, Application Auto Scaling realiza las comprobaciones de validación para garantizar lo siguiente:
+ El modelo existe
+ Los permisos son suficientes.
+ No está registrando ninguna variante con una instancia que sea una instancia de desempeño por ráfagas como T2.
**nota**  
SageMaker La IA no admite el escalado automático para instancias con capacidad de ráfaga, como la T2, porque ya permiten aumentar la capacidad con cargas de trabajo cada vez mayores. Para obtener información sobre las instancias de rendimiento ampliable, consulte [Tipos de instancias de Amazon EC2](https://aws.amazon.com/ec2/instance-types/).

# Registrar un modelo
<a name="endpoint-auto-scaling-add-policy"></a>

Antes de agregar una política de escalado a su modelo, primero debe registrar el modelo para el escalado automático y definir los límites de escalado del modelo.

Los siguientes procedimientos explican cómo registrar un modelo (variante de producción) para el escalado automático mediante AWS Command Line Interface (AWS CLI) o la API Application Auto Scaling.

**Topics**
+ [Registrar un modelo (AWS CLI)](#endpoint-auto-scaling-add-cli)
+ [Registrar un modelo (API de Application Auto Scaling)](#endpoint-auto-scaling-add-api)

## Registrar un modelo (AWS CLI)
<a name="endpoint-auto-scaling-add-cli"></a>

Para registrar su variante de producción, utilice el [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)comando con los siguientes parámetros:
+ `--service-namespace`: establezca este valor en `sagemaker`.
+ `--resource-id`: el identificador de recursos del modelo (en concreto, la variante de producción). Para este parámetro, el tipo de recurso es `endpoint` y el identificador único es el nombre de la variante de producción. Por ejemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `--scalable-dimension`: establezca este valor en `sagemaker:variant:DesiredInstanceCount`.
+ `--min-capacity`: el número mínimo de instancias. Este valor debe establecerse en al menos 1 y debe ser igual o inferior al valor especificado para `max-capacity`.
+ `--max-capacity`: el número máximo de instancias. Este valor debe establecerse en al menos 1 y debe ser igual o superior al valor especificado para `min-capacity`.

**Example**  
El siguiente ejemplo muestra cómo registrar una variante de denominada `my-variant`, que se ejecuta en el punto de conexión `my-endpoint` y que puede escalarse dinámicamente para disponer de una a ocho instancias.  

```
aws application-autoscaling register-scalable-target \
  --service-namespace sagemaker \
  --resource-id endpoint/my-endpoint/variant/my-variant \
  --scalable-dimension sagemaker:variant:DesiredInstanceCount \
  --min-capacity 1 \
  --max-capacity 8
```

## Registrar un modelo (API de Application Auto Scaling)
<a name="endpoint-auto-scaling-add-api"></a>

Para registrar un modelo con Application Auto Scaling, use la acción de API [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) de Application Auto Scaling con los siguientes parámetros.
+ `ServiceNamespace`: establezca este valor en `sagemaker`.
+ `ResourceID`: el identificador de recurso para la variante de producción. Para este parámetro, el tipo de recurso es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`: establezca este valor en `sagemaker:variant:DesiredInstanceCount`.
+ `MinCapacity`: el número mínimo de instancias. Este valor debe establecerse en al menos 1 y debe ser igual o inferior al valor especificado para `MaxCapacity`.
+ `MaxCapacity`: el número máximo de instancias. Este valor debe establecerse en al menos 1 y debe ser igual o superior al valor especificado para `MinCapacity`.

**Example**  
El siguiente ejemplo muestra cómo registrar una variante de denominada `my-variant`, que se ejecuta en el punto de conexión `my-endpoint` y que puede escalarse dinámicamente para usar de una a ocho instancias.  

```
POST / HTTP/1.1
Host: application-autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
X-Amz-Date: 20230506T182145Z
User-Agent: aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS

{
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "MinCapacity": 1,
    "MaxCapacity": 8
}
```

# Definir una política de escalado
<a name="endpoint-auto-scaling-add-code-define"></a>

Antes de agregar una política de escalado al modelo, guarde la configuración de política como bloque JSON en un archivo de texto. Se usa ese archivo de texto al invocar AWS Command Line Interface (AWS CLI) o la API Application Auto Scaling. Puede optimizar el escalado eligiendo una CloudWatch métrica adecuada. Sin embargo, antes de usar una métrica personalizada en producción, debe probar el escalado automático con su métrica personalizada.

**Topics**
+ [Especifique una métrica predefinida (CloudWatch métrica: InvocationsPerInstance)](#endpoint-auto-scaling-add-code-predefined)
+ [Especifique una métrica predefinida de alta resolución (CloudWatch métricas: ConcurrentRequestsPerModel y ConcurrentRequestsPerCopy)](#endpoint-auto-scaling-add-code-high-res)
+ [Defina una métrica personalizada (CloudWatch métrica: CPUUtilization)](#endpoint-auto-scaling-add-code-custom)
+ [Defina una métrica personalizada (CloudWatch métrica: ExplanationsPerInstance)](#endpoint-auto-scaling-online-explainability)
+ [Especificación de periodos de recuperación](#endpoint-auto-scaling-add-code-cooldown)

En esta sección, se muestran ejemplos de configuraciones de políticas para las políticas de escalado de seguimiento de destino.

## Especifique una métrica predefinida (CloudWatch métrica: InvocationsPerInstance)
<a name="endpoint-auto-scaling-add-code-predefined"></a>

**Example**  
A continuación, se muestra un ejemplo de configuración de política de seguimiento de destino para una variante que mantiene el promedio de invocaciones por instancia en 70. Guarde esta configuración en un archivo llamado `config.json`.  

```
{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    }
}
```
Para obtener más información, consulte la *Referencia [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)de la API Application Auto Scaling*.

## Especifique una métrica predefinida de alta resolución (CloudWatch métricas: ConcurrentRequestsPerModel y ConcurrentRequestsPerCopy)
<a name="endpoint-auto-scaling-add-code-high-res"></a>

Con las siguientes CloudWatch métricas de alta resolución, puede establecer políticas de escalado para el volumen de solicitudes simultáneas que reciben sus modelos:

**ConcurrentRequestsPerModel**  
El número de solicitudes simultáneas que recibe un contenedor de modelos.

**ConcurrentRequestsPerCopy**  
El número de solicitudes simultáneas que recibe un componente de inferencia.

Estas métricas realizan un seguimiento del número de solicitudes simultáneas que gestionan los contenedores de modelos, incluidas las solicitudes que están en cola dentro de los contenedores. En el caso de los modelos que envían su respuesta de inferencia como un flujo de tokens, estas métricas realizan un seguimiento de cada solicitud hasta que el modelo envía el último token de la solicitud.

Como métricas de alta resolución, emiten datos con más frecuencia que las métricas estándar. CloudWatch Las métricas estándar, como la métrica `InvocationsPerInstance`, emiten datos una vez por minuto. Sin embargo, estas métricas de alta resolución emiten datos cada 10 segundos. Por lo tanto, a medida que aumenta el tráfico simultáneo a los modelos, la política reacciona escalándose horizontalmente mucho más rápido que en el caso de las métricas estándar. Sin embargo, a medida que disminuye el tráfico hacia sus modelos, la política se reduce horizontalmente a la misma velocidad que lo haría con las métricas estándar.

A continuación, se muestra un ejemplo de configuración de política de seguimiento de destinos que añade instancias si el número de solicitudes simultáneas por modelo supera las 5. Guarde esta configuración en un archivo llamado `config.json`.

```
{
    "TargetValue": 5.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantConcurrentRequestsPerModelHighResolution"
    }
}
```

Si utiliza componentes de inferencia para implementar varios modelos en el mismo punto de conexión, puede crear una política equivalente. En ese caso, establezca `PredefinedMetricType` en `SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution`.

Para obtener más información, consulte la *Referencia [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)de la API Application Auto Scaling*.

## Defina una métrica personalizada (CloudWatch métrica: CPUUtilization)
<a name="endpoint-auto-scaling-add-code-custom"></a>

Para crear una política de escalado de seguimiento de destino con una métrica personalizada, especifique el nombre de la métrica, el espacio de nombres, la unidad, la estadística y cero o más dimensiones. Una dimensión consta de un nombre de dimensión y un valor de dimensión. Puede usar cualquier métrica de variante de producción que cambie en proporción a la capacidad. 

**Example**  
El siguiente ejemplo de configuración muestra una política de escalado de seguimiento de destino con una métrica personalizada. La política escala la variante en función de un uso medio de la CPU del 50 % en todas las instancias. Guarde esta configuración en un archivo llamado `config.json`.  

```
{
    "TargetValue": 50.0,
    "CustomizedMetricSpecification":
    {
        "MetricName": "CPUUtilization",
        "Namespace": "/aws/sagemaker/Endpoints",
        "Dimensions": [
            {"Name": "EndpointName", "Value": "my-endpoint" },
            {"Name": "VariantName","Value": "my-variant"}
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```
Para obtener más información, consulte la *Referencia [CustomizedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html)de la API Application Auto Scaling*. 

## Defina una métrica personalizada (CloudWatch métrica: ExplanationsPerInstance)
<a name="endpoint-auto-scaling-online-explainability"></a>

Cuando el punto de conexión tiene activada la explicabilidad en línea, emite una métrica `ExplanationsPerInstance` que muestra el promedio de registros explicados por minuto y por instancia para una variante. El uso de recursos de registros de explicabilidad puede ser más distinto que el de los registros de predictabilidad. Recomendamos encarecidamente utilizar esta métrica para el escalado del seguimiento de destino de los puntos de conexión con la explicabilidad activada.

Puede crear varias políticas de seguimiento de destino para un objetivo escalable. Valore la posibilidad de agregar la política `InvocationsPerInstance` desde la sección de [Especifique una métrica predefinida (CloudWatch métrica: InvocationsPerInstance)](#endpoint-auto-scaling-add-code-predefined) (además de la política `ExplanationsPerInstance`). Si la mayoría de las invocaciones no devuelven una explicación debido al valor límite establecido en el parámetro `EnableExplanations`, el punto de conexión puede elegir la política `InvocationsPerInstance`. Si hay un gran número de explicaciones, el punto de conexión puede usar la política `ExplanationsPerInstance`. 

**Example**  
El siguiente ejemplo de configuración muestra una política de escalado de seguimiento de destino con una métrica personalizada. El escalado de la política ajusta el número de instancias de variantes de modo que cada instancia tenga una métrica `ExplanationsPerInstance` de 20. Guarde esta configuración en un archivo llamado `config.json`.  

```
{
    "TargetValue": 20.0,
    "CustomizedMetricSpecification":
    {
        "MetricName": "ExplanationsPerInstance",
        "Namespace": "AWS/SageMaker",
        "Dimensions": [
            {"Name": "EndpointName", "Value": "my-endpoint" },
            {"Name": "VariantName","Value": "my-variant"}
        ],
        "Statistic": "Sum"
    }
}
```

Para obtener más información, consulte la *Referencia [CustomizedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html)de la API Application Auto Scaling*. 

## Especificación de periodos de recuperación
<a name="endpoint-auto-scaling-add-code-cooldown"></a>

Si lo desea, puede definir periodos de recuperación en su política de escalado de seguimiento de destinos, especificando los parámetros `ScaleOutCooldown` y `ScaleInCooldown`. 

**Example**  
A continuación, se muestra un ejemplo de configuración de política de seguimiento de destino para una variante que mantiene el promedio de invocaciones por instancia en 70. La configuración de política proporciona un periodo de recuperación de reducción horizontal de 10 minutos (600 segundos) y un periodo de recuperación de escalado horizontal de 5 minutos (300 segundos). Guarde esta configuración en un archivo llamado `config.json`.   

```
{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```
Para obtener más información, consulte la *Referencia [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)de la API Application Auto Scaling*. 

# Aplicar una política de escalado
<a name="endpoint-auto-scaling-add-code-apply"></a>

Una vez registrado su modelo y definido una política de escalado, aplique la política de escalado al modelo registrado. Esta sección muestra cómo aplicar una política de escalado con la AWS Command Line Interface (AWS CLI) o la API de Application Auto Scaling. 

**Topics**
+ [Aplicación de una política de escalado de seguimiento de destino (AWS CLI)](#endpoint-auto-scaling-add-code-apply-cli)
+ [Aplicación de una política de escalado (API de Application Auto Scaling)](#endpoint-auto-scaling-add-code-apply-api)

## Aplicación de una política de escalado de seguimiento de destino (AWS CLI)
<a name="endpoint-auto-scaling-add-code-apply-cli"></a>

Para aplicar una política de escalado a su modelo, utilice el [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) AWS CLI comando con los siguientes parámetros:
+ `--policy-name`: el nombre de la política de escalado.
+ `--policy-type`: establezca este valor en `TargetTrackingScaling`.
+ `--resource-id`: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `--service-namespace`: establezca este valor en `sagemaker`.
+ `--scalable-dimension`: establezca este valor en `sagemaker:variant:DesiredInstanceCount`.
+ `--target-tracking-scaling-policy-configuration`: configuración de la política de escalado de seguimiento de destino que se usará para el modelo.

**Example**  
En el siguiente ejemplo se aplica una política de escalado de seguimiento de destino denominada `my-scaling-policy` en una variante llamada `my-variant` que se ejecuta en el punto de conexión `my-endpoint`. Para la opción `--target-tracking-scaling-policy-configuration`, especifique el archivo `config.json` que creó anteriormente.   

```
aws application-autoscaling put-scaling-policy \
  --policy-name my-scaling-policy \
  --policy-type TargetTrackingScaling \
  --resource-id endpoint/my-endpoint/variant/my-variant \
  --service-namespace sagemaker \
  --scalable-dimension sagemaker:variant:DesiredInstanceCount \
  --target-tracking-scaling-policy-configuration file://config.json
```

## Aplicación de una política de escalado (API de Application Auto Scaling)
<a name="endpoint-auto-scaling-add-code-apply-api"></a>

Para aplicar una política de escalado a una variante con la API de Application Auto Scaling, utilice la acción [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) de la API de Application Auto Scaling con los siguientes parámetros:
+ `PolicyName`: el nombre de la política de escalado.
+ `ServiceNamespace`: establezca este valor en `sagemaker`.
+ `ResourceID`: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`: establezca este valor en `sagemaker:variant:DesiredInstanceCount`.
+ `PolicyType`: establezca este valor en `TargetTrackingScaling`.
+ `TargetTrackingScalingPolicyConfiguration`: configuración de la política de escalado de seguimiento de objetivos que se usará para la variante.

**Example**  
En el siguiente ejemplo se aplica una política de escalado de seguimiento de destino denominada `my-scaling-policy` en una variante llamada `my-variant` que se ejecuta en el punto de conexión `my-endpoint`. La configuración de la política mantiene el promedio de invocaciones por instancia en 70.  

```
POST / HTTP/1.1
Host: application-autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
X-Amz-Target: AnyScaleFrontendService.
X-Amz-Date: 20230506T182145Z
User-Agent: aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS

{
    "PolicyName": "my-scaling-policy",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 70.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
        }
    }
}
```

# Instrucciones para editar una política de escalado
<a name="endpoint-auto-scaling-edit"></a>

Después de crear una política de escalado, puede editar cualquiera de sus configuraciones, excepto el nombre.

 Para editar una política de escalado de seguimiento de objetivos con la Consola de administración de AWS, utilice el mismo procedimiento que utilizaba antes[Configuración del escalado automático de modelos con la consola](endpoint-auto-scaling-add-console.md).

Puede usar la AWS CLI API Application Auto Scaling para editar una política de escalado del mismo modo que crea una nueva política de escalado. Para obtener más información, consulte [Aplicar una política de escalado](endpoint-auto-scaling-add-code-apply.md).

# Cierre temporal de las políticas de escalado
<a name="endpoint-auto-scaling-suspend-scaling-activities"></a>

Después de configurar el escalado automático, tiene las siguientes opciones si necesita investigar un problema sin que las políticas de escalado interfieran (escalado dinámico):
+ Suspenda temporalmente las actividades de escalado y, a continuación, las reanude llamando al comando [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)CLI o a la acción de la [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)API y especificando un valor booleano para ambos`DynamicScalingInSuspended`. `DynamicScalingOutSuspended`   
**Example**  

  En el siguiente ejemplo, se muestra cómo suspender las políticas de escalado para una variante denominada `my-variant`, que se ejecuta en el punto de conexión `my-endpoint`.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace sagemaker \
    --resource-id endpoint/my-endpoint/variant/my-variant \
    --scalable-dimension sagemaker:variant:DesiredInstanceCount \
    --suspended-state '{"DynamicScalingInSuspended":true,"DynamicScalingOutSuspended":true}'
  ```
+ Evite que políticas de escalado de seguimiento de destino específicas se reduzcan horizontalmente en su variante desactivando la parte de reducción horizontal de la política. Este método evita que la política de escalado elimine instancias, a la vez que le permite crearlas según sea necesario.

  Inhabilite temporalmente y, a continuación, habilite las actividades de escalado mediante la edición de la política mediante el comando [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)CLI o la acción de la [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API, especificando un valor booleano para. `DisableScaleIn`  
**Example**  

  A continuación se muestra un ejemplo de configuración de seguimiento de destino para una política de escalado en la que se escalará horizontalmente, pero no se reducirá horizontalmente. 

  ```
  {
      "TargetValue": 70.0,
      "PredefinedMetricSpecification":
      {
          "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
      },
      "DisableScaleIn": true
  }
  ```

# Eliminación de una política de escalado
<a name="endpoint-auto-scaling-delete"></a>

Puede eliminar una política de escalado si ya no la necesite.

**Topics**
+ [Eliminación de todas las políticas de escalado y anulación del registro del modelo (consola)](#endpoint-auto-scaling-delete-console)
+ [Eliminar una política de escalado (AWS CLI o API Application Auto Scaling)](#endpoint-auto-scaling-delete-code)

## Eliminación de todas las políticas de escalado y anulación del registro del modelo (consola)
<a name="endpoint-auto-scaling-delete-console"></a>

**Eliminación de todas las políticas de escalado y anulación del registro de la variante como destino escalable**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación, elija **Puntos de conexión**.

1. Elija el punto de conexión y, a continuación, en **Configuración del tiempo de ejecución de punto de conexión**, elija la variante.

1. Elija **Configure auto scaling (Configurar escalado automático)**.

1. Seleccione **Anular el registro de escalado automático**.

## Eliminar una política de escalado (AWS CLI o API Application Auto Scaling)
<a name="endpoint-auto-scaling-delete-code"></a>

Puede usar la API Application Auto Scaling AWS CLI o la API para eliminar una política de escalado de una variante.

### Eliminación de una política de escalado (AWS CLI)
<a name="endpoint-auto-scaling-delete-code-cli"></a>

Para eliminar una política de escalado de una variante, utilice el [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html)comando con los siguientes parámetros:
+ `--policy-name`: el nombre de la política de escalado.
+ `--resource-id`: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `--service-namespace`: establezca este valor en `sagemaker`.
+ `--scalable-dimension`: establezca este valor en `sagemaker:variant:DesiredInstanceCount`.

**Example**  
En el siguiente ejemplo se elimina una política de escalado de seguimiento de destino denominada `my-scaling-policy` en una variante llamada `my-variant` que se ejecuta en el punto de conexión `my-endpoint`.  

```
aws application-autoscaling delete-scaling-policy \
  --policy-name my-scaling-policy \
  --resource-id endpoint/my-endpoint/variant/my-variant \
  --service-namespace sagemaker \
  --scalable-dimension sagemaker:variant:DesiredInstanceCount
```

### Eliminación de una política de escalado (API de Application Auto Scaling)
<a name="endpoint-auto-scaling-delete-code-api"></a>

Para eliminar una política de escalado de su variante, use la acción de API [DeleteScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeleteScalingPolicy.html) de Application Auto Scaling con los siguientes parámetros:
+ `PolicyName`: el nombre de la política de escalado.
+ `ServiceNamespace`: establezca este valor en `sagemaker`.
+ `ResourceID`: el identificador de recurso para la variante. Para este parámetro, el tipo de recurso es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`: establezca este valor en `sagemaker:variant:DesiredInstanceCount`.

**Example**  
En el siguiente ejemplo se elimina una política de escalado de seguimiento de destino denominada `my-scaling-policy` en una variante llamada `my-variant` que se ejecuta en el punto de conexión `my-endpoint`.  

```
POST / HTTP/1.1
Host: application-autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
X-Amz-Date: 20230506T182145Z
User-Agent: aws-cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS

{
    "PolicyName": "my-scaling-policy",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount"
}
```

# Comprobación del estado de una actividad de escalado describiendo las actividades de escalado
<a name="endpoint-scaling-query-history"></a>

Puede comprobar el estado de una actividad de escalado para un punto de conexión con escalado automático describiendo actividades de escalado. Application Auto Scaling proporciona información descriptiva sobre las actividades de escalado en el espacio de nombres especificado de las seis semanas anteriores. Para obtener más información, consulte [Scaling activities for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html) en la *Guía del usuario de Application Auto Scaling*.

Para comprobar el estado de una actividad de escalado, utilice el [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando. No puede comprobar el estado de una actividad de escalado con la consola.

**Topics**
+ [Descripción de las actividades de escalado (AWS CLI)](#endpoint-how-to)
+ [Identificación de actividades de escalado bloqueado a partir de las cuotas de instancia (AWS CLI)](#endpoint-identify-blocked-autoscaling)

## Descripción de las actividades de escalado (AWS CLI)
<a name="endpoint-how-to"></a>

Para describir las actividades de escalado de todos los recursos de SageMaker IA registrados en Application Auto Scaling, utilice el [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando y especifique `sagemaker` la `--service-namespace` opción.

```
aws application-autoscaling describe-scaling-activities \
  --service-namespace sagemaker
```

Para describir las actividades de escalado de un recurso específico, incluya la opción `--resource-id`. 

```
aws application-autoscaling describe-scaling-activities \
  --service-namespace sagemaker \
  --resource-id endpoint/my-endpoint/variant/my-variant
```

El siguiente ejemplo muestra los resultados del comando.

```
{
    "ActivityId": "activity-id",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "Description": "string",
    "Cause": "string",
    "StartTime": timestamp,
    "EndTime": timestamp,
    "StatusCode": "string",
    "StatusMessage": "string"
}
```

## Identificación de actividades de escalado bloqueado a partir de las cuotas de instancia (AWS CLI)
<a name="endpoint-identify-blocked-autoscaling"></a>

Cuando escala horizontalmente (agrega más instancias), es posible que llegue a su cuota de instancias para la cuenta. Puede usar el [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando para comprobar si ha alcanzado la cuota de instancias. Cuando supera la cuota, el escalado automático se bloquea. 

Para comprobar si has alcanzado la cuota de instancias, usa el [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando y especifica el ID de recurso de la `--resource-id` opción. 

```
aws application-autoscaling describe-scaling-activities \
    --service-namespace sagemaker \
    --resource-id endpoint/my-endpoint/variant/my-variant
```

En la sintaxis de retorno, compruebe las claves [StatusMessage](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html#autoscaling-Type-ScalingActivity-StatusMessage) y [StatusCode](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html#autoscaling-Type-ScalingActivity-StatusCode) y sus valores asociados. `StatusCode` devuelve `Failed`. En `StatusMessage`, hay un mensaje que indica que se ha alcanzado la cuota de servicio de la cuenta. Lo que sigue es un ejemplo del aspecto que puede tener ese mensaje: 

```
{
    "ActivityId": "activity-id",
    "ServiceNamespace": "sagemaker",
    "ResourceId": "endpoint/my-endpoint/variant/my-variant",
    "ScalableDimension": "sagemaker:variant:DesiredInstanceCount",
    "Description": "string",
    "Cause": "minimum capacity was set to 110",
    "StartTime": timestamp,
    "EndTime": timestamp,
    "StatusCode": "Failed",
    "StatusMessage": "Failed to set desired instance count to 110. Reason: The 
    account-level service limit 'ml.xx.xxxxxx for endpoint usage' is 1000 
    Instances, with current utilization of 997 Instances and a request delta 
    of 20 Instances. Please contact AWS support to request an increase for this 
    limit. (Service: AmazonSageMaker; Status Code: 400; 
    Error Code: ResourceLimitExceeded; Request ID: request-id)."
}
```

# Escalado de un punto de conexión a cero instancias
<a name="endpoint-auto-scaling-zero-instances"></a>

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](realtime-endpoints-deploy-models.md)
+ 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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantManagedInstanceScaling.html)

**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. *n*Sustitú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-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)la *Referencia de AWS CLI comandos*.

1. 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](endpoint-auto-scaling-add-code-define.md).

   Para obtener más información sobre este comando y cada uno de sus parámetros, consulte [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)la *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-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 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](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) en la *Guía del usuario de Application Auto Scaling*.

1. 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-alarm*Sustitúyalo por el nombre que prefiera. *inference-component-name*Sustitúyalo por el nombre del componente de inferencia. 

   En este ejemplo, se establece el `--metric-name` parámetro en`NoCapacityInvocationFailures`. 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-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)Referencia de *AWS CLI comandos*.

# Prueba de carga de la configuración de escalado automático
<a name="endpoint-scaling-loadtest"></a>

Realice pruebas de carga para elegir una configuración de escalado que funcione de la manera que desea.

Las siguientes directrices de prueba de carga presuponen que está utilizando una política de escalado que usa la métrica de destino predefinida `SageMakerVariantInvocationsPerInstance`.

**Topics**
+ [Determinación de las características de rendimiento](#endpoint-scaling-loadtest-variant)
+ [Cálculo de la carga de destino](#endpoint-scaling-loadtest-calc)

## Determinación de las características de rendimiento
<a name="endpoint-scaling-loadtest-variant"></a>

Realice la prueba de carga para buscar el pico `InvocationsPerInstance` que la variante de producción del modelo puede administrar y la latencia de las solicitudes a medida que la concurrencia aumenta.

Este valor depende del tipo de instancia elegido, las cargas que los clientes de su modelo suelen enviar y el rendimiento de cualquier dependencia externa que tenga su modelo.

**Para determinar el pico requests-per-second (RPS) que puede gestionar la variante de producción de su modelo y la latencia de las solicitudes**

1. Configure un punto de enlace con su modelo mediante una instancia única. Para obtener información sobre cómo configurar un punto de enlace, consulte [Implemente el modelo en los servicios de alojamiento de SageMaker IA](ex1-model-deployment.md#ex1-deploy-model).

1. Utilice una herramienta de prueba de carga para generar un número mayor de solicitudes en paralelo y monitorear las RPS y la latencia del modelo en la salida de la herramienta de prueba de carga. 
**nota**  
También puede monitorizar requests-per-minute en lugar de RPS. En ese caso, no multiplique por 60 en la ecuación para calcular `SageMakerVariantInvocationsPerInstance` que se muestra a continuación.

   Cuando la latencia de modelo aumenta o la proporción de las transacciones correctas desciende, esta es las RPS pico que su modelo puede administrar.

## Cálculo de la carga de destino
<a name="endpoint-scaling-loadtest-calc"></a>

Una vez que encuentre las características de desempeño de la variante, puede determinar las RPS máximas que debemos permitir que se envíen a una instancia. El umbral utilizado para el escalado debe ser inferior a este valor máximo. Utilice la siguiente ecuación en combinación con la prueba de carga para determinar el valor correcto para la métrica de destino `SageMakerVariantInvocationsPerInstance` en su configuración de escalado.

```
SageMakerVariantInvocationsPerInstance = (MAX_RPS * SAFETY_FACTOR) * 60
```

Donde `MAX_RPS` son las RPS máximas que determinó anteriormente y `SAFETY_FACTOR` es el factor de seguridad que eligió para garantizar que sus clientes no superan las RPS máximas. Multiplica por 60 para convertir de RPS invocations-per-minute a una CloudWatch métrica por minuto que utiliza la SageMaker IA para implementar el escalado automático (no es necesario que hagas esto si mides requests-per-minute en lugar de requests-per-second hacerlo).

**nota**  
SageMaker AI recomienda empezar las pruebas con un valor `SAFETY_FACTOR` de 0,5. Pruebe la configuración de escalado para asegurarse de que funciona de la forma que espera con su modelo para el aumento y el descenso de tráfico del cliente en su punto de conexión.

# Se utiliza CloudFormation para crear una política de escalado
<a name="endpoint-scaling-cloudformation"></a>

En el siguiente ejemplo se muestra cómo configurar el escalado automático de modelos en un punto de conexión mediante CloudFormation.

```
  Endpoint:
    Type: "AWS::SageMaker::Endpoint"
    Properties:
      EndpointName: yourEndpointName
      EndpointConfigName: yourEndpointConfigName

  ScalingTarget:
    Type: "AWS::ApplicationAutoScaling::ScalableTarget"
    Properties:
      MaxCapacity: 10
      MinCapacity: 2
      ResourceId: endpoint/my-endpoint/variant/my-variant
      RoleARN: arn
      ScalableDimension: sagemaker:variant:DesiredInstanceCount
      ServiceNamespace: sagemaker

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      PolicyName: my-scaling-policy
      PolicyType: TargetTrackingScaling
      ScalingTargetId:
        Ref: ScalingTarget
      TargetTrackingScalingPolicyConfiguration:
        TargetValue: 70.0
        ScaleInCooldown: 600
        ScaleOutCooldown: 30
        PredefinedMetricSpecification:
          PredefinedMetricType: SageMakerVariantInvocationsPerInstance
```

Para obtener más información, consulte [Create Application Auto Scaling resources with AWS CloudFormation](https://docs.aws.amazon.com/autoscaling/application/userguide/creating-resources-with-cloudformation.html) en la *Guía del usuario de Application Auto Scaling*.

# Actualización de puntos de conexión que utilizan el escalado automático
<a name="endpoint-scaling-update"></a>

Cuando actualiza un punto de conexión, Application Auto Scaling realiza la comprobación para ver si alguno de los modelos de ese punto de conexión es el objetivo del escalado automático. Si la actualización cambia el tipo de instancia de cualquier modelo que sea un destino para el escalado automático, se producirá un error en la actualización. 

En el Consola de administración de AWS, verá una advertencia en la que se le indica que debe anular el registro del modelo del escalado automático antes de poder actualizarlo. Si intenta actualizar el punto de enlace llamada a la API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html), se produce un error en la llamada. Antes de actualizar el punto final, elimine las políticas de escalado configuradas para él y anule el registro de la variante como destino escalable mediante una llamada a la acción [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)Application Auto Scaling API. Después de actualizar el punto de conexión, puede registrar la variante como destino escalable y asociar una política de escalado.

Existe una excepción. Si cambias el modelo por una variante que está configurada para el escalado automático, el escalado automático de Amazon SageMaker AI permite la actualización. Esto se debe a que cambiar el modelo no afecta normalmente lo suficiente al rendimiento como para cambiar el comportamiento de escalado. Si actualiza un modelo para una variante configurada para el escalado automático, asegúrese de que el cambio al modelo no afecte significativamente al rendimiento y al comportamiento del escalado automático.

Cuando actualice los puntos finales de SageMaker IA a los que se ha aplicado el escalado automático, complete los siguientes pasos:

**Actualización de un punto de conexión que tiene aplicado el escalado automático**

1. Para anular el registro del punto final como objetivo escalable, llama. [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)

1. Dado que el escalado automático está bloqueado mientras la operación de actualización está en curso (o si desactivó el escalado automático en el paso anterior), es posible que desee tomar la precaución adicional de aumentar el número de instancias del punto de conexión durante la actualización. Para ello, actualice el recuento de instancias para las variantes de producción alojadas en el punto de enlace llamando a [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html).

1. Llame a [ DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) repetidamente hasta que el valor del campo `EndpointStatus` de la respuesta sea `InService`.

1. Llame a [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) para obtener los valores de la configuración del punto de enlace actual.

1. Cree una configuración de punto de enlace nueva llamando a [ CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html). Para las variantes de producción en las que desea mantener el recuento o el peso de las instancias existentes, utilice el mismo nombre de variante de la respuesta de la llamada a [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) en el paso anterior. Para todos los demás valores, utilice los valores que obtuvo como respuesta cuando llamó a [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) en el paso anterior.

1. Actualice el punto de enlace llamando a [ UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html). Especifique la configuración de punto de enlace que ha creado en el paso anterior en el campo `EndpointConfig`. Si desea conservar las propiedades de variante, como el recuento de instancias o el peso, establezca el valor del parámetro `RetainAllVariantProperties` en `True`. Esto especifica que las variantes de producción con el mismo nombre se actualizarán con el `DesiredInstanceCount` más reciente de la respuesta de la llamada a `DescribeEndpoint`, independientemente de los valores del campo `InitialInstanceCount` en el nuevo `EndpointConfig`.

1. (Opcional) Vuelva a activar el escalado automático llamando a [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)y [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html).

**nota**  
Los pasos 1 y 7 solo son necesarios si actualiza un punto de enlace con los siguientes cambios:  
Cambio del tipo de instancia para una variante de producción que tenga configurado el escalado automático
Eliminación de una variante de producción con el escalado automático configurado.

# Eliminación de puntos de conexión configurados para el escalado automático
<a name="endpoint-delete-with-scaling"></a>

Si elimina un punto de conexión, Application Auto Scaling realiza la comprobación para ver si alguno de los modelos de ese punto de conexión es el objetivo del escalado automático. Si hay alguno y usted tiene permiso para anular el registro del modelo, Application Auto Scaling anula el registro de esos modelos como objetivos escalables sin notificárselo. Si utilizas una política de permisos personalizada que no otorga permisos para la [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)acción, debes solicitar el acceso a esta acción antes de eliminar el punto final.

**nota**  
Como usuario de IAM, puede no disponer de permisos suficientes para eliminar un punto de conexión si otro usuario ha configurado el escalado automático para una variante en ese punto de conexión.