Fornitura di risorse tramite stack CloudFormation - Amazon SageMaker AI

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

Fornitura di risorse tramite stack CloudFormation

Per configurare più nodi di controllo in un cluster HyperPod Slurm, fornisci AWS le risorse tramite due CloudFormation stack: e. Allocazione di risorse di base Allocazione di risorse aggiuntive per supportare più nodi controller

Allocazione di risorse di base

Segui questi passaggi per fornire risorse di base per il tuo cluster Amazon SageMaker HyperPod Slurm.

  1. Scarica il file del modello sagemaker-hyperpod.yaml sul tuo computer. Questo file YAML è un CloudFormation modello che definisce le seguenti risorse da creare per il tuo cluster Slurm.

    • Un ruolo IAM di esecuzione per il gruppo di istanze del nodo di calcolo

    • Un bucket Amazon S3 per archiviare gli script del ciclo di vita

    • Sottoreti pubbliche e private (le sottoreti private hanno accesso a Internet tramite gateway NAT)

    • Gateway/NAT Gateway Internet

    • Due gruppi di sicurezza Amazon EC2

    • Un FSx volume Amazon per archiviare i file di configurazione

  2. Esegui il seguente comando CLI per creare uno CloudFormation stack denominato. sagemaker-hyperpod Definisci la zona di disponibilità (AZ) IDs per il tuo cluster in PrimarySubnetAZ and. BackupSubnetAZ Ad esempio, use1-az4 è un ID AZ per una zona di disponibilità nella us-east-1 regione. Per ulteriori informazioni, vedere Zona di disponibilità IDs eConfigurazione di cluster su più cluster SageMaker HyperPod AZs.

    aws cloudformation deploy \ --template-file /path_to_template/sagemaker-hyperpod.yaml \ --stack-name sagemaker-hyperpod \ --parameter-overrides PrimarySubnetAZ=use1-az4 BackupSubnetAZ=use1-az1 \ --capabilities CAPABILITY_IAM

    Per ulteriori informazioni, consulta deploy from the AWS Command Line Interface Reference. La creazione dello stack può richiedere alcuni minuti. Al termine, vedrai quanto segue nell’interfaccia a riga di comando.

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod
  3. (Facoltativo) Verifica lo stack nella console CloudFormation.

    • Seleziona Stack dalla barra di navigazione a sinistra.

    • Nella pagina Stack, trova e scegli sagemaker-hyperpod.

    • Scegli le schede Risorse e Output per esaminare le risorse e gli output.

  4. Crea variabili di ambiente dagli output dello stack (sagemaker-hyperpod). Utilizzerai i valori di queste variabili per Allocazione di risorse aggiuntive per supportare più nodi controller.

    source .env PRIMARY_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`PrimaryPrivateSubnet`].OutputValue' --output text) BACKUP_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`BackupPrivateSubnet`].OutputValue' --output text) EMAIL=$(bash -c 'read -p "INPUT YOUR SNSSubEmailAddress HERE: " && echo $REPLY') DB_USER_NAME=$(bash -c 'read -p "INPUT YOUR DB_USER_NAME HERE: " && echo $REPLY') SECURITY_GROUP=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`SecurityGroup`].OutputValue' --output text) ROOT_BUCKET_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonS3BucketName`].OutputValue' --output text) SLURM_FSX_DNS_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemDNSname`].OutputValue' --output text) SLURM_FSX_MOUNT_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemMountname`].OutputValue' --output text) COMPUTE_NODE_ROLE=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonSagemakerClusterExecutionRoleArn`].OutputValue' --output text)

    Quando vedi prompt che richiedono il tuo indirizzo e-mail e il nome utente del database, inserisci valori come i seguenti.

    INPUT YOUR SNSSubEmailAddress HERE: Email_address_to_receive_SNS_notifications INPUT YOUR DB_USER_NAME HERE: Database_user_name_you_define

    Per verificare i valori delle variabili, utilizza il comando print $variable.

    print $REGION us-east-1

Allocazione di risorse aggiuntive per supportare più nodi controller

Segui questi passaggi per fornire risorse aggiuntive per il tuo cluster Amazon SageMaker HyperPod Slurm con più nodi controller.

  1. Scarica il file modello sagemaker-hyperpod-slurm-multi-headnode.yaml sul tuo computer. Questo secondo file YAML è un CloudFormation modello che definisce le risorse aggiuntive da creare per il supporto di più nodi di controller nel cluster Slurm.

    • Un ruolo IAM di esecuzione per il gruppo di istanze del nodo controller

    • Un’istanza Amazon RDS per MariaDB

    • Un argomento e l’abbonamento Amazon SNS

    • Gestione dei segreti AWS credenziali per Amazon RDS for MariaDB

  2. Esegui il seguente comando CLI per creare uno CloudFormation stack denominato. sagemaker-hyperpod-mh Questo secondo stack utilizza il CloudFormation modello per creare AWS risorse aggiuntive per supportare l'architettura a più nodi di controller.

    aws cloudformation deploy \ --template-file /path_to_template/slurm-multi-headnode.yaml \ --stack-name sagemaker-hyperpod-mh \ --parameter-overrides \ SlurmDBSecurityGroupId=$SECURITY_GROUP \ SlurmDBSubnetGroupId1=$PRIMARY_SUBNET \ SlurmDBSubnetGroupId2=$BACKUP_SUBNET \ SNSSubEmailAddress=$EMAIL \ SlurmDBUsername=$DB_USER_NAME \ --capabilities CAPABILITY_NAMED_IAM

    Per ulteriori informazioni, consulta deploy from the AWS Command Line Interface Reference. La creazione dello stack può richiedere alcuni minuti. Al termine, vedrai quanto segue nell’interfaccia a riga di comando.

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod-mh
  3. (Facoltativo) Verifica lo stack nella console AWS Cloud Formation.

    • Seleziona Stack dalla barra di navigazione a sinistra.

    • Nella pagina Stack, trova e scegli. sagemaker-hyperpod-mh

    • Scegli le schede Risorse e Output per esaminare le risorse e gli output.

  4. Crea variabili di ambiente dagli output dello stack (sagemaker-hyperpod-mh). Utilizzerai i valori di queste variabili per aggiornare il file di configurazione (provisioning_parameters.json) in Preparazione e caricamento degli script del ciclo di vita.

    source .env SLURM_DB_ENDPOINT_ADDRESS=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBEndpointAddress`].OutputValue' --output text) SLURM_DB_SECRET_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBSecretArn`].OutputValue' --output text) SLURM_EXECUTION_ROLE_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmExecutionRoleArn`].OutputValue' --output text) SLURM_SNS_FAILOVER_TOPIC_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmFailOverSNSTopicArn`].OutputValue' --output text)