

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Ridimensionamento di un cluster SageMaker HyperPod
<a name="smcluster-scale-down"></a>

Puoi ridurre il numero di istanze in esecuzione sul tuo SageMaker HyperPod cluster Amazon. Potresti voler ridurre verticalmente un cluster per vari motivi, ad esempio per limitare l’utilizzo delle risorse o ottimizzare i costi.

La pagina seguente descrive i due approcci principali per la riduzione verticale:
+ **Riduzione verticale a livello di gruppo di istanze:** questo approccio utilizza l’API `UpdateCluster`, che consente di:
  + Ridurre verticalmente il numero di istanze per gruppi di istanze specifici in modo indipendente. SageMaker L'intelligenza artificiale gestisce la terminazione dei nodi in modo da raggiungere i nuovi conteggi di istanze target che hai impostato per ciascun gruppo. Per informazioni, consulta [Riduzione verticale di un gruppo di istanze](#smcluster-scale-down-updatecluster).
  + Elimina completamente i gruppi di istanze dal cluster. Per informazioni, consulta [Eliminazione di gruppi di istanze](#smcluster-remove-instancegroup).
+ **Riduzione verticale a livello di istanza:** questo approccio utilizza l’API `BatchDeleteClusterNodes`, che consente di specificare i singoli nodi da terminare. Per informazioni, consulta [Riduzione verticale a livello di istanza](#smcluster-scale-down-batchdelete).

**Nota**  
Quando si esegue la riduzione verticale a livello di istanza con `BatchDeleteCusterNodes`, puoi terminare solo un massimo di 99 istanze alla volta. `UpdateCluster` supporta la terminazione di qualsiasi numero di istanze.

## Considerazioni importanti
<a name="smcluster-scale-down-considerations"></a>
+ Quando si riduce verticalmente un cluster, è necessario assicurarsi che le risorse rimanenti siano sufficienti per gestire il carico di lavoro e che qualsiasi operazione necessaria di migrazione o ribilanciamento dei dati sia gestita correttamente per evitare interruzioni. 
+ Assicurati di eseguire il backup dei dati su Amazon S3 o su un file system FSx for Lustre prima di richiamare l'API su un gruppo di nodi di lavoro. Questo aiuta a prevenire qualsiasi potenziale perdita di dati dal volume root dell’istanza. Per ulteriori informazioni sui backup, consulta [Utilizza lo script di backup fornito da SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).
+ Per richiamare questa API su un cluster esistente, devi prima applicare una patch al cluster eseguendo l'API. [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html) Per ulteriori informazioni sull’applicazione delle patch in un cluster, consulta [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
+ La misurazione/fatturazione per le istanze on demand verrà interrotta automaticamente dopo la riduzione verticale. Per interrompere la misurazione delle istanze riservate ridotte, contatta il team del tuo AWS account per ricevere assistenza.
+ Puoi utilizzare la capacità rilasciata dalle istanze riservate ridimensionate per scalare un altro cluster. SageMaker HyperPod 

## Riduzione verticale a livello di gruppo di istanze
<a name="smcluster-scale-down-or-delete"></a>

L'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operazione consente di apportare modifiche alla configurazione del SageMaker HyperPod cluster, ad esempio ridurre il numero di istanze di un gruppo di istanze o rimuovere interi gruppi di istanze. Questa opzione può essere utile per adattare le risorse allocate al cluster in base alle variazioni del carico di lavoro, ottimizzare i costi o modificare il tipo di istanza di un gruppo di istanze.

### Riduzione verticale di un gruppo di istanze
<a name="smcluster-scale-down-updatecluster"></a>

Utilizza questo approccio quando hai un gruppo di istanze inattivo, che può quindi essere ridotto verticalmente in modo sicuro terminando una qualsiasi delle sue istanze. Quando invii una `UpdateCluster` richiesta di ridimensionamento, sceglie HyperPod casualmente le istanze da terminare e le ridimensiona fino al numero di nodi specificato per il gruppo di istanze.

**Comportamento di ridimensionamento con gruppi di istanze flessibili**  
Ad esempio, i gruppi che utilizzano più tipi di istanze, HyperPod terminano per primi i tipi di istanze `InstanceRequirements` con la priorità più bassa durante il ridimensionamento. La priorità è determinata dall'ordine dei tipi di istanza nell'`InstanceTypes`elenco, dove il primo tipo ha la priorità più alta. Ciò protegge le istanze con priorità più elevata, che in genere offrono prestazioni più elevate, durante le operazioni di ridimensionamento.

**Nota**  
Quando riduci verticalmente a 0 il numero di istanze in un gruppo di istanze, tutte le istanze all’interno del gruppo verranno terminate. Tuttavia, il gruppo di istanze stesso continuerà a esistere come parte del cluster. SageMaker HyperPod Puoi aumentare di nuovo verticalmente il gruppo di istanze in un secondo momento, utilizzando la stessa configurazione del gruppo di istanze.   
In alternativa, puoi scegliere di rimuovere un gruppo di istanze in modo permanente. Per ulteriori informazioni, consulta [Eliminazione di gruppi di istanze](#smcluster-remove-instancegroup).

**Per ridurre verticalmente con `UpdateCluster`**

1. Segui la procedura descritta in [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md). Quando raggiungi il passaggio **1.d** in cui specifichi il **InstanceCount**campo, inserisci un numero inferiore al numero corrente di istanze per ridimensionare il cluster.

1. Esegui il AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per inviare la richiesta.

Di seguito è riportato un esempio di un oggetto JSON `UpdateCluster`: Supponiamo che il gruppo di istanze abbia attualmente due istanze in esecuzione. Se imposti il **InstanceCount**campo su 1, come mostrato nell'esempio, seleziona HyperPod casualmente una delle istanze e la termina.

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

### Eliminazione di gruppi di istanze
<a name="smcluster-remove-instancegroup"></a>

È possibile utilizzare l'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operazione per rimuovere interi gruppi di istanze dal SageMaker HyperPod cluster quando non sono più necessari. Questa operazione va oltre la semplice riduzione verticale, poiché consente di eliminare completamente gruppi di istanze specifici dalla configurazione del cluster. 

**Nota**  
Quando rimuovi un gruppo di istanze:  
Tutte le istanze all’interno del gruppo di destinazione vengono terminate.
L’intera configurazione del gruppo viene eliminata dal cluster.
Tutti i carichi di lavoro in esecuzione sul gruppo di istanze vengono arrestati.

**Per eliminare gruppi di istanze con `UpdateCluster`**

1. Quando segui la procedura descritta in [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md):

   1. Imposta il parametro `InstanceGroupsToDelete` facoltativo nel JSON `UpdateCluster` e passa l’elenco separato da virgole dei nomi dei gruppi di istanze da eliminare.

   1.  Quando indichi l’elenco `InstanceGroups`, assicurati che le specifiche dei gruppi di istanze che stai rimuovendo non siano più elencate in `InstanceGroups`.

1. Esegui il AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per inviare la richiesta.

**Importante**  
Il SageMaker HyperPod cluster deve sempre mantenere almeno un gruppo di istanze.
Assicurati che venga eseguito il backup di tutti i dati critici prima della rimozione.
Il processo di rimozione non può essere annullato.

Di seguito è riportato un esempio di un oggetto JSON `UpdateCluster`: Consideriamo il caso di un cluster con tre gruppi di istanze: *training*, *prototype-training* e *inference-serving*. Vuoi eliminare il gruppo *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"}}
}
```

## Riduzione verticale a livello di istanza
<a name="smcluster-scale-down-batchdelete"></a>

L'`BatchDeleteClusterNodes`operazione consente di ridimensionare un SageMaker HyperPod cluster specificando i singoli nodi che si desidera terminare. `BatchDeleteClusterNodes`fornisce un controllo più granulare per la rimozione mirata dei nodi e l'ottimizzazione del cluster. Ad esempio, è possibile utilizzare `BatchDeleteClusterNodes` per eliminare nodi mirati per la manutenzione, gli aggiornamenti in sequenza o il ribilanciamento geografico delle risorse.

**Richiesta e risposta API**

Quando invii una `BatchDeleteClusterNodes` richiesta, SageMaker HyperPod elimina i nodi in base alla loro istanza. IDs L'API accetta una richiesta con il nome del cluster e un elenco di nodi IDs da eliminare. 

La risposta include due sezioni: 
+  `Failed`: un elenco di errori di tipo `[ BatchDeleteClusterNodesError ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodesError.html)`, uno per ogni ID di istanza.
+  `Successful`: L'elenco delle istanze è IDs stato terminato con successo. 

**Convalida e gestione degli errori**

L’API esegue varie convalide, ad esempio:
+ Verifica del formato dell’ID del nodo (prefisso `i-` e struttura dell’ID dell’istanza Amazon EC2). 
+ Verifica della lunghezza dell'elenco dei nodi, con un limite di 99 o meno nodi IDs in una singola `BatchDeleteClusterNodes` richiesta.
+ Garantire che sia presente un SageMaker HyperPod cluster valido con il nome del cluster di input e che non siano in corso operazioni a livello di cluster (aggiornamento, aggiornamento del sistema, applicazione di patch o eliminazione).
+ Gestione dei casi in cui le istanze non vengono trovate, hanno uno stato non valido o sono in uso.

**Codici di risposta API**
+  L’API restituisce un codice di stato `200` per le richieste riuscite (ad esempio, la convalida di tutti i nodi di input è riuscita) o parzialmente riuscite (ad esempio, la convalida di alcuni nodi di input non è riuscita). 
+  Se tutte queste convalide non riescono (ad esempio, la convalida di tutti i nodi di input non riesce), l’API restituirà una risposta Richiesta non valida `400` con i messaggi e i codici di errore appropriati. 

**Esempio**

Di seguito è riportato un esempio di **riduzione verticale di un cluster a livello di istanza** con la AWS CLI:

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