

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Escalabilidade automática dos modelos de SageMaker IA da Amazon
<a name="endpoint-auto-scaling"></a>

O Amazon SageMaker AI oferece suporte à escalabilidade automática (escalabilidade automática) para seus modelos hospedados. O *ajuste de escala automático* ajusta dinamicamente o número de instâncias provisionadas para um modelo em resposta às alterações no workload. Quando a workload aumenta, o ajuste de escala automático disponibiliza mais instâncias online. Quando a workload diminui, o ajuste de escala automático remove as instâncias desnecessárias para que você não precise pagar pelas instâncias provisionadas que não está usando.

**Topics**
+ [Visão geral das políticas de ajuste de escala automático](endpoint-auto-scaling-policy.md)
+ [Pré-requisitos de ajuste de escala automático](endpoint-auto-scaling-prerequisites.md)
+ [Configurar a ajuste de escala automático do modelo com o console](endpoint-auto-scaling-add-console.md)
+ [Registrar um modelo](endpoint-auto-scaling-add-policy.md)
+ [Definir uma política de escalabilidade](endpoint-auto-scaling-add-code-define.md)
+ [Aplicar uma política de escalabilidade](endpoint-auto-scaling-add-code-apply.md)
+ [Instruções para editar uma política de ajuste de escala](endpoint-auto-scaling-edit.md)
+ [Desative temporariamente as políticas de ajuste de escala](endpoint-auto-scaling-suspend-scaling-activities.md)
+ [Excluir uma política de escalabilidade](endpoint-auto-scaling-delete.md)
+ [Verificar o status de uma atividade de ajuste de escala na descrição das atividades de ajuste de escala](endpoint-scaling-query-history.md)
+ [Escalar um endpoint para zero instância](endpoint-auto-scaling-zero-instances.md)
+ [Testes de carga da configuração de ajuste de escala automático](endpoint-scaling-loadtest.md)
+ [Use CloudFormation para criar uma política de escalabilidade](endpoint-scaling-cloudformation.md)
+ [Atualizar endpoints que usam o ajuste de escala automático](endpoint-scaling-update.md)
+ [Excluir endpoints configurados para o ajuste de escala automático](endpoint-delete-with-scaling.md)

# Visão geral das políticas de ajuste de escala automático
<a name="endpoint-auto-scaling-policy"></a>

Para usar o ajuste de escala automático, é preciso definir uma política de ajuste de escala que adiciona e remove o número de instâncias da sua variante de produção em resposta a workloads reais.

Para escalar automaticamente conforme as mudanças de workload, você tem duas opções: políticas de rastreamento de destinos e ajuste de escala em etapas. 

Na maioria dos casos, recomendamos usar políticas de escalabilidade com rastreamento de destinos. Com o rastreamento de metas, você escolhe uma CloudWatch métrica e um valor alvo da Amazon. O Auto Scaling cria e gerencia CloudWatch os alarmes para a política de escalabilidade e calcula o ajuste de escalabilidade com base na métrica e no valor alvo. A política de ajuste de escala adiciona ou remove instâncias conforme necessário para manter a métrica no valor de destino especificado ou próxima dele. Por exemplo, uma política de escalabilidade que usa a métrica predefinida `InvocationsPerInstance` com um valor de destino de 70 pode manter `InvocationsPerInstance` em ou próxima a 70. Para obter mais informações, consulte [Políticas de escalabilidade de rastreamento de destino](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html), no *Guia do usuário do Application Auto Scaling*.

É possível usar a escalabilidade em etapas quando precisar de uma configuração avançada, como especificar quantas instâncias serão implantadas em quais condições. Por exemplo, você deve usar a escalabilidade em etapas se quiser permitir que um endpoint tenha a escala aumentada horizontalmente a partir de zero instância ativa. Para obter uma visão geral das políticas de ajuste de escala em etapas e como elas funcionam, consulte [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) no *Guia do usuário do ajuste de escala automático da aplicação*.

Para criar uma política de escalabilidade de rastreamento de destinos, especifique o seguinte:
+ **Métrica** — A CloudWatch métrica a ser monitorada, como o número médio de invocações por instância. 
+ **Valor de destino**: o valor de destino da métrica, como, por exemplo, 70 invocações por instância por minuto.

É possível criar políticas de escalabilidade de rastreamento de destino com métricas predefinidas ou personalizadas. Uma métrica predefinida é definida em uma enumeração para que você possa especificá-la por nome no código ou usá-la no console do AI. SageMaker Como alternativa, você pode usar a AWS CLI ou a API do Application Auto Scaling para aplicar uma política de ajuste de escala com base em uma métrica predefinida ou personalizada.

Observe que as atividades de ajuste de escala são executadas com períodos de espera entre elas para evitar flutuações rápidas na capacidade. Opcionalmente, é possível configurar os períodos de espera para a política de ajuste de escala. 

Para obter mais informações sobre os conceitos principais de ajuste de escala automático, consulte a seção a seguir.

## Ajuste de escala programado
<a name="scheduled-scaling"></a>

Você pode criar ações programadas para executar atividades de ajuste de escala em momentos específicos. Você pode criar ações agendadas que escalam somente uma vez ou que escalam em uma programação recorrente. Após a execução de uma ação programada, a política de ajuste de escala pode continuar a tomar decisões sobre a necessidade de escalar dinamicamente à medida conforme as mudanças de workload. O escalonamento programado só pode ser gerenciado a partir da API Application Auto Scaling AWS CLI ou da API Application Auto Scaling. Para obter mais informações, consulte [Escalabilidade programada](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) no *Guia do usuário do Application Auto Scaling*.

## Limites mínimo e máximo de ajuste de escala
<a name="endpoint-auto-scaling-target-capacity"></a>

Ao configurar o ajuste de escala automático, você deve especificar seus limites de ajuste de escala antes de criar uma política de ajuste de escala. Você define limites separadamente para o tamanho mínimo e máximo.

O valor mínimo deve ser menor que 1, e igual ou menor que o valor especificado para o valor máximo.

O valor máximo deve ser igual ou maior que o valor especificado para o valor mínimo. SageMaker O escalonamento automático de IA não impõe um limite para esse valor.

