Bereitstellung von Ressourcen mithilfe von Stacks CloudFormation - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bereitstellung von Ressourcen mithilfe von Stacks CloudFormation

Um mehrere Controller-Knoten in einem HyperPod Slurm-Cluster einzurichten, stellen Sie AWS Ressourcen über zwei CloudFormation Stacks bereit: und. Bereitstellen von grundlegenden Ressourcen Bereitstellen zusätzlicher Ressourcen zur Unterstützung mehrerer Controller-Knoten

Bereitstellen von grundlegenden Ressourcen

Gehen Sie wie folgt vor, um grundlegende Ressourcen für Ihren Amazon SageMaker HyperPod Slurm-Cluster bereitzustellen.

  1. Laden Sie die Vorlagendatei sagemaker-hyperpod.yaml auf Ihren Computer herunter. Diese YAML-Datei ist eine CloudFormation Vorlage, die die folgenden Ressourcen definiert, die Sie für Ihren Slurm-Cluster erstellen müssen.

    • Eine Ausführungs-IAM-Rolle für die Rechenknoten-Instance-Gruppe

    • Ein Amazon-S3-Bucket zum Speichern der Lebenszyklusskripte

    • Öffentliche und private Subnetze (private Subnetze haben Internetzugang über NAT-Gateways)

    • Internet-Gateways Gateway/NAT

    • Zwei Amazon-EC2-Sicherheitsgruppen

    • Ein FSx Amazon-Volume zum Speichern von Konfigurationsdateien

  2. Führen Sie den folgenden CLI-Befehl aus, um einen CloudFormation Stack mit dem Namen zu erstellensagemaker-hyperpod. Definieren Sie die Availability Zone (AZ) IDs für Ihren Cluster in PrimarySubnetAZ undBackupSubnetAZ. use1-az4Ist beispielsweise eine AZ-ID für eine Availability Zone in der us-east-1 Region. Weitere Informationen finden Sie unter Availability Zone IDs undEinrichtung von Clustern über mehrere 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

    Weitere Informationen finden Sie in der AWS Command Line Interface Referenz unter Bereitstellen. Die Erstellung des Stacks kann einige Minuten in Anspruch nehmen. Wenn der Vorgang abgeschlossen ist, wird in Ihrer Befehlszeilenschnittstelle Folgendes angezeigt.

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod
  3. (Optional) Überprüfen Sie den Stack in der CloudFormation -Konsole.

    • Wählen Sie im linken Navigationsbereich Stack aus.

    • Suchen Sie auf der Stack-Seite nach sagemaker-hyperpod und wählen Sie es aus.

    • Wählen Sie die Registerkarten wie Ressourcen und Ergebnisse aus, um die Ressourcen und Ergebnisse zu überprüfen.

  4. Erstellen Sie Umgebungsvariablen aus den Stack-Ausgaben (sagemaker-hyperpod). Sie verwenden die Werte dieser Variablen, um Bereitstellen zusätzlicher Ressourcen zur Unterstützung mehrerer Controller-Knoten.

    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)

    Wenn Sie aufgefordert werden, Ihre E-Mail-Adresse und Ihren Datenbankbenutzernamen einzugeben, geben Sie Werte wie die folgenden ein.

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

    Verwenden Sie den print $variable-Befehl, um Variablenwerte zu überprüfen.

    print $REGION us-east-1

Bereitstellen zusätzlicher Ressourcen zur Unterstützung mehrerer Controller-Knoten

Gehen Sie wie folgt vor, um zusätzliche Ressourcen für Ihren Amazon SageMaker HyperPod Slurm-Cluster mit mehreren Controller-Knoten bereitzustellen.

  1. Laden Sie die sagemaker-hyperpod-slurm-multiVorlagendatei -headnode.yaml auf Ihren Computer herunter. Diese zweite YAML-Datei ist eine CloudFormation Vorlage, die die zusätzlichen Ressourcen definiert, die für die Unterstützung mehrerer Controller-Knoten in Ihrem Slurm-Cluster erstellt werden müssen.

    • Eine Ausführungs-IAM-Rolle für die Instance-Gruppe des Controller-Knotens

    • Eine Instance von Amazon RDS für MariaDB

    • Ein Amazon-SNS-Thema und -Abonnement

    • AWS Secrets Manager Anmeldeinformationen für Amazon RDS for MariaDB

  2. Führen Sie den folgenden CLI-Befehl aus, um einen CloudFormation Stack mit dem Namen zu erstellensagemaker-hyperpod-mh. Dieser zweite Stack verwendet die CloudFormation Vorlage, um zusätzliche AWS Ressourcen zur Unterstützung der Architektur mit mehreren Controller-Knoten zu erstellen.

    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

    Weitere Informationen finden Sie in der AWS Command Line Interface Referenz unter Deploy. Die Erstellung des Stacks kann einige Minuten in Anspruch nehmen. Wenn der Vorgang abgeschlossen ist, wird in Ihrer Befehlszeilenschnittstelle Folgendes angezeigt.

    Waiting for changeset to be created.. Waiting for stack create/update to complete Successfully created/updated stack - sagemaker-hyperpod-mh
  3. (Optional) Überprüfen Sie den Stack in der Konsole von AWS Cloud Formation.

    • Wählen Sie im linken Navigationsbereich Stack aus.

    • Suchen und wählen Sie auf der Stack-Seite sagemaker-hyperpod-mh.

    • Wählen Sie die Registerkarten wie Ressourcen und Ergebnisse aus, um die Ressourcen und Ergebnisse zu überprüfen.

  4. Erstellen Sie Umgebungsvariablen aus den Stack-Ausgaben (sagemaker-hyperpod-mh). Sie verwenden die Werte dieser Variablen, um die Konfigurationsdatei (provisioning_parameters.json) in Vorbereiten und Hochladen von Lebenszyklusskripten zu aktualisieren.

    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)