

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

# Reduzindo a escala de um cluster SageMaker HyperPod
<a name="smcluster-scale-down"></a>

Você pode reduzir o número de instâncias em execução no seu SageMaker HyperPod cluster da Amazon. Talvez você queira reduzir a escala verticalmente de um cluster por vários motivos, como redução da utilização de recursos ou otimização de custos.

A seguinte página descreve duas abordagens principais para reduzir a escala verticalmente:
+ **Reduzir a escala verticalmente em nível de grupo de instâncias:** essa abordagem usa a API `UpdateCluster`, com a qual você pode:
  + Reduzir a escala verticalmente da contagem de instâncias para grupos de instâncias específicos de forma independente. SageMaker A IA lida com o encerramento dos nós de uma forma que atinge as novas contagens de instâncias de destino que você definiu para cada grupo. Consulte [Reduzir a escala verticalmente de um grupo de instâncias](#smcluster-scale-down-updatecluster).
  + Excluir completamente os grupos de instâncias do cluster. Consulte [Excluir grupos de instâncias](#smcluster-remove-instancegroup).
+ **Reduzir a escala verticalmente em nível de instância:** essa abordagem usa a API `BatchDeleteClusterNodes`, com a qual você pode especificar os nós individuais que deseja encerrar. Consulte [Reduzir a escala verticalmente em nível de instância](#smcluster-scale-down-batchdelete).

**nota**  
Ao reduzir a escala verticalmente em nível de instância com `BatchDeleteCusterNodes`, você só pode encerrar no máximo 99 instâncias por vez. `UpdateCluster` permite o encerramento de qualquer número de instâncias.

## Considerações importantes
<a name="smcluster-scale-down-considerations"></a>
+ Ao reduzir a escala verticalmente de um cluster, você deve garantir que os recursos restantes sejam suficientes para lidar com sua workload e que qualquer migração ou rebalanceamento de dados necessário seja tratado adequadamente para evitar interrupções. 
+ Certifique-se de fazer backup de seus dados no Amazon S3 ou em um FSx sistema de arquivos do Lustre antes de invocar a API em um grupo de nós de trabalho. Isso pode ajudar a evitar qualquer possível perda de dados do volume raiz da instância. Para ter mais informações sobre backup, consulte [Use o script de backup fornecido pelo SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).
+ Para invocar essa API em um cluster existente, primeiro você deve corrigir o cluster executando a [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API. Para ter mais informações sobre a correção de um cluster, consulte [Atualizar o software da SageMaker HyperPod plataforma de um cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
+ A medição e o faturamento de instâncias sob demanda serão interrompidos automaticamente depois que você reduzir a escala verticalmente. Para interromper a medição de instâncias reservadas reduzidas, você deve entrar em contato com a equipe de sua AWS conta para obter suporte.
+ Você pode usar a capacidade liberada das instâncias reservadas reduzidas para escalar outro SageMaker HyperPod cluster.

## Reduzir a escala verticalmente em nível de grupo de instâncias
<a name="smcluster-scale-down-or-delete"></a>

A [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operação permite que você faça alterações na configuração do seu SageMaker HyperPod cluster, como reduzir o número de instâncias de um grupo de instâncias ou remover grupos de instâncias inteiros. Isso pode ser útil quando você deseja ajustar os recursos alocados ao cluster com base em alterações em sua workload, otimizar custos ou alterar o tipo de instância de um grupo de instâncias.

### Reduzir a escala verticalmente de um grupo de instâncias
<a name="smcluster-scale-down-updatecluster"></a>

Use essa abordagem quando você tiver um grupo de instâncias ocioso e for seguro encerrar qualquer uma das instâncias para reduzir a escala verticalmente. Quando você envia uma `UpdateCluster` solicitação para reduzir a escala, escolhe HyperPod aleatoriamente as instâncias para encerramento e reduz a escala até o número especificado de nós para o grupo de instâncias.

**Comportamento de redução com grupos de instâncias flexíveis**  
Para grupos de instâncias que usam `InstanceRequirements` com vários tipos de instância, HyperPod encerra primeiro os tipos de instância de menor prioridade durante a redução. A prioridade é determinada pela ordem dos tipos de instância na `InstanceTypes` lista, onde o primeiro tipo tem a prioridade mais alta. Isso protege instâncias de maior prioridade, que normalmente têm maior desempenho, durante operações de redução de escala.

**nota**  
Quando você reduzir a escala verticalmente do número de instâncias em um grupo de instâncias para 0, todas as instâncias desse grupo serão encerradas. No entanto, o grupo de instâncias em si ainda existirá como parte do SageMaker HyperPod cluster. Você pode aumentar novamente a escala vertical do grupo de instâncias em um momento posterior usando a mesma configuração do grupo de instâncias.   
Ou você pode optar por remover um grupo de instâncias permanentemente. Para obter mais informações, consulte [Excluir grupos de instâncias](#smcluster-remove-instancegroup).

**Como reduzir a escala verticalmente com `UpdateCluster`**

1. Siga as etapas descritas em [Atualizando a configuração do SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md). Ao chegar à etapa **1.d**, na qual você especifica o **InstanceCount**campo, insira um número menor que o número atual de instâncias para reduzir o cluster.

1. Execute o AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para enviar sua solicitação.

Veja a seguir um exemplo de um objeto JSON `UpdateCluster`. Considere o caso em que seu grupo de instâncias tem duas instâncias em execução no momento. Se você definir o **InstanceCount**campo como 1, conforme mostrado no exemplo, selecionará HyperPod aleatoriamente uma das instâncias e a encerrará.

```
{
  "ClusterName": {{"name-of-cluster-to-update"}},
  "InstanceGroups": [
    {
      "InstanceGroupName": {{"training-instances"}},
      "InstanceType": {{"instance-type"}},
      "InstanceCount": {{1}},
      "LifeCycleConfig": {
        "SourceS3Uri": {{"s3://amzn-s3-demo-bucket/training-script.py"}},
        "OnCreate": {{"s3://amzn-s3-demo-bucket/setup-script.sh"}}
      },
      "ExecutionRole": {{"arn:aws:iam::123456789012:role/SageMakerRole"}},
      "ThreadsPerCore": {{number-of-threads}},
      "OnStartDeepHealthChecks": [
        "InstanceStress",
        "InstanceConnectivity"
      ]
    }
  ],
  "NodeRecovery": {{"Automatic"}}
}
```

### Excluir grupos de instâncias
<a name="smcluster-remove-instancegroup"></a>

Você pode usar a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operação para remover grupos de instâncias inteiros do seu SageMaker HyperPod cluster quando eles não forem mais necessários. Isso vai além da simples redução da escala vertical, permitindo que você elimine completamente grupos de instâncias específicos da configuração do cluster. 

**nota**  
Ao remover um grupo de instâncias:  
Todas as instâncias do grupo em questão são encerradas.
Toda a configuração do grupo é excluída do cluster.
Todas as workloads em execução nesse grupo de instâncias são interrompidas.

**Como excluir grupos de instâncias com `UpdateCluster`**

1. Ao seguir as etapas descritas abaixo em [Atualizando a configuração do SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md):

   1. Defina o parâmetro opcional `InstanceGroupsToDelete` em seu `UpdateCluster` JSON e transfira a lista separada por vírgula dos nomes dos grupos de instâncias que você deseja excluir.

   1.  Ao especificar a lista `InstanceGroups`, verifique se as especificações dos grupos de instâncias que você está removendo não estão mais listadas na lista `InstanceGroups`.

1. Execute o AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para enviar sua solicitação.

**Importante**  
Seu SageMaker HyperPod cluster deve sempre manter pelo menos um grupo de instâncias.
Garanta que todos os dados essenciais sejam copiados antes da remoção.
O processo de remoção não pode ser desfeito.

Veja a seguir um exemplo de um objeto JSON `UpdateCluster`. Considere o caso em que um cluster tem três grupos de instâncias no momento, um grupo *training*, um *prototype-training* e um *inference-serving*. Você deseja excluir o grupo *prototype-training*.

```
{
  "ClusterName": {{"name-of-cluster-to-update"}},
  "InstanceGroups": [
    {
      "InstanceGroupName": {{"training"}},
      "InstanceType": {{"instance-type"}},
      "InstanceCount": {{}},
      "LifeCycleConfig": {
        "SourceS3Uri": {{"s3://amzn-s3-demo-bucket/training-script.py"}},
        "OnCreate": {{"s3://amzn-s3-demo-bucket/setup-script.sh"}}
      },
      "ExecutionRole": {{"arn:aws:iam::123456789012:role/SageMakerRole"}},
      "ThreadsPerCore": {{number-of-threads}},
      "OnStartDeepHealthChecks": [
        "InstanceStress",
        "InstanceConnectivity"
      ]
    },
    {
      "InstanceGroupName": {{"inference-serving"}},
      "InstanceType": {{"instance-type"}},
      "InstanceCount": {{2}},
      [...]
    },
  ],
  "InstanceGroupsToDelete": [ {{"prototype-training"}} ],
  "NodeRecovery": {{"Automatic"}}
}
```

## Reduzir a escala verticalmente em nível de instância
<a name="smcluster-scale-down-batchdelete"></a>

A `BatchDeleteClusterNodes` operação permite reduzir um SageMaker HyperPod cluster especificando os nós individuais que você deseja encerrar. `BatchDeleteClusterNodes`fornece um controle mais granular para remoção direcionada de nós e otimização de clusters. Por exemplo, você pode usar `BatchDeleteClusterNodes` para excluir nós específicos em caso de manutenção, atualizações contínuas ou rebalanceamento geográfico de recursos.

**Solicitação e reposta da API**

Quando você envia uma `BatchDeleteClusterNodes` solicitação, SageMaker HyperPod exclui os nós de acordo com sua instância IDs. A API aceita uma solicitação com o nome do cluster e uma lista de nós IDs a serem excluídos. 

A resposta inclui duas seções: 
+  `Failed`: uma lista de erros do tipo `[ BatchDeleteClusterNodesError ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodesError.html)` (um por ID de instância).
+  `Successful`: a lista de instâncias IDs foi encerrada com sucesso. 

**Validação e tratamento de erros**

A API executa várias validações, como:
+ Verificação do formato de ID do nó (o prefixo `i-` e a estrutura de ID de instância do Amazon EC2). 
+ Verificando o tamanho da lista de nós, com um limite de 99 ou menos nós IDs em uma única `BatchDeleteClusterNodes` solicitação.
+ Garantir que um SageMaker HyperPod cluster válido com o nome do cluster de entrada esteja presente e que nenhuma operação em nível de cluster (atualização, atualização do sistema, correção ou exclusão) esteja em andamento.
+ Tratamento de casos em que instâncias não são encontradas, têm status inválido ou estão em uso.

**Códigos de resposta da API**
+  A API exibe um código de status `200` para solicitações bem-sucedidas (p. ex., todos os nós de entrada tiveram êxito na validação) ou parcialmente bem-sucedidas (p. ex., alguns nós de entrada não passam na validação). 
+  Se todas essas validações falharem (p. ex., todos os nós de entrada não passarem na validação), a API exibirá uma resposta `400` de solicitação inválida com as mensagens de erro e os códigos de erro apropriados. 

**Exemplo**

Veja abaixo um exemplo de como **reduzir a escala verticalmente de um cluster em nível da instância** usando a AWS CLI:

```
aws sagemaker batch-delete-cluster-nodes --cluster-name {{"cluster-name"}} --node-ids {{'["i-111112222233333", "i-111112222233333"]'}}
```