기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudFormation 스택을 사용하여 리소스 프로비저닝
HyperPod Slurm 클러스터에 여러 컨트롤러 노드를 설정하려면 기본 리소스 프로비저닝 및의 두 CloudFormation 스택을 통해 리소스를 프로비저닝 AWS 합니다다중 컨트롤러 노드를 지원하는 추가 리소스 프로비저닝.
기본 리소스 프로비저닝
다음 단계에 따라 Amazon SageMaker HyperPod Slurm 클러스터에 대한 기본 리소스를 프로비저닝합니다.
-
sagemaker-hyperpod.yaml
템플릿 파일을 머신에 다운로드합니다. 이 YAML 파일은 Slurm 클러스터에 대해 생성할 다음 리소스를 정의하는 CloudFormation 템플릿입니다. -
컴퓨팅 노드 인스턴스 그룹에 대한 실행 IAM 역할
-
수명 주기 스크립트를 저장할 Amazon S3 버킷
-
퍼블릭 및 프라이빗 서브넷(프라이빗 서브넷은 NAT 게이트웨이를 통해 인터넷에 액세스할 수 있음)
-
인터넷 게이트웨이/NAT 게이트웨이
-
Amazon EC2 보안 그룹 두 개
-
구성 파일을 저장할 Amazon FSx 볼륨
-
-
다음 CLI 명령을 실행하여 라는 CloudFormation 스택을 생성합니다
sagemaker-hyperpod.PrimarySubnetAZ및BackupSubnetAZ에서 클러스터의 가용 영역(AZ) ID를 정의합니다. 예를 들어,use1-az4는us-east-1리전의 가용 영역에 대한 AZ ID입니다. 자세한 내용은 Availability Zone IDs 및 여러 AZ에서 SageMaker HyperPod 클러스터 설정 섹션을 참조하세요.aws cloudformation deploy \ --template-file/path_to_template/sagemaker-hyperpod.yaml\ --stack-namesagemaker-hyperpod\ --parameter-overrides PrimarySubnetAZ=use1-az4BackupSubnetAZ=use1-az1\ --capabilitiesCAPABILITY_IAM자세한 내용은 AWS Command Line Interface 참조의 배포를 참조하세요. 스택 생성을 완료하는 데 몇 분이 걸릴 수 있습니다. 완료되면 명령줄 인터페이스에 다음이 표시됩니다.
Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod -
(선택 사항) CloudFormation 콘솔
에서 스택을 확인합니다. -
왼쪽 탐색에서 스택을 선택합니다.
-
스택 페이지에서 sagemaker-hyperpod를 찾아 선택합니다.
-
리소스 및 출력과 같은 탭을 선택하여 리소스 및 출력을 검토합니다.
-
-
스택(
sagemaker-hyperpod) 출력에서 환경 변수를 생성합니다. 이러한 변수의 값을 다중 컨트롤러 노드를 지원하는 추가 리소스 프로비저닝에 사용합니다.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)이메일 주소와 데이터베이스 사용자 이름을 묻는 메시지가 표시되면 다음과 같은 값을 입력합니다.
INPUT YOUR SNSSubEmailAddress HERE:Email_address_to_receive_SNS_notificationsINPUT YOUR DB_USER_NAME HERE:Database_user_name_you_define변수 값을 확인하려면
print명령을 사용합니다.$variableprint $REGION us-east-1
다중 컨트롤러 노드를 지원하는 추가 리소스 프로비저닝
다음 단계에 따라 여러 컨트롤러 노드가 있는 Amazon SageMaker HyperPod Slurm 클러스터에 대한 추가 리소스를 프로비저닝합니다.
-
sagemaker-hyperpod-slurm-multi-headnode.yaml
템플릿 파일을 머신에 다운로드합니다. 이 두 번째 YAML 파일은 Slurm 클러스터에서 여러 컨트롤러 노드 지원을 위해 생성할 추가 리소스를 정의하는 CloudFormation 템플릿입니다. -
컨트롤러 노드 인스턴스 그룹에 대한 실행 IAM 역할
-
Amazon RDS for MariaDB 인스턴스
-
Amazon SNS 주제 및 구독
-
AWS Secrets Manager Amazon RDS for MariaDB에 대한 자격 증명
-
-
다음 CLI 명령을 실행하여 라는 CloudFormation 스택을 생성합니다
sagemaker-hyperpod-mh. 이 두 번째 스택은 CloudFormation 템플릿을 사용하여 여러 컨트롤러 노드 아키텍처를 지원하는 추가 AWS 리소스를 생성합니다.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_IAM자세한 내용은 AWS Command Line Interface 참조의 배포를 참조하세요. 스택 생성을 완료하는 데 몇 분이 걸릴 수 있습니다. 완료되면 명령줄 인터페이스에 다음이 표시됩니다.
Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod-mh -
(선택 사항) AWS Cloud Formation 콘솔
에서 스택을 확인합니다. -
왼쪽 탐색에서 스택을 선택합니다.
-
스택 페이지에서 sagemaker-hyperpod-mh를 찾아 선택합니다.
-
리소스 및 출력과 같은 탭을 선택하여 리소스 및 출력을 검토합니다.
-
-
스택(
sagemaker-hyperpod-mh) 출력에서 환경 변수를 생성합니다. 이러한 변수의 값을 사용하여 수명 주기 스크립트 준비 및 업로드에서 구성 파일(provisioning_parameters.json)을 업데이트합니다.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)