Para determinar os limites de ajuste de escala que você precisa para um tráfego típico, teste a configuração de ajuste de escala automático com a taxa esperada de tráfego para o seu modelo.

Se o tráfego de uma variante se tornar zero, a SageMaker IA se expande automaticamente para o número mínimo de instâncias especificado. Nesse caso, a SageMaker IA emite métricas com valor zero.

Há três opções para especificar a capacidade mínima e máxima:

1. Use o console para atualizar as configurações **Contagem mínima de instâncias** e **Contagem máxima de instâncias**.

1. Use as `--max-capacity` opções AWS CLI e inclua `--min-capacity` e ao executar o [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)comando.

1. Chame a [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)API e especifique os `MinCapacity` `MaxCapacity` parâmetros e.

**dica**  
Aumente o valor mínimo manualmente para aumentar a escala horizontalmente, ou diminua o valor máximo manualmente para reduzir a escala horizontalmente.

## Período de espera
<a name="endpoint-auto-scaling-target-cooldown"></a>

É usado um *período de espera* para proteger contra o ajuste de escala excessivo ao reduzir a escala horizontalmente (redução da capacidade) ou aumentar a escala horizontalmente (aumento da capacidade) do modelo. Isso é feito através da desaceleração das atividades de ajuste de escala subsequentes até o fim do período. Mais especificamente, bloqueará a exclusão de instâncias nas solicitações para reduzir a escala horizontalmente, bem como a criação de instâncias nas solicitações para aumentar a escala horizontalmente. Para obter mais informações, consulte [Definir períodos de espera](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) no *Guia do usuário do Application Auto Scaling*. 

Configure o período de espera de sua política de ajuste de escala automático. 

Se você não especificar um período de espera para as ações de reduzir a escala horizontalmente ou aumentar a escala horizontalmente, a política de ajuste de escala usa o padrão, que é 300 segundos para cada uma das ações.

Se as instâncias estiverem sendo adicionadas ou removidas muito rapidamente quando você testa sua configuração de ajuste de escala, pense em aumentar esse valor. Esse comportamento poderá ser percebido se o tráfego para o modelo tiver uma grande quantidade de picos, ou se houver várias políticas de ajuste de escala definidas para uma variante.

Se as instâncias não estiverem sendo adicionadas com rapidez suficiente para lidar com o aumento do tráfego, pense em diminuir esse valor.

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

Para obter mais informações sobre a configuração de ajuste de escala automático, consulte os recursos a seguir:
+ Seção [application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling) da *Referência de comandos da AWS CLI *
+ [Referência à API do Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/APIReference/)
+ [Guia do usuário do Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/)

