

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

# Gestione dei cluster SageMaker HyperPod EKS utilizzando il AWS CLI
<a name="sagemaker-hyperpod-eks-operate-cli-command"></a>

I seguenti argomenti forniscono indicazioni sulla scrittura di file di richiesta SageMaker HyperPod API in formato JSON e sulla loro esecuzione utilizzando i comandi. AWS CLI 

**Topics**
+ [Creazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md)
+ [Recupero dei dettagli del cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md)
+ [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md)
+ [Aggiornamento del software della SageMaker HyperPod piattaforma](sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software.md)
+ [Accesso ai SageMaker HyperPod nodi del cluster](sagemaker-hyperpod-eks-operate-access-through-terminal.md)
+ [Ridimensionamento di un cluster SageMaker HyperPod](smcluster-scale-down.md)
+ [Eliminazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-delete-cluster.md)

# Creazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-create-cluster"></a>

Scopri come creare SageMaker HyperPod cluster orchestrati da Amazon EKS utilizzando. AWS CLI

1. Prima di creare un cluster: SageMaker HyperPod 

   1. Assicurati di disporre di un cluster Amazon EKS funzionante. Per istruzioni dettagliate su come configurare un cluster Amazon EKS, consulta [Create an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) in *Amazon EKS User Guide*.

   1. Installa il grafico Helm come indicato in [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Se crei un [ SageMaker HyperPod cluster Amazon Nova](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp-cluster.html), avrai bisogno di un grafico Helm separato.

1. Prepara uno script di configurazione del ciclo di vita e caricalo in un bucket Amazon S3, ad esempio `s3://amzn-s3-demo-bucket/Lifecycle-scripts/base-config/`.

   Per iniziare rapidamente, scarica lo script di esempio [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh)dal GitHub repository AWS Home Distributed Training e caricalo nel bucket S3. Puoi anche includere istruzioni di configurazione aggiuntive, una serie di script di configurazione o comandi da eseguire durante la fase di provisioning del HyperPod cluster.
**Importante**  
Se crei un [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) collegando solo la [https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html) gestita, il tuo cluster ha accesso ai bucket Amazon S3 con il prefisso `sagemaker-` specifico.

   Se crei un gruppo di istanze limitato, non devi scaricare ed eseguire lo script del ciclo di vita. Devi eseguire `install_rig_dependencies.sh`, invece. 

   I prerequisiti per eseguire lo script `install_rig_dependencies.sh` includono:
   + AWS Node (CNI) e CoredNS devono essere entrambi abilitati. Si tratta di componenti aggiuntivi EKS standard che non sono gestiti dall' SageMaker HyperPod Helm standard, ma possono essere facilmente abilitati nella console EKS alla voce Componenti aggiuntivi.
   +  Il grafico SageMaker HyperPod Helm standard deve essere installato prima di eseguire questo script.

   Lo script `install_rig_dependencies.sh` esegue queste operazioni. 
   + `aws-node` (CNI): nuovo DaemonSet `rig-aws-node` creato; applicate patch al `aws-node` esistente per evitare nodi RIG.
   + `coredns`: Convertito in Daemonset per supportare l'uso di Multi-Rig e RIGs prevenire il sovraccarico.
   + training-operators: aggiornato con le tolleranze di taint dei worker RIG e con nodeAffinity che favorisce le istanze non RIG.
   + Elastic Fabric Adapter (EFA): aggiornato per tollerare il taint dei worker RIG e utilizzare immagini dei container corrette per ogni Regione.

1. Prepara un file di richiesta [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API in formato JSON. Per `ExecutionRole`, fornisci l’ARN del ruolo IAM che hai creato con la policy gestita `AmazonSageMakerClusterInstanceRolePolicy` nella sezione [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).
**Nota**  
Assicurati che il SageMaker HyperPod cluster sia distribuito all'interno dello stesso Virtual Private Cloud (VPC) del cluster Amazon EKS. Le sottoreti e i gruppi di sicurezza specificati nella configurazione del SageMaker HyperPod cluster devono consentire la connettività di rete e la comunicazione con l'endpoint del server API del cluster Amazon EKS.

   ```
   // create_cluster.json
   {
       "ClusterName": "string",
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
               "OnCreate": "on_create.sh"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "RestrictedInstanceGroups": [ 
         { 
            "EnvironmentConfig": { 
               "FSxLustreConfig": { 
                  "PerUnitStorageThroughput": number,
                  "SizeInGiB": number
               }
            },
            "ExecutionRole": "string",
            "InstanceCount": number,
            "InstanceGroupName": "string",
            "InstanceStorageConfigs": [ 
               { ... }
            ],
            "InstanceType": "string",
            "OnStartDeepHealthChecks": [ "string" ],
            "OverrideVpcConfig": { 
               "SecurityGroupIds": [ "string" ],
               "Subnets": [ "string" ]
            },
            "ScheduledUpdateConfig": { 
               "DeploymentConfig": { 
                  "AutoRollbackConfiguration": [ 
                     { 
                        "AlarmName": "string"
                     }
                  ],
                  "RollingUpdatePolicy": { 
                     "MaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     },
                     "RollbackMaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     }
                  },
                  "WaitIntervalInSeconds": number
               },
               "ScheduleExpression": "string"
            },
            "ThreadsPerCore": number,
            "TrainingPlanArn": "string"
         }
      ],
       "VpcConfig": {
           "SecurityGroupIds": ["string"],
           "Subnets": ["string"]
       },
       "Tags": [{
           "Key": "string",
           "Value": "string"
       }],
       "Orchestrator": {
           "Eks": {
               "ClusterArn": "string",
               "KubernetesConfig": {
                   "Labels": {
                       "nvidia.com/mig.config": "all-3g.40gb"
                   }
               }
           }
       },
       "NodeRecovery": "Automatic"
   }
   ```

   Tieni presente quanto segue durante la configurazione per creare un nuovo SageMaker HyperPod cluster associato a un cluster EKS.
   + Puoi configurare fino a 20 gruppi di istanze nel parametro `InstanceGroups`.
   + Per `Orchestator.Eks.ClusterArn`, specifica l’ARN del cluster EKS da utilizzare come orchestratore.
   + Per `OnStartDeepHealthChecks`, aggiungi `InstanceStress` e `InstanceConnectivity` per abilitare [Controlli dell’integrità approfonditi](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).
   + Per`NodeRecovery`, specificare di `Automatic` abilitare il ripristino automatico dei nodi. SageMaker HyperPod sostituisce o riavvia le istanze (nodi) quando l'agente di monitoraggio dello stato rileva problemi.
   + Per il `Tags` parametro, è possibile aggiungere tag personalizzati per la gestione del SageMaker HyperPod cluster come risorsa. AWS Puoi aggiungere tag al cluster con la stessa procedura utilizzata per altri servizi AWS che supportano il tagging. Per ulteriori informazioni generali sul tagging delle risorse AWS , consulta [Tagging AWS Resources User Guide](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).
   + Per il parametro `VpcConfig`, specifica le informazioni del VPC utilizzato nel cluster EKS. Le sottoreti devono essere private.
   + In alternativa`Orchestrator.Eks.KubernetesConfig.Labels`, puoi specificare le etichette Kubernetes da applicare ai nodi. Per abilitare il partizionamento della GPU con Multi-Instance GPU (MIG), aggiungi l'etichetta con il profilo MIG desiderato. `nvidia.com/mig.config` Ad esempio, `"nvidia.com/mig.config": "all-3g.40gb"` configura tutto con il profilo di partizione 3g.40gb. GPUs Per ulteriori informazioni sul partizionamento della GPU e sui profili disponibili, vedere. [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

1. Utilizza il comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) come segue.
**Importante**  
Quando esegui il comando `create-cluster` con il parametro `--cli-input-json`, devi includere il prefisso `file://` prima del percorso completo del file JSON. Questo prefisso è necessario per garantire che AWS CLI riconosca l'input come percorso di file. L’omissione del prefisso `file://` genera un errore di analisi del parametro.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Questo dovrebbe restituire l’ARN del nuovo cluster.
**Importante**  
Per rimuovere un gruppo di istanze limitato (RIG), puoi utilizzare l’operazione [update-cluster](https://docs.aws.amazon.com//cli/latest/reference/ecs/update-cluster.html). Quando un RIG viene ridimensionato a 0, il file system FSx for Lustre non verrà eliminato. Per rimuovere completamente il file system FSx for Lustre, è necessario rimuovere completamente il RIG.   
La rimozione di un RIG non eliminerà gli artefatti archiviati nel bucket Amazon S3 gestito dal servizio. Tuttavia, è necessario assicurarsi che tutti gli artefatti nel file system FSx for Lustre siano completamente sincronizzati con Amazon S3 prima della rimozione. Ti consigliamo di attendere almeno 30 minuti dopo il completamento del processo per garantire la sincronizzazione completa di tutti gli artefatti dal file system FSx for Lustre al bucket Amazon S3 gestito dal servizio.
**Importante**  
Quando si utilizza una On-Demand Capacity Reservation (ODCR) onboarding, è necessario mappare il gruppo di istanze allo stesso ID della zona di disponibilità (ID AZ) dell'ODCR impostando una sottorete nell'ID AZ corrispondente. `OverrideVpcConfig`  
CRITICO: verifica la `OverrideVpcConfig` configurazione prima dell'implementazione per evitare di incorrere in addebiti duplicati sia per ODCR che per On-Demand Capacity.

# Recupero dei dettagli del cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-cluster-details"></a>

Scopri come recuperare i dettagli SageMaker HyperPod del cluster utilizzando. AWS CLI

## Descrizione di un cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster"></a>

Esegui [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) per verificare lo stato del cluster. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Quando lo stato del cluster diventa **InService**, procedi con la fase successiva. Utilizzando questa API, puoi anche recuperare i messaggi di errore dall'esecuzione di altre operazioni HyperPod API.

## Elenco dei dettagli dei nodi del cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-cluster-nodes"></a>

Esegui [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)per controllare le informazioni chiave dei nodi del cluster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Questo restituisce una risposta e `InstanceId` è ciò che ti serve per l’accesso (con `aws ssm`).

## Descrizione dei dettagli di un nodo del cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster-node"></a>

Esegui [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)per recuperare i dettagli di un nodo del cluster. È possibile ottenere l'ID del nodo del cluster dall' list-cluster-nodesoutput. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Elenco dei cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-clusters"></a>

Esegui [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) per elencare tutti i cluster del tuo account.

```
aws sagemaker list-clusters
```

Puoi anche aggiungere ulteriori flag per filtrare l’elenco dei cluster. Per ulteriori informazioni su cosa viene eseguito questo comando a basso livello e sui flag aggiuntivi per il filtraggio, consulta il riferimento all'[ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

# Aggiornamento SageMaker HyperPod della configurazione del cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster"></a>

Esegui [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per aggiornare la configurazione di un cluster.

**Nota**  
Considerazioni importanti:  
Non è possibile modificare le informazioni sul cluster EKS a cui il HyperPod cluster è associato dopo la creazione del cluster. 
Se sul cluster sono in esecuzione controlli dell’integrità approfonditi, questa API non funzionerà come previsto. Potrebbe essere visualizzato un messaggio di errore che indica che sono in corso controlli dell’integrità approfonditi. Per aggiornare il cluster, è necessario attendere il completamento dei controlli dell’integrità approfonditi.

1. Crea un file di richiesta API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) in formato JSON. Assicurati di specificare correttamente il nome del cluster e il nome del gruppo di istanze da aggiornare. Per ogni gruppo di istanze, puoi modificare il tipo di istanza, il numero di istanze, lo script del punto di ingresso della configurazione del ciclo di vita e il percorso dello script.
**Nota**  
È possibile utilizzarle `UpdateCluster` per ridimensionare o rimuovere interi gruppi di istanze dal SageMaker HyperPod cluster. Per ulteriori istruzioni su come ridurre verticalmente o eliminare i gruppi di istanze, consulta [Ridimensionamento di un cluster SageMaker HyperPod](smcluster-scale-down.md).

   1. Per `ClusterName`, specifica il nome del cluster da aggiornare.

   1. Per `InstanceGroupName`

      1. Per aggiornare un gruppo di istanze esistente, specifica il nome del gruppo di istanze da aggiornare.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un nuovo nome non presente nel cluster.

   1. Per `InstanceType`

      1. Per aggiornare un gruppo di istanze esistente, è necessario che il tipo di istanza specificato all’inizio corrisponda al gruppo.

      1. Per aggiungere un nuovo gruppo di istanze, specifica il tipo di istanza con cui configurare il gruppo.

   1. Per `InstanceCount`

      1. Per aggiornare un gruppo di istanze esistente, specifica un numero intero corrispondente al numero di istanze desiderato. Puoi fornire un valore più alto o più basso (fino a 0) per aumentare o ridurre verticalmente il gruppo di istanze.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un numero intero maggiore o uguale a 1. 

   1. In `LifeCycleConfig`, puoi modificare entrambi i valori `SourceS3Uri` e `OnCreate` secondo le tue preferenze per aggiornare il gruppo di istanze.

   1. Per `ExecutionRole`

      1. Per aggiornare un gruppo di istanze esistente, continua a utilizzare lo stesso ruolo IAM collegato durante la creazione del cluster.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un ruolo IAM da collegare.

   1. Per `ThreadsPerCore`

      1. Per aggiornare un gruppo di istanze esistente, continua a utilizzare lo stesso valore specificato durante la creazione del cluster.

      1. Per aggiungere un nuovo gruppo di istanze, puoi scegliere qualsiasi valore tra le opzioni consentite dal tipo di istanza. Per ulteriori informazioni, cerca il tipo di istanza e consulta la colonna **Thread validi per core** nella tabella di riferimento in [CPU cores and threads per CPU core per instance type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) in *Amazon EC2 User Guide*.

   1. Per `OnStartDeepHealthChecks`, aggiungi `InstanceStress` e `InstanceConnectivity` per abilitare [Controlli dell’integrità approfonditi](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).

   1. Per`NodeRecovery`, specifica `Automatic` di abilitare il ripristino automatico dei nodi. SageMaker HyperPod sostituisce o riavvia le istanze (nodi) quando l'agente di monitoraggio dello stato rileva problemi.

   Puoi utilizzare il frammento di codice seguente, che corrisponde a un modello di file di richiesta JSON. Per ulteriori informazioni sulla sintassi della richiesta e sui parametri di questa API, consulta il riferimento all'API. [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)

   ```
   // update_cluster.json
   {
       // Required
       "ClusterName": "name-of-cluster-to-update",
       // Required
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "string",
               "OnCreate": "string"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "NodeRecovery": "Automatic"
   }
   ```

1. Esegui il comando `update-cluster` per inviare la richiesta. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

# Aggiornamento del software della SageMaker HyperPod piattaforma
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software"></a>

Quando crei il SageMaker HyperPod cluster, SageMaker HyperPod seleziona un'Amazon Machine Image (AMI) corrispondente alla versione Kubernetes del cluster Amazon EKS.

Esegui [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)per aggiornare i cluster esistenti con software e patch di sicurezza fornite dal servizio. SageMaker HyperPod Per `--cluster-name`, specifica il nome o l’ARN del cluster da aggiornare.

**Importante**  
Quando questa API viene chiamata, SageMaker HyperPod non scarica o ridistribuisce i job (Pod) in esecuzione sui nodi. Controlla la presenza di processi in esecuzione sui nodi prima di chiamare questa API.
Il processo di applicazione delle patch sostituisce il volume root con l’AMI aggiornata, il che significa che i dati precedenti archiviati nel volume root dell’istanza andranno persi. Assicurati di eseguire il backup dei dati dal volume root dell'istanza su Amazon S3 o Amazon FSx for Lustre.
Tutti i nodi del cluster sono soggetti a tempi di inattività (i nodi appaiono come `<NotReady>` nell’output di`kubectl get node`) durante l’applicazione delle patch. Ti consigliamo di terminare tutti i carichi di lavoro prima di applicare le patch e di riprenderli al termine dell’applicazione delle patch.   
Se la patch di sicurezza non riesce, è possibile recuperare i messaggi di errore eseguendo l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html) come indicato in [Descrizione di un cluster](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md#sagemaker-hyperpod-eks-operate-cli-command-describe-cluster).

```
aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster
```

 Quando chiami l'`UpdateClusterSoftware`API, SageMaker HyperPod aggiorna la versione Kubernetes dei nodi selezionando la più recente in [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) base alla versione Kubernetes del tuo cluster Amazon EKS. Quindi, esegue gli script del ciclo di vita nel bucket Amazon S3 che hai specificato durante la creazione o l’aggiornamento del cluster. 

Puoi verificare la versione kubelet di un nodo con il comando `kubectl describe node`.

La versione Kubernetes dei nodi del SageMaker HyperPod cluster non si aggiorna automaticamente quando aggiorni la versione del cluster Amazon EKS. Dopo aver aggiornato la versione Kubernetes per il tuo cluster Amazon EKS, devi utilizzare l'`UpdateClusterSoftware`API per aggiornare i nodi del SageMaker HyperPod cluster alla stessa versione di Kubernetes.

 Si consiglia di aggiornare il SageMaker HyperPod cluster dopo aver aggiornato i nodi Amazon EKS ed evitare di avere più di una differenza di versione tra la versione del cluster Amazon EKS e la versione dei nodi del SageMaker HyperPod cluster.

Il team SageMaker HyperPod di assistenza lancia regolarmente nuovi strumenti [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) per migliorare la sicurezza e l'esperienza degli utenti. Ti consigliamo di continuare ad aggiornare sempre alla versione più recente di SageMaker HyperPod DLAMI. Per i futuri aggiornamenti SageMaker HyperPod DLAMI per le patch di sicurezza, segui con. [Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md)

**Nota**  
Puoi eseguire questa API solo in modo programmatico. La funzionalità di patching non è implementata nell'interfaccia utente della SageMaker HyperPod console.

# Accesso ai SageMaker HyperPod nodi del cluster
<a name="sagemaker-hyperpod-eks-operate-access-through-terminal"></a>

È possibile accedere direttamente ai nodi di un SageMaker HyperPod cluster in servizio utilizzando i AWS CLI comandi for AWS Systems Manager (SSM). Esegui `aws ssm start-session` con il nome host del nodo in formato `sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. È possibile recuperare l'ID del cluster, l'ID dell'istanza e il nome del gruppo di istanze dalla [SageMaker HyperPod console](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) o eseguendo `describe-cluster` e `list-cluster-nodes` dai [AWS CLI comandi](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes) di. SageMaker HyperPod Ad esempio, se l’ID del cluster è `aa11bbbbb222`, il nome del nodo del cluster è `controller-group` e l’ID del nodo del cluster è `i-111222333444555aa`, il comando `start-session` di SSM dovrebbe essere il seguente.

**Nota**  
Se non hai ancora effettuato la configurazione AWS Systems Manager, segui le istruzioni fornite all'indirizzo[Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

```
$ aws ssm start-session \
    --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa \
    --region us-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

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

**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"]'
```

# Eliminazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-delete-cluster"></a>

Esegui [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) per eliminare un cluster. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

Questa API pulisce solo le SageMaker HyperPod risorse e non elimina alcuna risorsa del cluster EKS associato. Ciò include il cluster Amazon EKS, le identità EKS Pod, FSx i volumi Amazon e i componenti aggiuntivi EKS. Comprende anche la configurazione iniziale aggiunta al cluster EKS. Per pulire tutte le risorse, ricorda di pulire separatamente anche le risorse EKS. 

Assicurati di eliminare prima le SageMaker HyperPod risorse, seguite dalle risorse EKS. Eseguire l’eliminazione in ordine inverso può comportare la persistenza delle risorse.

**Importante**  
Quando questa API viene chiamata, SageMaker HyperPod non scarica o ridistribuisce i job (Pods) in esecuzione sui nodi. Controlla la presenza di processi in esecuzione sui nodi prima di chiamare questa API.