Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Approvisionnement de ressources à l'aide de piles CloudFormation
Pour configurer plusieurs nœuds de contrôleur dans un cluster HyperPod Slurm, provisionnez les AWS ressources via deux CloudFormation piles : et. Provisionnement des ressources de base Provisionnement de ressources supplémentaires pour prendre en charge plusieurs nœuds de contrôleur
Provisionnement des ressources de base
Suivez ces étapes pour provisionner des ressources de base pour votre cluster Amazon SageMaker HyperPod Slurm.
-
Téléchargez le fichier de modèle sagemaker-hyperpod.yaml
sur votre ordinateur. Ce fichier YAML est un CloudFormation modèle qui définit les ressources suivantes à créer pour votre cluster Slurm. -
Un rôle IAM d’exécution pour le groupe d’instances de nœuds de calcul
-
Un compartiment Amazon S3 pour stocker les scripts du cycle de vie
-
Des sous-réseaux publics et privés (les sous-réseaux privés ont accès à Internet via des passerelles NAT)
-
Gateway/NAT Passerelles Internet
-
Deux groupes de sécurité Amazon EC2
-
Un FSx volume Amazon pour stocker les fichiers de configuration
-
-
Exécutez la commande CLI suivante pour créer une CloudFormation pile nommée
sagemaker-hyperpod. Définissez la zone de disponibilité (AZ) IDs de votre cluster dansPrimarySubnetAZetBackupSubnetAZ. Par exemple,use1-az4il s'agit d'un ID AZ pour une zone de disponibilité de laus-east-1région. Pour plus d'informations, consultez les sections Zone de disponibilité IDs etConfiguration de SageMaker HyperPod clusters sur plusieurs AZs.aws cloudformation deploy \ --template-file/path_to_template/sagemaker-hyperpod.yaml\ --stack-namesagemaker-hyperpod\ --parameter-overrides PrimarySubnetAZ=use1-az4BackupSubnetAZ=use1-az1\ --capabilitiesCAPABILITY_IAMPour plus d'informations, consultez la section Déployer à partir de la AWS Command Line Interface référence. La création de la pile peut prendre quelques minutes. Une fois l’opération terminée, vous verrez ce qui suit dans votre interface de ligne de commande.
Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod -
(Facultatif) Vérifiez la pile dans la console CloudFormation
. -
Dans le volet de navigation de gauche, choisissez Pile.
-
Sur la page Pile, recherchez et choisissez sagemaker-hyperpod.
-
Choisissez les onglets tels que Ressources et Sorties pour passer en revue les ressources et les sorties.
-
-
Créez des variables d’environnement à partir des sorties de la pile (
sagemaker-hyperpod). Vous utiliserez les valeurs de ces variables pour effectuer le Provisionnement de ressources supplémentaires pour prendre en charge plusieurs nœuds de contrôleur.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)Lorsque vous voyez des invites vous demandant votre adresse e-mail et votre nom d’utilisateur de la base de données, entrez des valeurs telles que les suivantes.
INPUT YOUR SNSSubEmailAddress HERE:Email_address_to_receive_SNS_notificationsINPUT YOUR DB_USER_NAME HERE:Database_user_name_you_definePour vérifier les valeurs des variables, utilisez la commande
print.$variableprint $REGION us-east-1
Provisionnement de ressources supplémentaires pour prendre en charge plusieurs nœuds de contrôleur
Suivez ces étapes pour fournir des ressources supplémentaires à votre cluster Amazon SageMaker HyperPod Slurm avec plusieurs nœuds de contrôleur.
-
Téléchargez le fichier modèle sagemaker-hyperpod-slurm-multi-headnode.yaml
sur votre machine. Ce deuxième fichier YAML est un CloudFormation modèle qui définit les ressources supplémentaires à créer pour le support de plusieurs nœuds de contrôleur dans votre cluster Slurm. -
Un rôle IAM d’exécution pour le groupe d’instances de nœuds de contrôleur
-
Une instance Amazon RDS for MariaDB
-
Une rubrique et un abonnement Amazon SNS
-
AWS Secrets Manager informations d'identification pour Amazon RDS for MariaDB
-
-
Exécutez la commande CLI suivante pour créer une CloudFormation pile nommée
sagemaker-hyperpod-mh. Cette deuxième pile utilise le CloudFormation modèle pour créer des AWS ressources supplémentaires afin de prendre en charge l'architecture à plusieurs nœuds de contrôleur.aws cloudformation deploy \ --template-file/path_to_template/slurm-multi-headnode.yaml\ --stack-namesagemaker-hyperpod-mh\ --parameter-overrides \ SlurmDBSecurityGroupId=$SECURITY_GROUP \ SlurmDBSubnetGroupId1=$PRIMARY_SUBNET \ SlurmDBSubnetGroupId2=$BACKUP_SUBNET \ SNSSubEmailAddress=$EMAIL \ SlurmDBUsername=$DB_USER_NAME \ --capabilitiesCAPABILITY_NAMED_IAMPour plus d'informations, consultez la section Déployer à partir de la AWS Command Line Interface référence. La création de la pile peut prendre quelques minutes. Une fois l’opération terminée, vous verrez ce qui suit dans votre interface de ligne de commande.
Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod-mh -
(Facultatif) Vérifiez la pile dans la console AWS Cloud Formation
. -
Dans le volet de navigation de gauche, choisissez Pile.
-
Sur la page Stack, recherchez et choisissez sagemaker-hyperpod-mh.
-
Choisissez les onglets tels que Ressources et Sorties pour passer en revue les ressources et les sorties.
-
-
Créez des variables d’environnement à partir des sorties de la pile (
sagemaker-hyperpod-mh). Vous utiliserez les valeurs de ces variables pour mettre à jour le fichier de configuration (provisioning_parameters.json) dans Préparation et chargement des scripts de cycle de vie.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)