View a markdown version of this page

Aprovisionamiento de recursos mediante pilas CloudFormation - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aprovisionamiento de recursos mediante pilas CloudFormation

Para configurar varios nodos controladores en un clúster de HyperPod Slurm, aprovisione AWS los recursos a través de dos CloudFormation pilas: y. Aprovisionamiento de recursos básicos Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador

Aprovisionamiento de recursos básicos

Siga estos pasos para aprovisionar recursos básicos para su clúster de Amazon SageMaker HyperPod Slurm.

  1. Descargue el archivo de plantilla sagemaker-hyperpod.yaml en su equipo. Este archivo YAML es una CloudFormation plantilla que define los siguientes recursos para crearlos para su clúster de Slurm.

    • Un rol de IAM de ejecución para el grupo de instancias del nodo de computación

    • Un bucket de Amazon S3 para almacenar los scripts de ciclo de vida

    • Subredes públicas y privadas (las subredes privadas tienen acceso a Internet a través de puertas de enlace NAT)

    • Gateway/NAT Puertas de enlace de Internet

    • Dos grupos de seguridad de Amazon EC2

    • Un FSx volumen de Amazon para almacenar los archivos de configuración

  2. Ejecute el siguiente comando CLI para crear una CloudFormation pila denominadasagemaker-hyperpod. Defina la zona de disponibilidad (AZ) IDs del clúster en PrimarySubnetAZ yBackupSubnetAZ. Por ejemplo, use1-az4 es un ID de zona de disponibilidad de la us-east-1 región. Para obtener más información, consulte Zona de disponibilidad IDs yConfiguración de clústeres en varios 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

    Para obtener más información, consulte implementar desde la AWS Command Line Interface referencia. La creación de la pila puede tardar unos minutos en completarse. Cuando haya acabado, verá lo siguiente en la interfaz de la línea de comandos.

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod
  3. (Opcional) Verifique la pila en la consola de CloudFormation.

    • En el panel de navegación izquierdo, seleccione Pila.

    • En la página Pila, busque y seleccione sagemaker-hyperpod.

    • Seleccione las pestañas como, por ejemplo, Recursos y Resultados para revisar los recursos y los resultados.

  4. Cree variables de entorno a partir de los resultados de la pila (sagemaker-hyperpod). Utilizará los valores de estas variables para Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador.

    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)

    Cuando aparezca un mensaje en el que se le pida su dirección de correo electrónico y su nombre de usuario de la base de datos, introduzca valores como los siguientes.

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

    Para comprobar los valores de las variables, utilice el comando print $variable.

    print $REGION us-east-1

Aprovisionamiento de recursos adicionales para admitir varios nodos de controlador

Siga estos pasos para aprovisionar recursos adicionales para su clúster de Amazon SageMaker HyperPod Slurm con varios nodos controladores.

  1. Descargue el archivo de sagemaker-hyperpod-slurm-multiplantilla -headnode.yaml en su máquina. Este segundo archivo YAML es una CloudFormation plantilla que define los recursos adicionales que se deben crear para el soporte de varios nodos controladores en su clúster de Slurm.

    • Un rol de IAM de ejecución para el grupo de instancias del nodo de controlador

    • Una instancia de Amazon RDS para MariaDB

    • Un tema y una suscripción de Amazon SNS

    • AWS Secrets Manager credenciales de Amazon RDS para MariaDB

  2. Ejecute el siguiente comando CLI para crear una CloudFormation pila denominadasagemaker-hyperpod-mh. Esta segunda pila utiliza la CloudFormation plantilla para crear AWS recursos adicionales que admitan la arquitectura de varios nodos controladores.

    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

    Para obtener más información, consulte implementar desde la AWS Command Line Interface referencia. La creación de la pila puede tardar unos minutos en completarse. Cuando haya acabado, verá lo siguiente en la interfaz de la línea de comandos.

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod-mh
  3. (Opcional) Verifique la pila en la consola de AWS Cloud Formation.

    • En el panel de navegación izquierdo, seleccione Pila.

    • En la página Stack, busque y elija sagemaker-hyperpod-mh.

    • Seleccione las pestañas como, por ejemplo, Recursos y Resultados para revisar los recursos y los resultados.

  4. Cree variables de entorno a partir de los resultados de la pila (sagemaker-hyperpod-mh). Utilizará los valores de estas variables para actualizar el archivo de configuración (provisioning_parameters.json) en Preparación y carga de los scripts de ciclo de vida.

    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)