

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.

# Zugriff auf Ihre SageMaker HyperPod Clusterknoten
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes"></a>

Sie können über AWS Systems Manager (SSM) auf Ihren **InService**Cluster zugreifen, indem Sie den AWS CLI Befehl `aws ssm start-session` mit dem SageMaker HyperPod Cluster-Hostnamen im Format von `sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]` ausführen. Sie können die Cluster-ID, die Instanz-ID und den Namen der Instanzgruppe von der [SageMaker HyperPod Konsole](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) aus abrufen oder indem Sie `describe-cluster` und `list-cluster-nodes` die [AWS CLI Befehle für SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes) ausführen. Wenn Ihre Cluster-ID beispielsweise `aa11bbbbb222`, der Clusterknotenname `controller-group` und die Clusterknoten-ID `i-111222333444555aa` lautet, sollte der SSM-Befehl `start-session` wie folgt lauten.

**Anmerkung**  
Wenn Sie Benutzern Zugriff auf HyperPod Clusterknoten gewähren, können sie benutzerverwaltete Software auf den Knoten installieren und ausführen. Stellen Sie sicher, dass Sie das Prinzip der geringsten Berechtigung für Benutzer beibehalten.  
Wenn Sie noch keine Einrichtung vorgenommen haben AWS Systems Manager, folgen Sie den Anweisungen unter[Einrichtung AWS Systems Manager und Ausführung als für die Cluster-Benutzerzugriffskontrolle](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

```
$ aws ssm start-session \
    --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa \
    --region us-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

Beachten Sie, dass Sie dadurch zunächst als Root-Benutzer verbunden werden. Bevor Sie Aufträge ausführen, wechseln Sie zum `ubuntu`-Benutzer, indem Sie den folgenden Befehl ausführen.

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

Erweiterte Einstellungen für die praktische Verwendung von HyperPod Clustern finden Sie in den folgenden Themen.

**Topics**
+ [Zusätzliche Tipps für den Zugriff auf Ihre SageMaker HyperPod Clusterknoten](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips)
+ [Richten Sie über den Amazon FSx Shared Space eine Mehrbenutzerumgebung ein](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space)
+ [Richten Sie eine Mehrbenutzerumgebung ein, indem Sie HyperPod Cluster in Active Directory integrieren](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory)

## Zusätzliche Tipps für den Zugriff auf Ihre SageMaker HyperPod Clusterknoten
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips"></a>

**Verwenden Sie das von bereitgestellte `easy-ssh.sh` Skript, HyperPod um den Verbindungsvorgang zu vereinfachen**

Um aus dem vorherigen Prozess einen einzeiligen Befehl zu machen, stellt das HyperPod Team das [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh)Skript bereit, das Ihre Clusterinformationen abruft, sie im SSM-Befehl zusammenfasst und eine Verbindung zum Rechenknoten herstellt. Sie müssen nicht manuell nach den erforderlichen HyperPod Clusterinformationen suchen, da dieses Skript ausgeführt wird `describe-cluster` und die Informationen, die für die Ausführung des SSM-Befehls benötigt werden, `list-cluster-nodes` befiehlt und analysiert. Die folgenden Beispielbefehle veranschaulichen die Ausführung des [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh)-Skripts. Wenn es erfolgreich ausgeführt wird, werden Sie als Root-Benutzer mit dem Cluster verbunden. Außerdem wird ein Codeausschnitt gedruckt, um SSH einzurichten, indem der HyperPod Cluster über einen SSM-Proxy als Remote-Host hinzugefügt wird. Durch die Einrichtung von SSH können Sie Ihre lokale Entwicklungsumgebung wie Visual Studio Code mit dem Cluster verbinden. HyperPod 

```
$ 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: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

Beachten Sie, dass Sie dadurch zunächst als Root-Benutzer verbunden werden. Bevor Sie Aufträge ausführen, wechseln Sie zum `ubuntu`-Benutzer, indem Sie den folgenden Befehl ausführen.

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

**Richten Sie den einfachen Zugriff mit SSH ein, indem Sie den HyperPod Rechenknoten als Remote-Host verwenden**

Um den Zugriff auf den Rechenknoten mithilfe von SSH von einem lokalen Computer aus weiter zu vereinfachen, gibt das `easy-ssh.sh` Skript einen Codeausschnitt zur Einrichtung des HyperPod Clusters als Remote-Host aus, wie im vorherigen Abschnitt gezeigt. Das Code-Snippet wird automatisch generiert, damit Sie es direkt zur `~/.ssh/config`-Datei auf Ihrem lokalen Gerät hinzufügen können. Das folgende Verfahren zeigt, wie Sie den einfachen Zugriff mithilfe von SSH über den SSM-Proxy einrichten, sodass Sie oder Ihre Clusterbenutzer direkt eine Verbindung `ssh <cluster-name>` zum Clusterknoten herstellen können. HyperPod 

1. Fügen Sie auf Ihrem lokalen Gerät den HyperPod Rechenknoten mit einem Benutzernamen als Remote-Host zur `~/.ssh/config` Datei hinzu. Der folgende Befehl zeigt, wie der automatisch generierte Codeausschnitt aus dem `easy-ssh.sh`-Skript an die `~/.ssh/config`-Datei angefügt wird. Stellen Sie sicher, dass Sie es aus der automatisch generierten Ausgabe des `easy-ssh.sh`-Skripts kopieren, das die richtigen Clusterinformationen enthält.

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

1. Fügen Sie auf dem HyperPod Clusterknoten den öffentlichen Schlüssel auf Ihrem lokalen Gerät zur `~/.ssh/authorized_keys` Datei auf dem HyperPod Clusterknoten hinzu.

   1. Drucken Sie den öffentlichen Schlüsseldatei auf Ihrem lokalen Computer.

      ```
      $ cat ~/.ssh/id_rsa.pub
      ```

      Dies sollte Ihren Schlüssel zurückgeben. Kopieren Sie die Ausgabe dieses Befehls. 

      (Optional) Wenn Sie keinen öffentlichen Schlüssel haben, erstellen Sie einen, indem Sie den folgenden Befehl ausführen.

      ```
      $ ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
      ```

   1. Stellen Sie eine Verbindung zum Clusterknoten her und wechseln Sie zum Benutzer, um den Schlüssel hinzuzufügen. Der folgende Befehl ist ein Beispiel für den Zugriff als `ubuntu`-Benutzer. Ersetzen Sie `ubuntu` durch den Benutzernamen, für den Sie den einfachen Zugriff mit SSH einrichten möchten.

      ```
      $ ./easy-ssh.sh -c <node-group> <cluster-name>
      $ sudo su - ubuntu
      ubuntu@ip-111-22-333-444:/usr/bin#
      ```

   1. Öffnen Sie die `~/.ssh/authorized_keys`-Datei und fügen Sie den öffentlichen Schlüssel am Ende der Datei hinzu.

      ```
      ubuntu@ip-111-22-333-444:/usr/bin# vim ~/.ssh/authorized_keys
      ```

Nachdem Sie die Einrichtung abgeschlossen haben, können Sie als Benutzer eine Verbindung zum HyperPod Clusterknoten herstellen, indem Sie einen vereinfachten SSH-Befehl wie folgt ausführen.

```
$ ssh <cluster-name>
ubuntu@ip-111-22-333-444:/usr/bin#
```

Sie können den Host auch für die Remote-Entwicklung von einer IDE auf Ihrem lokalen Gerät aus verwenden, z. B. [Visual Studio Code Remote – SSH](https://code.visualstudio.com/docs/remote/ssh).

## Richten Sie über den Amazon FSx Shared Space eine Mehrbenutzerumgebung ein
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space"></a>

Sie können den Amazon FSx Shared Space verwenden, um eine Mehrbenutzerumgebung in einem Slurm-Cluster auf zu verwalten. SageMaker HyperPod Wenn Sie Ihren Slurm-Cluster FSx während der HyperPod Cluster-Erstellung mit Amazon konfiguriert haben, ist dies eine gute Option, um Workspace für Ihre Cluster-Benutzer einzurichten. Erstellen Sie einen neuen Benutzer und richten Sie das Home-Verzeichnis für den Benutzer im FSx gemeinsamen Amazon-Dateisystem ein.

**Tipp**  
Damit Benutzer über ihren Benutzernamen und dedizierte Verzeichnisse auf Ihren Cluster zugreifen können, sollten Sie sie auch mit IAM-Rollen oder Benutzern verknüpfen, indem Sie sie gemäß den Anweisungen in **Option 2** von Schritt 5 unter dem Verfahren **So aktivieren Sie die Unterstützung von „Ausführen als“ für verwaltete Linux- und macOS-Knoten** im AWS Systems Manager -Benutzerhandbuch.[https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html) Siehe auch [Einrichtung AWS Systems Manager und Ausführung als für die Cluster-Benutzerzugriffskontrolle](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

**Um eine Mehrbenutzer-Umgebung einzurichten und gleichzeitig einen Slurm-Cluster zu erstellen SageMaker HyperPod**

Das SageMaker HyperPod Serviceteam stellt ein Skript [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh)als Teil der Script-Beispiele für den Basislebenszyklus zur Verfügung. 

1. Bereiten Sie eine Textdatei mit dem Namen vor `shared_users.txt`, die Sie im folgenden Format erstellen müssen. Die erste Spalte ist für Benutzernamen, die zweite Spalte für eindeutige Benutzer IDs und die dritte Spalte für die Benutzerverzeichnisse im FSx gemeinsamen Amazon-Bereich.

   ```
   username1,uid1,/fsx/username1
   username2,uid2,/fsx/username2
   ...
   ```

1. Stellen Sie sicher, dass Sie die [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh)Dateien `shared_users.txt` und in den S3-Bucket für HyperPod Lifecycle-Skripte hochladen. Während die Clustererstellung, die Clusteraktualisierung oder die Cluster-Softwareaktualisierung läuft, liest [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh) die Daten in `shared_users.txt` und richtet die Benutzerverzeichnisse ordnungsgemäß ein.

**Um neue Benutzer zu erstellen und sie zu einem bestehenden Slurm-Cluster hinzuzufügen, der auf läuft SageMaker HyperPod **

1. Führen Sie auf dem Hauptknoten den folgenden Befehl aus, um ein Skript zu speichern, das beim Erstellen eines Benutzers hilft. Stellen Sie sicher, dass Sie dies mit Sudo-Berechtigungen ausführen.

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

1. Führen Sie das Skript mit dem folgenden Befehl aus. Sie werden aufgefordert, den Namen eines Benutzers und die Anzahl der Rechenknoten hinzuzufügen, auf die der Benutzer zugreifen kann.

   ```
   $ bash create-user.sh
   ```

1. Testen Sie den Benutzer, indem Sie die folgenden Befehle ausführen. 

   ```
   $ sudo su - <user> && ssh $(srun hostname)
   ```

1. Fügen Sie die Benutzerinformationen zur `shared_users.txt`-Datei hinzu, sodass der Benutzer auf allen neuen Rechenknoten oder neuen Clustern erstellt wird.

## Richten Sie eine Mehrbenutzerumgebung ein, indem Sie HyperPod Cluster in Active Directory integrieren
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory"></a>

In praktischen Anwendungsfällen werden HyperPod Cluster in der Regel von mehreren Benutzern verwendet: Forschern für maschinelles Lernen (ML), Softwareingenieuren, Datenwissenschaftlern und Clusteradministratoren. Sie bearbeiten ihre eigenen Dateien und führen ihre eigenen Aufträge aus, ohne sich gegenseitig bei der Arbeit zu beeinträchtigen. Um eine Mehrbenutzerumgebung einzurichten, verwenden Sie den Linux-Benutzer- und Gruppenmechanismus, um mithilfe von Lebenszyklusskripten statisch mehrere Benutzer für jede Instance zu erstellen. Der Nachteil dieses Ansatzes besteht jedoch darin, dass Sie Benutzer- und Gruppeneinstellungen über mehrere Instances im Cluster hinweg duplizieren müssen, um bei Aktualisierungen wie dem Hinzufügen, Bearbeiten und Entfernen von Benutzern eine konsistente Konfiguration über alle Instances hinweg zu gewährleisten.

Um dieses Problem zu lösen, können Sie [Lightweight Directory Access Protocol (LDAP) und LDAP](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) [Over TLS/SSL (LDAPS)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) verwenden, um die Integration in einen Directory Service wie den [Verzeichnisdienst für Microsoft AWS Active Directory](https://aws.amazon.com/directoryservice/) zu ermöglichen. Weitere Informationen zur Einrichtung von Active Directory und einer Mehrbenutzerumgebung in einem HyperPod Cluster finden Sie im Blogbeitrag [Integrieren von HyperPod Clustern mit Active Directory für](https://aws.amazon.com/blogs/machine-learning/integrate-hyperpod-clusters-with-active-directory-for-seamless-multi-user-login/) eine nahtlose Mehrbenutzeranmeldung.