Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Akses node SageMaker HyperPod cluster Anda
Anda dapat mengakses InServicecluster Anda melalui AWS Systems Manager (SSM) dengan menjalankan AWS CLI perintah aws ssm start-session
dengan nama host SageMaker HyperPod cluster dalam formatsagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]
. Anda dapat mengambil ID cluster, ID instance, dan nama grup instance dari SageMaker HyperPod konsol atau dengan menjalankan describe-cluster
dan list-cluster-nodes
dari AWS CLI perintah untuk SageMaker HyperPod. Misalnya, jika ID cluster Andaaa11bbbbb222
, nama node cluster adalahcontroller-group
, dan ID node cluster adalahi-111222333444555aa
, SSM start-session
perintah harus sebagai berikut.
catatan
Jika Anda belum menyiapkan AWS Systems Manager, ikuti instruksi yang diberikan diMenyiapkan AWS Systems Manager dan Menjalankan Sebagai untuk kontrol akses pengguna 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#
Perhatikan bahwa ini awalnya menghubungkan Anda sebagai pengguna root. Sebelum menjalankan pekerjaan, beralih ke ubuntu
pengguna dengan menjalankan perintah berikut.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
Untuk pengaturan lanjutan untuk penggunaan HyperPod klaster secara praktis, lihat topik berikut.
Topik
Kiat tambahan untuk mengakses node SageMaker HyperPod cluster Anda
Gunakan easy-ssh.sh
skrip yang disediakan oleh HyperPod untuk menyederhanakan proses koneksi
Untuk membuat proses sebelumnya menjadi perintah satu baris, HyperPod tim menyediakan easy-ssh.sh
describe-cluster
dan list-cluster-nodes
memerintahkan dan mem-parsing informasi yang diperlukan untuk menyelesaikan SSM perintah. Contoh perintah berikut menunjukkan bagaimana menjalankan 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#
Perhatikan bahwa ini awalnya menghubungkan Anda sebagai pengguna root. Sebelum menjalankan pekerjaan, beralih ke ubuntu
pengguna dengan menjalankan perintah berikut.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
Siapkan akses mudah SSH dengan menggunakan node HyperPod komputasi sebagai host jarak jauh
Untuk lebih menyederhanakan akses ke node komputasi menggunakan SSH dari mesin lokal, easy-ssh.sh
skrip mengeluarkan potongan kode pengaturan HyperPod cluster sebagai host jarak jauh seperti yang ditunjukkan pada bagian sebelumnya. Cuplikan kode dibuat secara otomatis untuk membantu Anda menambahkan secara langsung ke ~/.ssh/config
file di perangkat lokal Anda. Prosedur berikut menunjukkan cara mengatur agar akses mudah menggunakan SSH melalui SSM proxy, sehingga Anda atau pengguna cluster Anda dapat langsung menjalankan ssh
untuk terhubung ke node HyperPod cluster.<cluster-name>
-
Di perangkat lokal Anda, tambahkan node HyperPod komputasi dengan nama pengguna sebagai host jarak jauh ke
~/.ssh/config
file. Perintah berikut menunjukkan cara menambahkan cuplikan kode yang dibuat secara otomatis darieasy-ssh.sh
skrip ke file.~/.ssh/config
Pastikan Anda menyalinnya dari outputeasy-ssh.sh
skrip yang dihasilkan secara otomatis yang memiliki informasi cluster yang benar.$
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 -
Pada node HyperPod cluster, tambahkan kunci publik pada perangkat lokal Anda ke
~/.ssh/authorized_keys
file di node HyperPod cluster.-
Cetak file kunci publik di mesin lokal Anda.
$
cat ~/.ssh/id_rsa.pub
Ini harus mengembalikan kunci Anda. Salin output dari perintah ini.
(Opsional) Jika Anda tidak memiliki kunci publik, buat satu dengan menjalankan perintah berikut.
$
ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
-
Connect ke node cluster dan beralih ke pengguna untuk menambahkan kunci. Perintah berikut adalah contoh mengakses sebagai
ubuntu
pengguna. Gantiubuntu
ke nama pengguna yang ingin Anda atur akses mudahnyaSSH.$
./easy-ssh.sh -c
<node-group> <cluster-name>
$
sudo su -
ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
-
Buka
~/.ssh/authorized_keys
file dan tambahkan kunci publik di akhir file.ubuntu@ip-111-22-333-444:/usr/bin#
vim ~/.ssh/authorized_keys
-
Setelah Anda selesai menyiapkan, Anda dapat terhubung ke node HyperPod cluster sebagai pengguna dengan menjalankan SSH perintah yang disederhanakan sebagai berikut.
$
ssh
<cluster-name>
ubuntu@ip-111-22-333-444:/usr/bin#
Selain itu, Anda dapat menggunakan host untuk pengembangan jarak jauh dari perangkat lokal Anda, seperti Visual Studio Code Remote - SSH
Siapkan lingkungan multi-pengguna melalui ruang FSx bersama Amazon
Anda dapat menggunakan ruang FSx bersama Amazon untuk mengelola lingkungan multi-pengguna di klaster Slurm. SageMaker HyperPod Jika Anda telah mengonfigurasi klaster Slurm Anda dengan Amazon FSx selama pembuatan HyperPod klaster, ini adalah opsi yang baik untuk menyiapkan ruang kerja bagi pengguna klaster Anda. Buat pengguna baru dan atur direktori home untuk pengguna di sistem file FSx bersama Amazon.
Tip
Untuk memungkinkan pengguna mengakses klaster Anda melalui nama pengguna dan direktori khusus mereka, Anda juga harus mengaitkannya dengan IAM peran atau pengguna dengan menandai mereka sebagai dipandu di Opsi 2 dari langkah 5 di bawah prosedur Untuk mengaktifkan dukungan Run As untuk Linux dan node terkelola macOS yang disediakan di Turn on Run As support for Linux dan macOS managed nodes di Panduan Pengguna. AWS Systems Manager Lihat juga Menyiapkan AWS Systems Manager dan Menjalankan Sebagai untuk kontrol akses pengguna cluster.
Untuk mengatur lingkungan multi-pengguna sambil membuat klaster Slurm SageMaker HyperPod
Tim SageMaker HyperPod layanan menyediakan skrip add_users.sh
-
Siapkan file teks bernama
shared_users.txt
yang perlu Anda buat dalam format berikut. Kolom pertama adalah untuk nama pengguna, kolom kedua untuk pengguna unikIDs, dan kolom ketiga untuk direktori pengguna di ruang FSx bersama Amazon.username1,uid1,/fsx/username1 username2,uid2,/fsx/username2 ...
-
Pastikan Anda mengunggah
add_users.sh
file shared_users.txt
dan ke bucket S3 untuk skrip HyperPod siklus hidup. Saat pembuatan cluster, pembaruan cluster, atau pembaruan perangkat lunak cluster sedang berlangsung,add_users.sh
pembacaan di shared_users.txt
dan mengatur direktori pengguna dengan benar.
Untuk membuat pengguna baru dan menambahkan ke cluster Slurm yang ada yang berjalan SageMaker HyperPod
-
Pada node kepala, jalankan perintah berikut untuk menyimpan skrip yang membantu membuat pengguna. Pastikan Anda menjalankan ini dengan izin 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 -
Jalankan skrip dengan perintah berikut. Anda akan diminta untuk menambahkan nama pengguna dan jumlah node komputasi yang ingin Anda izinkan pengguna untuk mengakses.
$
bash create-user.sh
-
Uji pengguna dengan menjalankan perintah berikut.
$
sudo su -
<user>
&& ssh $(srun hostname) -
Tambahkan informasi pengguna ke
shared_users.txt
file, sehingga pengguna akan dibuat pada node komputasi baru atau cluster baru.
Siapkan lingkungan multi-pengguna dengan mengintegrasikan HyperPod cluster dengan Active Directory
Dalam kasus penggunaan praktis, HyperPod cluster biasanya digunakan oleh banyak pengguna: peneliti pembelajaran mesin (ML), insinyur perangkat lunak, ilmuwan data, dan administrator cluster. Mereka mengedit file mereka sendiri dan menjalankan pekerjaan mereka sendiri tanpa mempengaruhi pekerjaan masing-masing. Untuk menyiapkan lingkungan multi-pengguna, gunakan mekanisme pengguna dan grup Linux untuk membuat beberapa pengguna secara statis pada setiap instance melalui skrip siklus hidup. Namun, kelemahan dari pendekatan ini adalah Anda perlu menduplikasi pengaturan pengguna dan grup di beberapa instance di cluster untuk menjaga konfigurasi yang konsisten di semua instance saat Anda membuat pembaruan seperti menambahkan, mengedit, dan menghapus pengguna.
Untuk mengatasi ini, Anda dapat menggunakan Lightweight Directory Access Protocol (LDAP)