**nota**  
SageMaker Recentemente, a IA introduziu novos recursos de inferência baseados em endpoints de inferência em tempo real. Você cria um endpoint de SageMaker IA com uma configuração de endpoint que define o tipo de instância e a contagem inicial de instâncias para o endpoint. Em seguida, crie um componente de inferência, que é um objeto de hospedagem de SageMaker IA que você pode usar para implantar um modelo em um endpoint. Para obter informações sobre como escalar componentes de inferência, consulte A [SageMaker IA adiciona novos recursos de inferência para ajudar a reduzir os custos e a latência de implantação do modelo básico e](https://aws.amazon.com/blogs/aws/amazon-sagemaker-adds-new-inference-capabilities-to-help-reduce-foundation-model-deployment-costs-and-latency/) [reduzir os custos de implantação do modelo em 50%, em média, usando os recursos mais recentes da SageMaker IA](https://aws.amazon.com/blogs/machine-learning/reduce-model-deployment-costs-by-50-on-average-using-sagemakers-latest-features/) no blog. AWS 

# Pré-requisitos de ajuste de escala automático
<a name="endpoint-auto-scaling-prerequisites"></a>

Antes de usar o auto scaling, você já deve ter criado um endpoint do modelo Amazon SageMaker AI. Você pode ter várias versões de modelo para o mesmo endpoint. Cada modelo é chamado de [variante de produção (modelo)](model-ab-testing.md). Para mais informações sobre como implantar um endpoint de modelo, consulte [Implante o modelo nos serviços de hospedagem de SageMaker IA](ex1-model-deployment.md#ex1-deploy-model).

Para ativar o escalonamento automático para um modelo, você pode usar o console de SageMaker IA, o AWS Command Line Interface (AWS CLI) ou um AWS SDK por meio da API Application Auto Scaling. 
+ Se essa for a primeira vez que você está configurando o ajuste de escala de um modelo, recomendamos [Configurar a ajuste de escala automático do modelo com o console](endpoint-auto-scaling-add-console.md). 
+ Ao usar a API Application Auto Scaling AWS CLI ou a Application Auto Scaling, o fluxo é registrar o modelo como um alvo escalável, definir a política de escalabilidade e aplicá-la. **No console do SageMaker AI, em **Inferência** no painel de navegação, escolha Endpoints.** Encontre o nome do endpoint do modelo e, em seguida, selecione-o para encontrar o nome da variante. Você deve especificar ambos, o nome do endpoint e o nome da variante para ativar o ajuste de escala automático para um modelo.

O escalonamento automático é possível graças a uma combinação do Amazon SageMaker AI CloudWatch, Amazon e Application APIs Auto Scaling. Para obter informações sobre as permissões mínimas necessárias, consulte [Exemplos de políticas baseadas em identidade do Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_id-based-policy-examples.html) no *Guia do Usuário do Application Auto Scaling*.

A política do IAM `SagemakerFullAccessPolicy` tem todas as permissões necessárias do IAM para executar o ajuste de escala automático. Para obter mais informações sobre as permissões do SageMaker AI IAM, consulte[Como usar funções de execução de SageMaker IA](sagemaker-roles.md).

Se você estiver usando a sua própria política de permissão personalizada, deverá incluir as seguintes permissões:

------
#### [ 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": "*"
    }
  ]
}
```

------

## Perfil vinculado a serviço
<a name="endpoint-auto-scaling-slr"></a>

O Auto Scaling usa a função vinculada ao serviço `AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint`. Essa função vinculada ao serviço concede permissão ao Application Auto Scaling para descrever os alarmes das suas políticas, monitorar os níveis da capacidade atual e escalar a capacidade alvo. Esta função é criada automaticamente para você. Para que a criação automática da função seja bem-sucedida, é preciso ter permissão para a ação `iam:CreateServiceLinkedRole`. Para obter mais informações, consulte [Funções vinculadas ao serviço](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) no *Guia do usuário do Application Auto Scaling*.

# Configurar a ajuste de escala automático do modelo com o console
<a name="endpoint-auto-scaling-add-console"></a>

**Como configurar o ajuste de escala automático para um modelo (console)**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação, selecione **Inferência** e depois selecione **Endpoints**. 

1. Escolha seu endpoint e, em seguida, nas **Configurações do runtime do Endpoint**, escolha a variante.

1. Escolha **Configurar o ajuste de escala automático**.

1. Na página **Configurar ajuste de escala automático da variante**, para o **Ajuste automático de escala da variante**, faça o seguinte:

   1. Na **Contagem da instância mínima**, digite o número mínimo de instâncias que você quer que sejam mantidas na política de ajuste de escala. Pelo menos 1 instância é necessária.

   1. Na **Contagem da instância máxima**, digite o número máximo de instâncias que você quer que sejam mantidas na política de ajuste de escala.

1. Para uma **política de ajuste de escala integrada**, faça o seguinte:

   1. Para a **Métrica de destino**, `SageMakerVariantInvocationsPerInstance` é selecionada automaticamente para a métrica e não pode ser alterada.

   1. Para o **Valor de destino**, digite o número médio de invocações por instância por minuto do modelo. Para determinar esse valor, siga as instruções em [Testes de carga](endpoint-scaling-loadtest.md).

   1. (Opcional) Para **Espera ao reduzir a escala horizontalmente (segundos)** e **Espera ao aumentar a escala horizontalmente (segundos)**, insira a quantidade de tempo, em segundos, de cada período de espera.

   1. (Opcional) Selecione **Desativar reduzir a escala horizontalmente** se você não quiser que o ajuste de escala automático encerre as instâncias na diminuição do tráfego.

1. Escolha **Salvar**.

Esse procedimento registra um modelo como um destino escalável com o Application Auto Scaling. Quando você registra um modelo, o Application Auto Scaling executa verificações de validação para confirmar se:
+ O modelo existe
+ As permissões são suficientes
+ Você não está registrando uma variante com uma instância de desempenho expansível, como a T2
**nota**  
SageMaker A IA não oferece suporte ao escalonamento automático para instâncias com capacidade de intermitência, como T2, porque elas já permitem maior capacidade sob cargas de trabalho maiores. Para obter informações sobre as instâncias de desempenho expansível, consulte [Tipos de instância do Amazon EC2](https://aws.amazon.com/ec2/instance-types/).

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

Antes de adicionar uma política de ajuste de escala ao seu modelo, primeiro você deve registrar seu modelo para ajuste de escala automático e definir os limites de ajuste de escala para o modelo.

Os procedimentos a seguir abordam como registrar um modelo (variante de produção) para escalonamento automático usando a AWS Command Line Interface (AWS CLI) ou a API Application Auto Scaling.

**Topics**
+ [Registrar um modelo (AWS CLI)](#endpoint-auto-scaling-add-cli)
+ [Registro de um modelo (API da aplicação Auto Scaling)](#endpoint-auto-scaling-add-api)

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

Para registrar sua variante de produção, use o [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)comando com os seguintes parâmetros:
+ `--service-namespace`: Defina esse valor como `sagemaker`.
+ `--resource-id`: O identificador de recurso para o modelo (especificamente, a variante de produção). Para esse parâmetro, o tipo de recurso é `endpoint` e o identificador exclusivo é o nome da variante de produção. Por exemplo, .`endpoint/my-endpoint/variant/my-variant`
+ `--scalable-dimension`: Defina esse valor como `sagemaker:variant:DesiredInstanceCount`.
+ `--min-capacity`: O número mínimo de instâncias. Este valor deve ser definido como 1, pelo menos. Além disso, deve ser igual ou menor que o valor especificado para `max-capacity`.
+ `--max-capacity`: O número máximo de instâncias. Este valor deve ser definido como 1, pelo menos. Além disso, deve ser igual ou maior que o valor especificado para `min-capacity`.

**Example**  
O exemplo a seguir mostra como registrar uma variante chamada `my-variant`, em execução no endpoint `my-endpoint`, que pode ser escalada dinamicamente para ter de uma a oito instâncias.  

```
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
```

## Registro de um modelo (API da aplicação Auto Scaling)
<a name="endpoint-auto-scaling-add-api"></a>

Para registrar seu cluster com o Application Auto Scaling, use a ação de API do [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) Application Auto Scaling com os seguintes parâmetros:
+ `ServiceNamespace`—Defina esse valor como `sagemaker`.
+ `ResourceID`: O identificador de recurso da variante de produção. Para esse parâmetro, o tipo de recurso é `endpoint` e o identificador exclusivo é o nome da variante. Por exemplo, `endpoint/my-endpoint/variant/my-variant`.
+ `ScalableDimension`—Defina esse valor como `sagemaker:variant:DesiredInstanceCount`.
+ `MinCapacity`: O número mínimo de instâncias. Este valor deve ser definido como 1, pelo menos. Além disso, deve ser igual ou menor que o valor especificado para `MaxCapacity`.
+ `MaxCapacity`: O número máximo de instâncias. Este valor deve ser definido como 1, pelo menos. Além disso, deve ser igual ou maior que o valor especificado para `MinCapacity`.

**Example**  
O exemplo a seguir mostra como registrar uma variante chamada `my-variant`, em execução no endpoint `my-endpoint`, que pode ser escalada dinamicamente para usar uma a oito instâncias.  

```
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 uma política de escalabilidade
<a name="endpoint-auto-scaling-add-code-define"></a>

Antes de adicionar a política de ajuste de escala ao modelo, salve a sua política de configuração como bloco JSON em um arquivo de texto. Você usa esse arquivo de texto ao invocar o AWS Command Line Interface (AWS CLI) ou a API Application Auto Scaling. Você pode otimizar o escalonamento escolhendo uma CloudWatch métrica apropriada. No entanto, antes de usar uma métrica personalizada na produção, você deve testar o ajuste de escala automático com sua métrica personalizada.

