View a markdown version of this page

Provisionamento de recursos usando pilhas CloudFormation - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Provisionamento de recursos usando pilhas CloudFormation

Para configurar vários nós controladores em um cluster HyperPod Slurm, provisione AWS recursos por meio de duas CloudFormation pilhas: e. Provisionar recursos básicos Provisionar recursos adicionais para atender a vários nós controladores

Provisionar recursos básicos

Siga estas etapas para provisionar recursos básicos para seu cluster Amazon SageMaker HyperPod Slurm.

  1. Baixe o arquivo de modelo sagemaker-hyperpod.yaml na sua máquina. Esse arquivo YAML é um CloudFormation modelo que define os seguintes recursos a serem criados para seu cluster do Slurm.

    • Um perfil de execução do IAM para o grupo de instâncias do nó de computação.

    • Um bucket do Amazon S3 para armazenar os scripts de ciclo de vida.

    • Sub-redes públicas e privadas (as sub-redes privadas têm acesso à internet por meio de gateways NAT).

    • Gateway/NAT Gateways de Internet

    • Dois grupos de segurança do Amazon EC2.

    • Um FSx volume da Amazon para armazenar arquivos de configuração

  2. Execute o seguinte comando da CLI para criar uma CloudFormation pilha chamada. sagemaker-hyperpod Defina a Zona de Disponibilidade (AZ) IDs para seu cluster em PrimarySubnetAZ BackupSubnetAZ e. Por exemplo, use1-az4 é uma ID AZ para uma zona de disponibilidade na us-east-1 região. Para obter mais informações, consulte Zona de disponibilidade IDs Configurando SageMaker HyperPod clusters em vários AZs e.

    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 obter mais informações, consulte implantar a partir da AWS Command Line Interface Referência. A criação da pilha pode levar alguns minutos para ser concluída. Quando estiver concluída, você verá o seguinte na interface de linha de comandos:

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod
  3. (Opcional) Verifique a pilha no console do CloudFormation.

    • No painel de navegação à esquerda, escolha Pilha.

    • Na página Pilha, encontre e escolha sagemaker-hyperpod.

    • Escolha guias como Recursos e Saídas para analisar recursos e saídas.

  4. Crie variáveis de ambiente com base nas saídas da pilha (sagemaker-hyperpod). Você usará os valores dessas variáveis para Provisionar recursos adicionais para atender a vários nós controladores.

    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)

    Ao receber solicitações para fornecer seu endereço de e-mail e nome de usuário do banco de dados, insira valores como os seguintes:

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

    Para verificar os valores das variáveis, use o comando print $variable.

    print $REGION us-east-1

Provisionar recursos adicionais para atender a vários nós controladores

Siga estas etapas para provisionar recursos adicionais para seu cluster Amazon SageMaker HyperPod Slurm com vários nós controladores.

  1. Baixe o arquivo sagemaker-hyperpod-slurm-multide modelo -headnode.yaml para sua máquina. Esse segundo arquivo YAML é um CloudFormation modelo que define os recursos adicionais a serem criados para o suporte de vários nós controladores em seu cluster do Slurm.

    • Um perfil de execução do IAM para o grupo de instâncias do nó controlador

    • Uma instância para o Amazon RDS para MariaDB

    • Um tópico e assinatura do Amazon SNS

    • AWS Secrets Manager credenciais do Amazon RDS for MariaDB

  2. Execute o seguinte comando da CLI para criar uma CloudFormation pilha chamada. sagemaker-hyperpod-mh Essa segunda pilha usa o CloudFormation modelo para criar AWS recursos adicionais para dar suporte à arquitetura de vários nós do controlador.

    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 obter mais informações, consulte implantar a partir da AWS Command Line Interface Referência. A criação da pilha pode levar alguns minutos para ser concluída. Quando estiver concluída, você verá o seguinte na interface de linha 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 a pilha no console do AWS Cloud Formation.

    • No painel de navegação à esquerda, escolha Pilha.

    • Na página Stack, encontre e escolha sagemaker-hyperpod-mh.

    • Escolha guias como Recursos e Saídas para analisar recursos e saídas.

  4. Crie variáveis de ambiente com base nas saídas da pilha (sagemaker-hyperpod-mh). Você usará os valores dessas variáveis para atualizar o arquivo de configuração (provisioning_parameters.json) em Preparar e fazer upload de 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)