

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
<a name="sagemaker-hyperpod-multihead-slurm-cfn"></a>

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](#sagemaker-hyperpod-multihead-slurm-cfn-basic) [Provisionar recursos adicionais para atender a vários nós controladores](#sagemaker-hyperpod-multihead-slurm-cfn-multihead)

## Provisionar recursos básicos
<a name="sagemaker-hyperpod-multihead-slurm-cfn-basic"></a>

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

1. Baixe o arquivo de modelo [sagemaker-hyperpod.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/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

1. 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](https://docs.aws.amazon.com//ram/latest/userguide/working-with-az-ids.html) [Configurando SageMaker HyperPod clusters em vários AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones) 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](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) 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
   ```

1. (Opcional) Verifique a pilha no [console do CloudFormation](https://console.aws.amazon.com/cloudformation/home).
   + 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.

1. 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](#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

   ```
   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
<a name="sagemaker-hyperpod-multihead-slurm-cfn-multihead"></a>

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](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod-slurm-multi-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

1. 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](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) 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
   ```

1. (Opcional) Verifique a pilha no [console do AWS Cloud Formation](https://console.aws.amazon.com/cloudformation/home).
   + 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.

1. 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](sagemaker-hyperpod-multihead-slurm-scripts.md).

   ```
   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)
   ```