**Topics**
+ [Especifique uma métrica predefinida (CloudWatch métrica: InvocationsPerInstance)](#endpoint-auto-scaling-add-code-predefined)
+ [Especifique uma métrica predefinida de alta resolução (CloudWatch métricas: ConcurrentRequestsPerModel e) ConcurrentRequestsPerCopy](#endpoint-auto-scaling-add-code-high-res)
+ [Defina uma métrica personalizada (CloudWatch métrica: CPUUtilization)](#endpoint-auto-scaling-add-code-custom)
+ [Defina uma métrica personalizada (CloudWatch métrica: ExplanationsPerInstance)](#endpoint-auto-scaling-online-explainability)
+ [Especificar os períodos de espera](#endpoint-auto-scaling-add-code-cooldown)

Esta seção mostra exemplos de configurações de políticas para políticas de ajuste de escala de rastreamento de destinos.

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

**Example**  
Veja a seguir um exemplo de configuração de política de rastreamento de metas para uma variante que mantém a média de invocações por instância em 70. Salve esta configuração em um arquivo chamado `config.json`.  

```
{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    }
}
```
Para obter mais informações, consulte a Referência [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)da *API Application Auto Scaling*.

## Especifique uma métrica predefinida de alta resolução (CloudWatch métricas: ConcurrentRequestsPerModel e) ConcurrentRequestsPerCopy
<a name="endpoint-auto-scaling-add-code-high-res"></a>

Com as seguintes CloudWatch métricas de alta resolução, você pode definir políticas de escalabilidade para o volume de solicitações simultâneas que seus modelos recebem:

**ConcurrentRequestsPerModel**  
O número de solicitações simultâneas recebidas por um contêiner modelo.

**ConcurrentRequestsPerCopy**  
O número de solicitações simultâneas recebidas por um componente de inferência.

Essas métricas rastreiam o número de solicitações simultâneas que seus contêineres de modelo processam, incluindo as solicitações que estão enfileiradas dentro dos contêineres. Para modelos que enviam sua resposta de inferência como um fluxo de tokens, essas métricas rastreiam cada solicitação até que o modelo envie o último token da solicitação.

Como métricas de alta resolução, elas emitem dados com mais frequência do que as métricas padrão CloudWatch. Métricas padrão, como a métrica `InvocationsPerInstance`, emitem dados uma vez a cada minuto. No entanto, essas métricas de alta resolução emitem dados a cada 10 segundos. Portanto, à medida que aumenta o tráfego simultâneo para seus modelos, a reação de sua política é aumentar a escala horizontalmente muito mais rapidamente do que faria com as métricas padrão. No entanto, à medida que diminui o tráfego para seus modelos, a política de reduzir a escala horizontalmente segue na mesma velocidade que das métricas padrão.

Veja a seguir um exemplo de configuração da política de rastreamento de metas que adiciona instâncias se o número de solicitações simultâneas por modelo exceder 5. Salve esta configuração em um arquivo chamado `config.json`.

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

Se você usar componentes de inferência para implantar vários modelos no mesmo endpoint, poderá criar uma política equivalente. Neste caso, defina `PredefinedMetricType` para `SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution`.

Para obter mais informações, consulte a Referência [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)da *API Application Auto Scaling*.

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

Para criar uma política de ajuste de escala do rastreamento de destinos com uma métrica personalizada, especifique o nome da métrica, o espaço nominal, a unidade, a estatística e zero ou mais dimensões. Uma dimensão consiste em um nome e um valor de dimensão. É possível usar qualquer métrica de variante de produção que mude na proporção da capacidade. 

**Example**  
O exemplo de configuração a seguir mostra uma política de ajuste de escala de rastreamento de destino com uma métrica personalizada. A política escala a variante com base na utilização média de 50 por cento da CPU em todas as instâncias. Salve esta configuração em um arquivo chamado `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 obter mais informações, consulte a Referência [CustomizedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html)da *API Application Auto Scaling*. 

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

Quando a explicabilidade on-line do endpoint estiver ativada, ele emite a métrica `ExplanationsPerInstance` que gera o número médio de registros explicados por minuto, por instância, para uma variante. A utilização de recursos para explicar registros pode ser mais diferente da utilização de registros preditivos. É altamente recomendável usar essa métrica para o ajuste de escala de rastreamento de destinos de endpoints com a explicabilidade on-line ativada.

Você pode criar várias políticas de rastreamento de destinos para um destino escalável. Considere adicionar a política `InvocationsPerInstance` da seção [Especifique uma métrica predefinida (CloudWatch métrica: InvocationsPerInstance)](#endpoint-auto-scaling-add-code-predefined) (adicionalmente à política `ExplanationsPerInstance`). Se a maioria das invocações não retornar uma explicação devido ao valor limite definido no parâmetro `EnableExplanations`, o endpoint poderá escolher a política `InvocationsPerInstance`. Se houver um grande número de explicações, o endpoint poderá usar a política `ExplanationsPerInstance`. 

**Example**  
O exemplo de configuração a seguir mostra uma política de escalabilidade de rastreamento de destino com uma métrica personalizada. A escala da política ajusta o número de instâncias das variantes de modo que cada instância tenha uma métrica `ExplanationsPerInstance` de 20. Salve esta configuração em um arquivo chamado `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 obter mais informações, consulte a Referência [CustomizedMetricSpecification](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_CustomizedMetricSpecification.html)da *API Application Auto Scaling*. 

## Especificar os períodos de espera
<a name="endpoint-auto-scaling-add-code-cooldown"></a>

Opcionalmente, você pode definir períodos de espera na política de ajuste de escala com rastreamento de destino através a especificação dos parâmetros `ScaleOutCooldown` e `ScaleInCooldown`. 

**Example**  
Veja a seguir um exemplo de configuração de política de rastreamento de metas para uma variante que mantém a média de invocações por instância em 70. A configuração da política fornece um período de espera de reduzir a escala horizontalmente de 10 minutos (600 segundos) e em um período de espera de expansão de 5 minutos (300 segundos). Salve esta configuração em um arquivo chamado `config.json`.   

```
{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```
Para obter mais informações, consulte a Referência [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)da *API Application Auto Scaling*. 

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

Depois de registrar o modelo e definir uma política de ajuste de escala, aplique a política de ajuste de escala ao modelo registrado. Esta seção mostra como aplicar uma política de ajuste de escala com o uso de AWS Command Line Interface (AWS CLI) ou da API do Application Auto Scaling. 

**Topics**
+ [Aplicar uma política de ajuste de escala de rastreamento de destino (AWS CLI)](#endpoint-auto-scaling-add-code-apply-cli)
+ [Aplique uma política de escalabilidade (Application Auto Scaling API)](#endpoint-auto-scaling-add-code-apply-api)

## Aplicar uma política de ajuste de escala de rastreamento de destino (AWS CLI)
<a name="endpoint-auto-scaling-add-code-apply-cli"></a>

Para aplicar uma política de escalabilidade ao seu modelo, use o [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) AWS CLI comando com os seguintes parâmetros:
+ `--policy-name`: O nome da política de ajuste de escala.
+ `--policy-type`: Defina esse valor como `TargetTrackingScaling`.
+ `--resource-id`: O identificador de recurso para a variante. Para esse parâmetro, o tipo de recurso é `endpoint` e o identificador exclusivo é o nome da variante. Por exemplo, .`endpoint/my-endpoint/variant/my-variant`
+ `--service-namespace`: Defina esse valor como `sagemaker`.
+ `--scalable-dimension`: Defina esse valor como `sagemaker:variant:DesiredInstanceCount`.
+ `--target-tracking-scaling-policy-configuration`: A configuração da política de ajuste de escala de rastreamento de destino a ser usada para o modelo.

**Example**  
O exemplo a seguir aplica a política de ajuste de escala de rastreamento de destino chamada `my-scaling-policy` a uma variante chamada `my-variant`, em execução no endpoint `my-endpoint`. Para a opção de `--target-tracking-scaling-policy-configuration`, especifique o arquivo `config.json` que você criou 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
```

## Aplique uma política de escalabilidade (Application Auto Scaling API)
<a name="endpoint-auto-scaling-add-code-apply-api"></a>

Para aplicar uma política de escalabilidade a uma variante com a API Application Auto Scaling, use a ação de API do [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) Application Auto Scaling com os seguintes parâmetros:
+ `PolicyName`: O nome da política de ajuste de escala.
+ `ServiceNamespace`: Defina esse valor como `sagemaker`.
+ `ResourceID`: O identificador de recurso para a variante. Para esse parâmetro, o tipo de recurso é `endpoint` e o identificador exclusivo é o nome da variante. Por exemplo, .`endpoint/my-endpoint/variant/my-variant`
+ `ScalableDimension`: Defina esse valor como `sagemaker:variant:DesiredInstanceCount`.
+ `PolicyType`: Defina esse valor como `TargetTrackingScaling`.
+ `TargetTrackingScalingPolicyConfiguration`: A configuração da política de ajuste de escala de rastreamento de destino a ser usada para a variante.

**Example**  
O exemplo a seguir aplica a política de escalabilidade de rastreamento de destino chamada `my-scaling-policy` a uma variante chamada `my-variant`, em execução no endpoint `my-endpoint`. A configuração da política mantém a média de invocações por instância em 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"
        }
    }
}
```

# Instruções para editar uma política de ajuste de escala
<a name="endpoint-auto-scaling-edit"></a>

Depois de criar uma política de ajuste de escala, você pode atualizar qualquer uma de suas configurações, exceto o nome.

 Para editar uma política de escalabilidade de rastreamento de metas com o Console de gerenciamento da AWS, use o mesmo procedimento que você costumava [Configurar a ajuste de escala automático do modelo com o console](endpoint-auto-scaling-add-console.md) usar.

Você pode usar a API Application Auto Scaling AWS CLI ou a Application Auto Scaling para editar uma política de escalabilidade da mesma forma que cria uma nova política de escalabilidade. Para obter mais informações, consulte [Aplicar uma política de escalabilidade](endpoint-auto-scaling-add-code-apply.md).

# Desative temporariamente as políticas de ajuste de escala
<a name="endpoint-auto-scaling-suspend-scaling-activities"></a>

Depois de configurar o ajuste de escala automático, você tem as seguintes opções quando precisar investigar um problema sem interferência das políticas de ajuste de escala (ajuste de escala dinâmico):
+ Suspenda temporariamente e retome as atividades de escalabilidade chamando o comando da [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)CLI ou a ação [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)da API, especificando um valor booleano para e. `DynamicScalingInSuspended` `DynamicScalingOutSuspended`   
**Example**  

  O exemplo a seguir mostra como suspender as políticas de ajuste de escala para uma variante chamada `my-variant`, em execução no endpoint `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 reduzir a escala horizontalmente da variante desabilitando a porção referente a reduzir a escala horizontalmente nas políticas específicas de ajuste de escala de rastreamento de destinos. Esse método impede que a política de ajuste de escala exclua as instâncias, enquanto ainda permite a criação delas conforme a necessidade.

  Desative temporariamente e, em seguida, ative as atividades de expansão editando a política usando o comando da [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)CLI ou a ação da [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API, especificando um valor booleano para. `DisableScaleIn`  
**Example**  

  Veja a seguir um exemplo de configuração de rastreamento de destino para uma política de ajuste de escala que pode aumentar a escala horizontalmente, mas não reduzir a escala horizontalmente. 

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

# Excluir uma política de escalabilidade
<a name="endpoint-auto-scaling-delete"></a>

Quando você não precisar mais de uma política de ajuste de escala, poderá excluí-la a qualquer momento.

**Topics**
+ [Exclua todas as políticas de ajuste de escala e cancele o registro do modelo (console)](#endpoint-auto-scaling-delete-console)
+ [Excluir uma política de escalabilidade (AWS CLI ou Application Auto Scaling API)](#endpoint-auto-scaling-delete-code)

## Exclua todas as políticas de ajuste de escala e cancele o registro do modelo (console)
<a name="endpoint-auto-scaling-delete-console"></a>

**Para excluir todas as políticas de ajuste de escala e cancelar o registro da variante como um alvo escalável**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação, escolha **Endpoints**.

1. Escolha seu endpoint e, em seguida, nas **Configurações do runtime do Endpoint**, escolha a variante.

1. Escolha **Configurar o ajuste de escala automático**.

1. Escolha **Cancelar registro de ajuste de escala automático**.

## Excluir uma política de escalabilidade (AWS CLI ou Application Auto Scaling API)
<a name="endpoint-auto-scaling-delete-code"></a>

Você pode usar a API Application Auto Scaling AWS CLI ou a Application Auto Scaling para excluir uma política de escalabilidade de uma variante.

### Excluir uma política de escalabilidade (AWS CLI)
<a name="endpoint-auto-scaling-delete-code-cli"></a>

Para excluir uma política de escalabilidade de uma variante, use o [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html)comando com os seguintes parâmetros:
+ `--policy-name`—O nome da política de escalabilidade.
+ `--resource-id`: O identificador de recurso para a variante. Para esse parâmetro, o tipo de recurso é `endpoint` e o identificador exclusivo é o nome da variante. Por exemplo, .`endpoint/my-endpoint/variant/my-variant`
+ `--service-namespace`: Defina esse valor como `sagemaker`.
+ `--scalable-dimension`: Defina esse valor como `sagemaker:variant:DesiredInstanceCount`.

**Example**  
O exemplo a seguir exclui uma política de ajuste de escala de rastreamento de destino chamada `my-scaling-policy` de uma variante chamada `my-variant`, em execução no endpoint `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
```

### Exclua uma política de escalabilidade (API do Application Auto Scaling)
<a name="endpoint-auto-scaling-delete-code-api"></a>

Para excluir a política de escalabilidade da sua variante, use a ação [DeleteScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeleteScalingPolicy.html) da Application Auto Scaling API com os seguintes parâmetros:
+ `PolicyName`—O nome da política de escalabilidade.
+ `ServiceNamespace`: Defina esse valor como `sagemaker`.
+ `ResourceID`: O identificador de recurso para a variante. Para esse parâmetro, o tipo de recurso é `endpoint` e o identificador exclusivo é o nome da variante. Por exemplo, .`endpoint/my-endpoint/variant/my-variant`
+ `ScalableDimension`: Defina esse valor como `sagemaker:variant:DesiredInstanceCount`.

**Example**  
O exemplo a seguir exclui uma política de escalabilidade de rastreamento de destino chamada `my-scaling-policy` de uma variante chamada `my-variant`, em execução no endpoint `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"
}
```

# Verificar o status de uma atividade de ajuste de escala na descrição das atividades de ajuste de escala
<a name="endpoint-scaling-query-history"></a>

Você pode verificar o status de uma atividade de ajuste de escala do endpoint com ajuste de escala automático na descrição das respectivas atividades. O Application Auto Scaling fornece informações descritivas sobre as atividades de ajuste de escala no namespace especificado das seis semanas anteriores. Para obter mais informações, consulte as [Atividades de ajuste de escala do Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html) no *Guia do usuário do Application Auto Scaling*.

Para verificar o status de uma atividade de escalabilidade, use o [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando. Você não pode verificar o status de uma atividade de ajuste de escala através do console.

**Topics**
+ [Descrição das atividades de ajuste de escala (AWS CLI)](#endpoint-how-to)
+ [Identifique as atividades do ajuste de escala automático bloqueado a partir das cotas de instância (AWS CLI)](#endpoint-identify-blocked-autoscaling)

## Descrição das atividades de ajuste de escala (AWS CLI)
<a name="endpoint-how-to"></a>

Para descrever as atividades de escalabilidade de todos os recursos de SageMaker IA registrados no Application Auto Scaling, use [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)o comando, `sagemaker` especificando a opção. `--service-namespace`

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

Para descrever as atividades de ajuste de escala de um recurso específico, inclua a opção `--resource-id`. 

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

O exemplo a seguir mostra o resultado alcançado com a execução desse 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"
}
```

## Identifique as atividades do ajuste de escala automático bloqueado a partir das cotas de instância (AWS CLI)
<a name="endpoint-identify-blocked-autoscaling"></a>

Ao aumentar a escala horizontalmente (adicionar mais instâncias), você pode atingir sua cota de instâncias do nível da conta. Você pode usar o [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando para verificar se atingiu sua cota de instância. Quando você excede sua cota, o ajuste de escala automático é bloqueado. 

Para verificar se você atingiu sua cota de instância, use o [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html)comando e especifique o ID do recurso para a `--resource-id` opção. 

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

Na sintaxe de retorno, verifique as chaves [StatusCode](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html#autoscaling-Type-ScalingActivity-StatusCode) e [StatusMessage](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html#autoscaling-Type-ScalingActivity-StatusMessage) e seus valores associados. `StatusCode` devoluções `Failed`. Dentro de `StatusMessage`, há uma mensagem indicando que a cota de serviço no nível da conta foi atingida. Veja a seguir um exemplo da possível aparência que a mensagem pode ter: 

```
{
    "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)."
}
```

# Escalar um endpoint para zero instância
<a name="endpoint-auto-scaling-zero-instances"></a>

Ao configurar o ajuste de escala automático para um endpoint, é possível permitir que o processo de redução de escala horizontal diminua o número de instâncias em serviço para zero. Ao fazer isso, você reduz os custos durante os períodos em que o endpoint não está atendendo a solicitações de inferência e, portanto, não exige nenhuma instância ativa. 

No entanto, depois de reduzir a escala horizontalmente para zero instância, seu endpoint não poderá responder a nenhuma solicitação de inferência de entrada enquanto ele não provisionar pelo menos uma instância. Para automatizar o processo de provisionamento, crie uma política de escalabilidade em etapas com o Application Auto Scaling. Em seguida, você atribui a política a um CloudWatch alarme da Amazon.

Depois de configurar a política de escalabilidade em etapas e o alarme, o endpoint provisionará automaticamente uma instância assim que receber uma solicitação de inferência à qual não consiga responder. Esteja ciente de que o processo de provisionamento leva alguns minutos. Durante esse período, qualquer tentativa de invocar o endpoint produzirá um erro.

Os procedimentos a seguir explicam como configurar o ajuste de escala automático de um endpoint para que ele tenha a escala reduzida horizontalmente para zero e aumentada horizontalmente a partir de zero instância. Os procedimentos usam comandos com a AWS CLI.

**Antes de começar**

Para que seu endpoint possa ter a escala reduzida horizontalmente para zero ou aumentada horizontalmente a partir de zero instância, ele deve atender aos seguintes requisitos:
+ Estar em serviço.
+ Hospedar um ou mais componentes de inferência. Um endpoint pode ser escalado de e para zero instância somente se hospedar componentes de inferência.

  Para obter informações sobre como hospedar componentes de inferência em endpoints de SageMaker IA, consulte. [Implantar modelos para inferência em tempo real](realtime-endpoints-deploy-models.md)
+ Na configuração do endpoint, para o objeto `ManagedInstanceScaling` da variante de produção, você definiu o parâmetro `MinInstanceCount` como `0`.

  Para obter informações de referência sobre esse parâmetro, consulte [ProductionVariantManagedInstanceScaling](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantManagedInstanceScaling.html).

**Como habilitar um endpoint para que reduza a escala horizontalmente para zero instância (AWS CLI)**

Para cada componente de inferência que o endpoint hospeda, faça o seguinte:

1. Registre o componente de inferência como um destino escalável. Ao registrá-lo, defina a capacidade mínima como `0`, conforme mostrado no seguinte 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
   ```

   Neste exemplo, *inference-component-name* substitua pelo nome do seu componente de inferência. *n*Substitua pelo número máximo de cópias do componente de inferência a serem provisionadas ao escalar.

   Para obter mais informações sobre esse comando e cada um de seus parâmetros, consulte [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)na *Referência de AWS CLI Comandos*.

1. Aplique uma política de rastreamento de destino ao componente de inferência, conforme mostrado no seguinte 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
   ```

   Neste exemplo, *inference-component-name* substitua pelo nome do seu componente de inferência.

   No exemplo, o arquivo `config.json` contém uma configuração de política de rastreamento de destino, como a seguinte:

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

   Para ver mais exemplos de configuração de política de rastreamento, consulte [Definir uma política de escalabilidade](endpoint-auto-scaling-add-code-define.md).

   Para obter mais informações sobre esse comando e cada um de seus parâmetros, consulte [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)na *Referência de AWS CLI Comandos*.

**Como habilitar um endpoint para aumente a escala horizontalmente a partir de zero instância (AWS CLI)**

Para cada componente de inferência que o endpoint hospeda, faça o seguinte:

1. Aplique uma política de escalabilidade em etapas ao componente de inferência, conforme mostrado no seguinte 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
   ```

   Neste exemplo, *my-scaling-policy* substitua por um nome exclusivo para sua política. *inference-component-name*Substitua pelo nome do seu componente de inferência.

   No exemplo, o arquivo `config.json` contém uma configuração de política de escalabilidade em etapas, como a seguinte:

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

   Quando essa política de escalabilidade de etapas é acionada, a SageMaker IA provisiona as instâncias necessárias para dar suporte às cópias dos componentes de inferência.

   Depois de criar a política de escalabilidade em etapas, anote o nome do recurso da Amazon (ARN). Você precisará do ARN para o CloudWatch alarme na próxima etapa.

   Para ter mais informações sobre políticas de escalabilidade em etapas, consulte [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) no *Guia do usuário do Application Auto Scaling*.

1. Crie um CloudWatch alarme e atribua a ele a política de escalonamento de etapas, conforme mostrado no exemplo a seguir:

   ```
   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
   ```

   Neste exemplo, *step-scaling-policy-arn* substitua pelo ARN da sua política de escalonamento de etapas. *ic-step-scaling-alarm*Substitua por um nome de sua escolha. *inference-component-name*Substitua pelo nome do seu componente de inferência. 

   Este exemplo define o `--metric-name` parâmetro como`NoCapacityInvocationFailures`. SageMaker A IA emite essa métrica quando um endpoint recebe uma solicitação de inferência, mas o endpoint não tem instâncias ativas para atender à solicitação. Quando esse evento ocorre, o alarme inicia a política de escalabilidade em etapas na etapa anterior.

   Para obter mais informações sobre esse comando e cada um de seus parâmetros, consulte [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)na *Referência de AWS CLI Comandos*.

# Testes de carga da configuração de ajuste de escala automático
<a name="endpoint-scaling-loadtest"></a>

Execute testes de carga para escolher uma configuração de ajuste de escala que funcione da maneira desejada.

As seguintes diretrizes para testes de carga presumem que você está utilizando uma política de ajuste de escala automática que utiliza a métrica de destino predefinida `SageMakerVariantInvocationsPerInstance`:

**Topics**
+ [Determinar as características de desempenho](#endpoint-scaling-loadtest-variant)
+ [Calcular a carga do destino](#endpoint-scaling-loadtest-calc)

## Determinar as características de desempenho
<a name="endpoint-scaling-loadtest-variant"></a>

Execute testes de carga para encontrar o pico `InvocationsPerInstance` com o qual a variante de produção do modelo pode lidar, bem como a latência das solicitações à medida que a simultaneidade aumenta.

Esse valor depende do tipo de instância escolhido, das cargas úteis que os clientes do modelo normalmente enviam, e do desempenho de qualquer dependência externa que o modelo tem.

**Para encontrar o pico requests-per-second (RPS), a variante de produção do seu modelo pode lidar com a latência das solicitações**

1. Configure um endpoint com o modelo usando uma única instância. Para obter informações sobre como configurar um endpoint, consulte [Implante o modelo nos serviços de hospedagem de SageMaker IA](ex1-model-deployment.md#ex1-deploy-model).

1. Use uma ferramenta de teste de carregamento para gerar um número crescente de solicitações paralelas e monitorar o RPS e a latência do modelo no resultado gerado pela ferramenta. 
**nota**  
Você também pode monitorar requests-per-minute em vez do RPS. Nesse caso, na equação, não multiplique por 60 para calcular o `SageMakerVariantInvocationsPerInstance` mostrado abaixo.

   Quando a latência do modelo aumenta ou a proporção de transações bem-sucedidas diminui, trata-se do pico RPS que o modelo pode processar.

## Calcular a carga do destino
<a name="endpoint-scaling-loadtest-calc"></a>

Depois de encontrar as características de desempenho da variante, você pode determinar o RPS máximo a ser enviado para uma instância. O limite usado para a escalabilidade deve ser menor que esse valor máximo. Use a seguinte equação em combinação com os testes de carga para determinar o valor correto da métrica de destino `SageMakerVariantInvocationsPerInstance` na configuração de ajuste de escala automático:

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

Onde `MAX_RPS` é o RPS máximo determinado anteriormente, e `SAFETY_FACTOR` é o fator de segurança escolhido para evitar que seus clientes excedam esse RPS máximo. Multiplique por 60 para converter de RPS em para corresponder invocations-per-minute à CloudWatch métrica por minuto que a SageMaker IA usa para implementar o escalonamento automático (você não precisa fazer isso se mediu requests-per-minute em vez de). requests-per-second

**nota**  
SageMaker A IA recomenda que você comece o teste com 0,5. `SAFETY_FACTOR` Teste a sua configuração de ajuste de escala para verificar se ela funciona com o seu modelo da maneira esperada, no aumento e na diminuição do tráfego de clientes no seu endpoint.

# Use CloudFormation para criar uma política de escalabilidade
<a name="endpoint-scaling-cloudformation"></a>

O exemplo a seguir mostra como configurar um ajuste de escala automático do modelo em um endpoint usando o 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 obter mais informações, consulte [Criar recursos do Application Auto Scaling com AWS CloudFormation](https://docs.aws.amazon.com/autoscaling/application/userguide/creating-resources-with-cloudformation.html) no *Guia do usuário do Application Auto Scaling*.

# Atualizar endpoints que usam o ajuste de escala automático
<a name="endpoint-scaling-update"></a>

Quando você atualiza um endpoint, o Application Auto Scaling verifica se algum dos modelos nesse endpoint são destinos do ajuste de escala automático. Se a atualização alterar o tipo de instância de qualquer modelo que esteja submetido ao ajuste de escala automático, o procedimento falhará. 

No Console de gerenciamento da AWS, você vê um aviso de que deve cancelar o registro do modelo do escalonamento automático antes de poder atualizá-lo. Se você estiver tentando atualizar o endpoint chamando a API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html), a chamada falhará. Antes de atualizar o endpoint, exclua todas as políticas de escalabilidade configuradas para ele e cancele o registro da variante como um destino escalável chamando a ação da API Application Auto Scaling [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html). Depois de atualizar o endpoint, você pode registrar a variante atualizada como um destino escalável e anexar uma política de ajuste de escala.

Há uma exceção. Se você alterar o modelo de uma variante configurada para escalonamento automático, o Amazon SageMaker AI Auto Scaling permitirá a atualização. Isso porque a alteração do modelo normalmente não afeta o desempenho a ponto de alterar o comportamento de ajuste de escala. Se você atualizar um modelo de uma variante configurada para o ajuste de escala automático, a alteração do modelo não poderá afetar significativamente o desempenho e o comportamento do ajuste de escala.

Ao atualizar os endpoints de SageMaker IA que têm o escalonamento automático aplicado, conclua as seguintes etapas:

**Como atualizar um endpoint que possui o ajuste de escala automático aplicado**

1. Cancele o registro do endpoint como um alvo escalável ligando para. [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)

1. Devido ao ajuste de escala automático ser bloqueado durante a operação de atualização em andamento (ou caso você tenha desativado o ajuste de escala automático na etapa anterior), convém tomar a precaução adicional de aumentar o número de instâncias de seu endpoint durante a atualização. Para fazer isso, atualize as contagens de instâncias para as variantes de produção hospedadas no endpoint, chamando [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html).

1. Chame [ DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) repetidamente até que o valor no campo `EndpointStatus` da resposta seja `InService`.

1. Chame [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) para obter os valores da configuração do endpoint atual.

1. Crie uma configuração de endpoint chamando [ CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html). Para as variantes de produção nas quais você deseja manter a contagem ou peso de instâncias existentes, use o mesmo nome de variante da resposta da chamada para [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) na etapa anterior. Para todos os outros valores, use os valores que você obteve como resposta ao chamar [ DescribeEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html) na etapa anterior.

1. Atualize o endpoint chamando [ UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html). Especifique a configuração do endpoint criado na etapa anterior no campo `EndpointConfig`. Se você quiser reter as propriedades da variante, como contagem de instâncias ou peso, defina o valor do parâmetro `RetainAllVariantProperties` como `True`. Isso especifica que as variantes de produção com o mesmo nome serão atualizadas com a `DesiredInstanceCount` mais recente da resposta da chamada para `DescribeEndpoint`, independentemente dos valores do campo `InitialInstanceCount` no novo `EndpointConfig`.

1. (Opcional) Reative o escalonamento automático ligando para e. [RegisterScalableTarget[PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html)

**nota**  
As etapas 1 e 7 são necessárias somente se você estiver atualizando um endpoint com as seguintes alterações:  
Alteração do tipo de instância de uma variante de produção da qual foi configurado o ajuste de escala automático
Remoção de uma variante de produção que tem o ajuste de escala automático configurado.

# Excluir endpoints configurados para o ajuste de escala automático
<a name="endpoint-delete-with-scaling"></a>

Quando você excluir um endpoint, o Application Auto Scaling verificará se algum dos modelos desse endpoint são destinos do ajuste de escala automático. Se algum for e você tiver permissão para cancelar o registro do modelo, o Application Auto Scaling fará o cancelamento e esses modelos deixarão de ser destinos escaláveis, sem que você seja notificado. Se você usa uma política de permissão personalizada que não fornece permissão para a [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html)ação, você deve solicitar acesso a essa ação antes de excluir o endpoint.

**nota**  
Como um usuário do IAM, talvez você não tenha permissão suficiente para excluir um endpoint se outro usuário tiver configurado o ajuste de escala automático de uma variante nesse endpoint.