Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Accédez aux nœuds SageMaker HyperPod de votre cluster
Vous pouvez accéder à votre InServicecluster via AWS Systems Manager (SSM) en exécutant la AWS CLI commande aws ssm start-session
avec le nom d'hôte du SageMaker HyperPod cluster au format desagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]
. Vous pouvez récupérer l'ID du cluster, l'ID de l'instance et le nom du groupe d'instances depuis la SageMaker HyperPod console ou en exécutant describe-cluster
et list-cluster-nodes
depuis les AWS CLI commandes pour SageMaker HyperPod. Par exemple, si votre ID de cluster estaa11bbbbb222
, le nom du nœud de cluster est controller-group
et l'ID du nœud de cluster esti-111222333444555aa
, la SSM start-session
commande doit être la suivante.
Note
Si vous ne l'avez pas encore configuré AWS Systems Manager, suivez les instructions fournies à l'adresseConfiguration AWS Systems Manager et exécution en tant que pour le contrôle d'accès des utilisateurs du cluster.
$
aws ssm start-session \ --target sagemaker-cluster:
aa11bbbbb222
_controller-group
-i-111222333444555aa
\ --regionus-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
Notez que cela vous connecte initialement en tant qu'utilisateur root. Avant d'exécuter des tâches, passez à l'ubuntu
utilisateur en exécutant la commande suivante.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
Pour les paramètres avancés permettant une utilisation pratique des HyperPod clusters, consultez les rubriques suivantes.
Rubriques
Conseils supplémentaires pour accéder aux nœuds de votre SageMaker HyperPod cluster
Utilisez le easy-ssh.sh
script fourni par HyperPod pour simplifier le processus de connexion
Pour transformer le processus précédent en une seule ligne de commande, l' HyperPod équipe fournit le easy-ssh.sh
describe-cluster
et list-cluster-nodes
commande et analyse les informations nécessaires pour SSM exécuter la commande. Les exemples de commandes suivants montrent comment exécuter le easy-ssh.sh
$
chmod +x easy-ssh.sh
$
./easy-ssh.sh -c
<node-group> <cluster-name>
Cluster id:
<cluster_id>
Instance id:<instance_id>
Node Group:<node-group>
Add the following to your ~/.ssh/config to easily connect:$
cat <<EOF >> ~/.ssh/config Host<cluster-name>
User ubuntu ProxyCommand sh -c "aws ssm start-session --target sagemaker-cluster:<cluster_id>
_<node-group>
-<instance_id>
--document-name AWS-StartSSHSession --parameters 'portNumber=%p'" EOF Add your ssh keypair and then you can do: $ ssh<cluster-name>
aws ssm start-session --target sagemaker-cluster:<cluster_id>
_<node-group>
-<instance_id>
Starting session with SessionId: s0011223344aabbccddroot@ip-111-22-333-444:/usr/bin#
Notez que cela vous connecte initialement en tant qu'utilisateur root. Avant d'exécuter des tâches, passez à l'ubuntu
utilisateur en exécutant la commande suivante.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
Configurez pour un accès facile SSH en utilisant le nœud de HyperPod calcul comme hôte distant
Pour simplifier davantage l'accès au nœud de calcul à SSH partir d'une machine locale, le easy-ssh.sh
script génère un extrait de code décrivant la configuration du HyperPod cluster en tant qu'hôte distant, comme indiqué dans la section précédente. L'extrait de code est généré automatiquement pour vous aider à l'ajouter directement au ~/.ssh/config
fichier sur votre appareil local. La procédure suivante explique comment configurer un accès facile SSH via le SSM proxy, afin que vous ou les utilisateurs de votre cluster puissiez directement vous ssh
connecter au nœud du HyperPod cluster.<cluster-name>
-
Sur votre appareil local, ajoutez le nœud de HyperPod calcul avec un nom d'utilisateur en tant qu'hôte distant au
~/.ssh/config
fichier. La commande suivante indique comment ajouter au fichier l'extrait de code généré automatiquement à partir dueasy-ssh.sh
script.~/.ssh/config
Assurez-vous de le copier à partir de la sortie générée automatiquement dueasy-ssh.sh
script contenant les informations de cluster correctes.$
cat <<EOF >> ~/.ssh/config Host
<cluster-name>
Userubuntu
ProxyCommand sh -c "aws ssm start-session --target sagemaker-cluster:<cluster_id>
_<node-group>
-<instance_id>
--document-name AWS-StartSSHSession --parameters 'portNumber=%p'" EOF -
Sur le nœud de HyperPod cluster, ajoutez la clé publique de votre appareil local au
~/.ssh/authorized_keys
fichier sur le nœud de HyperPod cluster.-
Imprimez le fichier de clé publique sur votre machine locale.
$
cat ~/.ssh/id_rsa.pub
Cela devrait vous rendre votre clé. Copiez le résultat de cette commande.
(Facultatif) Si vous n'avez pas de clé publique, créez-en une en exécutant la commande suivante.
$
ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
-
Connectez-vous au nœud du cluster et passez à l'utilisateur pour ajouter la clé. La commande suivante est un exemple d'accès en tant qu'
ubuntu
utilisateur. Remplacez parubuntu
le nom d'utilisateur pour lequel vous souhaitez configurer l'accès facileSSH.$
./easy-ssh.sh -c
<node-group> <cluster-name>
$
sudo su -
ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
-
Ouvrez le
~/.ssh/authorized_keys
fichier et ajoutez la clé publique à la fin du fichier.ubuntu@ip-111-22-333-444:/usr/bin#
vim ~/.ssh/authorized_keys
-
Une fois la configuration terminée, vous pouvez vous connecter au nœud du HyperPod cluster en tant qu'utilisateur en exécutant une SSH commande simplifiée comme suit.
$
ssh
<cluster-name>
ubuntu@ip-111-22-333-444:/usr/bin#
Vous pouvez également utiliser l'hôte pour le développement à distance à partir IDE d'un appareil local, tel que Visual Studio Code Remote - SSH
Configurez un environnement multi-utilisateurs via l'espace FSx partagé Amazon
Vous pouvez utiliser l'espace FSx partagé Amazon pour gérer un environnement multi-utilisateurs dans un cluster Slurm sur. SageMaker HyperPod Si vous avez configuré votre cluster Slurm avec Amazon FSx lors de la création du HyperPod cluster, c'est une bonne option pour configurer un espace de travail pour les utilisateurs de votre cluster. Créez un nouvel utilisateur et configurez le répertoire personnel de l'utilisateur sur le système de fichiers FSx partagé Amazon.
Astuce
Pour permettre aux utilisateurs d'accéder à votre cluster par le biais de leur nom d'utilisateur et de répertoires dédiés, vous devez également les associer à des IAM rôles ou à des utilisateurs en les marquant comme indiqué dans l'option 2 de l'étape 5 de la procédure Pour activer le support Exécuter en tant que support pour les nœuds gérés sous Linux et macOS fournie dans la section Activer le support pour les nœuds gérés sous Linux et macOS dans le guide de l' AWS Systems Manager utilisateur. Voir aussi Configuration AWS Systems Manager et exécution en tant que pour le contrôle d'accès des utilisateurs du cluster.
Pour configurer un environnement multi-utilisateurs lors de la création d'un cluster Slurm sur SageMaker HyperPod
L'équipe SageMaker HyperPod de service fournit un script dans le add_users.sh
-
Préparez un fichier texte nommé
shared_users.txt
que vous devez créer au format suivant. La première colonne est destinée aux noms d'utilisateur, la deuxième colonne aux utilisateurs IDs uniques et la troisième aux annuaires des utilisateurs de l'espace FSx partagé Amazon.username1,uid1,/fsx/username1 username2,uid2,/fsx/username2 ...
-
Assurez-vous de télécharger les
add_users.sh
fichiers shared_users.txt
et dans le compartiment S3 pour les scripts de HyperPod cycle de vie. Lorsque la création du cluster, la mise à jour du cluster ou la mise à jour logicielle du cluster est en cours, le répertoire des utilisateurs estadd_users.sh
lu shared_users.txt
et configuré correctement.
Pour créer de nouveaux utilisateurs et les ajouter à un cluster Slurm existant exécuté sur SageMaker HyperPod
-
Sur le nœud principal, exécutez la commande suivante pour enregistrer un script permettant de créer un utilisateur. Assurez-vous de l'exécuter avec les autorisations sudo.
$
cat > create-user.sh
<< EOL #!/bin/bash set -x # Prompt user to get the new user name. read -p "Enter the new user name, i.e. 'sean': " USER # create home directory as /fsx/<user> # Create the new user on the head node sudo useradd \$USER -m -d /fsx/\$USER --shell /bin/bash; user_id=\$(id -u \$USER) # add user to docker group sudo usermod -aG docker \${USER} # setup SSH Keypair sudo -u \$USER ssh-keygen -t rsa -q -f "/fsx/\$USER/.ssh/id_rsa" -N "" sudo -u \$USER cat /fsx/\$USER/.ssh/id_rsa.pub | sudo -u \$USER tee /fsx/\$USER/.ssh/authorized_keys # add user to compute nodes read -p "Number of compute nodes in your cluster, i.e. 8: " NUM_NODES srun -N \$NUM_NODES sudo useradd -u \$user_id \$USER -d /fsx/\$USER --shell /bin/bash; # add them as a sudoer read -p "Do you want this user to be a sudoer? (y/N): " SUDO if [ "\$SUDO" = "y" ]; then sudo usermod -aG sudo \$USER sudo srun -N \$NUM_NODES sudo usermod -aG sudo \$USER echo -e "If you haven't already you'll need to run:\n\nsudo visudo /etc/sudoers\n\nChange the line:\n\n%sudo ALL=(ALL:ALL) ALL\n\nTo\n\n%sudo ALL=(ALL:ALL) NOPASSWD: ALL\n\nOn each node." fi EOL -
Exécutez le script à l'aide de la commande suivante. Vous serez invité à ajouter le nom d'un utilisateur et le nombre de nœuds de calcul auxquels vous souhaitez autoriser l'utilisateur à accéder.
$
bash create-user.sh
-
Testez l'utilisateur en exécutant les commandes suivantes.
$
sudo su -
<user>
&& ssh $(srun hostname) -
Ajoutez les informations utilisateur au
shared_users.txt
fichier afin que l'utilisateur soit créé sur tout nouveau nœud de calcul ou nouveau cluster.
Configuration d'un environnement multi-utilisateurs en intégrant des HyperPod clusters à Active Directory
Dans les cas pratiques, les HyperPod clusters sont généralement utilisés par plusieurs utilisateurs : chercheurs en apprentissage automatique (ML), ingénieurs logiciels, scientifiques des données et administrateurs de clusters. Ils éditent leurs propres fichiers et exécutent leurs propres tâches sans affecter le travail des autres. Pour configurer un environnement multi-utilisateurs, utilisez le mécanisme des utilisateurs et des groupes Linux pour créer de manière statique plusieurs utilisateurs sur chaque instance via des scripts de cycle de vie. Toutefois, l'inconvénient de cette approche est que vous devez dupliquer les paramètres des utilisateurs et des groupes sur plusieurs instances du cluster afin de conserver une configuration cohérente dans toutes les instances lorsque vous effectuez des mises à jour, telles que l'ajout, la modification et la suppression d'utilisateurs.
Pour résoudre ce problème, vous pouvez utiliser le Lightweight Directory Access Protocol (LDAP)