

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.

# Escalar automáticamente la simultaneidad aprovisionada para un punto de conexión sin servidor
<a name="serverless-endpoints-autoscale"></a>

 Amazon SageMaker AI escala automáticamente los puntos de conexión sin servidor bajo demanda para escalarlos o reducirlos horizontalmente. 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: 
+ [Registrar un modelo](#serverless-endpoints-autoscale-register)
+ [Definir una política de escalado](#serverless-endpoints-autoscale-define)
+ [Aplicar una política de escalado](#serverless-endpoints-autoscale-apply)

 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](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html). Consulte [Creación de una configuración de punto de conexión](serverless-endpoints-create-config.md) y [Crear un punto de conexión](serverless-endpoints-create-endpoint.md) 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](#serverless-endpoints-autoscale-define). 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](#serverless-endpoints-autoscale-apply). 

 Para obtener más información sobre otros requisitos previos y componentes que se utilizan con el escalado automático, consulte la sección [Requisitos previos de escalado automático](endpoint-auto-scaling-prerequisites.md) en [Automatic scaling of Amazon SageMaker AI models](endpoint-auto-scaling.md). 

## Registrar un modelo
<a name="serverless-endpoints-autoscale-register"></a>

 Para añadir el escalado automático a un punto de conexión sin servidor con simultaneidad aprovisionada, primero debe registrar su modelo (variante de producción) con AWS CLI o la API de Application Auto Scaling. 

### Registrar un modelo (AWS CLI)
<a name="serverless-endpoints-autoscale-register-cli"></a>

 Para registrar su punto de conexión, utilice el comando `register-scalable-target` AWS CLI con los siguientes parámetros: 
+  `--service-namespace`: establezca este valor en `sagemaker`. 
+  `--resource-id`: el identificador de recursos del modelo (específicamente, 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/MyEndpoint/variant/MyVariant`. 
+  `--scalable-dimension`: establezca este valor en `sagemaker: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)
<a name="serverless-endpoints-autoscale-register-api"></a>

 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 en `sagemaker`. 
+  `ResourceId`: el identificador de recursos del modelo (específicamente, 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/MyEndpoint/variant/MyVariant`. 
+  `ScalableDimension`: establezca este valor en `sagemaker:variant:DesiredProvisionedConcurrency`. 
+  `MinCapacity`: el número mínimo de simultaneidad aprovisionada para el modelo. Establezca `MinCapacity` en al menos 1. Debe ser igual o inferior al valor especificado para `MaxCapacity`. 
+  `MaxCapacity`: el número máximo de simultaneidad aprovisionada que debe habilitarse mediante Application Auto Scaling. Establezca `MaxCapacity` en un mínimo de 1. Debe ser mayor o igual que el valor especificado para `MinCapacity`. 

 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
<a name="serverless-endpoints-autoscale-define"></a>

 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. Puede utilizar ese archivo de texto al invocar el AWS CLI o la API de Application Auto Scaling. 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
<a name="serverless-endpoints-autoscale-apply"></a>

 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](#serverless-endpoints-autoscale-apply-target) 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](#serverless-endpoints-autoscale-apply-scheduled). 

### Aplicar una política de escalado de seguimiento de destino
<a name="serverless-endpoints-autoscale-apply-target"></a>

 Puede utilizar la AWS CLI o la Consola de administración de AWS API de Application Auto Scaling para aplicar una política de escalado de seguimiento de destino al punto de conexión sin servidor con la simultaneidad de aplicaciones. 

#### Aplicar una política de escalado de seguimiento de destino (AWS CLI)
<a name="serverless-endpoints-autoscale-apply-target-cli"></a>

 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 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/MyEndpoint/variant/MyVariant`. 
+  `--service-namespace`: establezca este valor en `sagemaker`. 
+  `--scalable-dimension`: establezca este valor en `sagemaker: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)
<a name="serverless-endpoints-autoscale-apply-target-api"></a>

 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 en `TargetTrackingScaling`. 
+  `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/MyEndpoint/variant/MyVariant`. 
+  `ServiceNamespace`: establezca este valor en `sagemaker`. 
+  `ScalableDimension`: establezca este valor en `sagemaker: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 (Consola de administración de AWS)
<a name="serverless-endpoints-autoscale-apply-target-console"></a>

 Para aplicar una política de escalado al destino con el Consola de administración de AWS: 

1.  Inicie sesión en la [consola de Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/). 

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

1.  Seleccione **punto de conexión** para ver una lista de todos sus puntos de conexión. 

1.  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**. 

1.  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**.   
![\[Captura de pantalla del cuadro de diálogo para configurar el escalado automático de la variante en la consola.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/serverless-endpoints-variant-autoscaling.png)

1.  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. 

1.  Introduzca el valor objetivo en el campo **Valor objetivo** de la métrica de destino, `SageMakerVariantProvisionedConcurrencyUtilization`. 

1.  (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. 

1.  (Opcional) Seleccione **Desactivar escalado descendente** si no desea que el escalado automático elimine la instancia cuando disminuye el tráfico. 

1.  Seleccione **Guardar**. 

### Escalado programado
<a name="serverless-endpoints-autoscale-apply-scheduled"></a>

 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 AWS CLI o Application Auto Scaling para programar acciones de escalado. 

#### Escalado programado (AWS CLI)
<a name="serverless-endpoints-autoscale-apply-scheduled-cli"></a>

 Para aplicar una política de escalado a su modelo, use el comando `put-scheduled-action` de la 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 es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/MyEndpoint/variant/MyVariant`. 
+  `--service-namespace`: establezca este valor en `sagemaker`. 
+  `--scalable-dimension`: establezca este valor en `sagemaker: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)
<a name="serverless-endpoints-autoscale-apply-scheduled-api"></a>

 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 es `endpoint` y el identificador único es el nombre de la variante. Por ejemplo, `endpoint/MyEndpoint/variant/MyVariant`. 
+  `ServiceNamespace`: establezca este valor en `sagemaker`. 
+  `ScalableDimension`: establezca este valor en `sagemaker: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"
        }
    }
}
```