翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudFormation スタックを使用したリソースのプロビジョニング
HyperPod Slurm クラスターに複数のコントローラーノードを設定するには、 リソースをプロビジョンすると の 2 つの CloudFormation スタックを使用してリソースをプロビジョニング AWS します複数のコントローラーノードをサポートするように追加のリソースをプロビジョンする。
リソースをプロビジョンする
Amazon SageMaker HyperPod Slurm クラスターの基本的なリソースをプロビジョンするには、次の手順に従います。
-
sagemaker-hyperpod.yaml
テンプレートファイルをマシンにダウンロードします。この YAML ファイルは、Slurm クラスター用に作成する以下のリソースを定義する CloudFormation テンプレートです。 -
コンピューティングノードインスタンスグループの実行 IAM ロール
-
ライフサイクルスクリプトを保存する Amazon S3 バケット
-
パブリックサブネットとプライベートサブネット (プライベートサブネットには NAT ゲートウェイを介したインターネットアクセスがあります)
-
インターネットゲートウェイ/NAT ゲートウェイ
-
2 つの Amazon EC2 セキュリティグループ
-
設定ファイルを保存する Amazon FSx ボリューム
-
-
次の CLI コマンドを実行して、 という名前の CloudFormation スタックを作成します
sagemaker-hyperpod。PrimarySubnetAZおよびBackupSubnetAZでクラスターのアベイラビリティーゾーン (AZ) ID を定義します。たとえば、use1-az4は、us-east-1リージョンのアベイラビリティーゾーンの AZ ID です。詳細については、「アベイラビリティーゾーン ID」と「複数の 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)E メールアドレスとデータベースユーザー名の入力を求めるプロンプトが表示されたら、以下のとおり値を入力します。
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
テンプレートファイルをマシンにダウンロードします。この 2 番目の YAML ファイルは、Slurm クラスターで複数のコントローラーノードをサポートするために作成する追加のリソースを定義する CloudFormation テンプレートです。 -
コンピューティングノードインスタンスグループの実行 IAM ロール
-
Amazon RDS for MariaDB インスタンス
-
Amazon SNS トピックとサブスクリプション
-
AWS Secrets Manager Amazon RDS for MariaDB の 認証情報
-
-
次の CLI コマンドを実行して、 という名前の CloudFormation スタックを作成します
sagemaker-hyperpod-mh。この 2 番目のスタックは、 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)