View a markdown version of this page

SageMaker HyperPod クラスターノードへのアクセス - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker HyperPod クラスターノードへのアクセス

( AWS Systems Manager SSM) を使用して InService クラスターにアクセスするには、 形式の SageMaker HyperPod クラスターホスト名aws ssm start-sessionを使用して AWS CLI コマンドを実行しますsagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]。クラスター ID、インスタンス ID、インスタンスグループ名は、SageMaker HyperPod コンソールから、または describe-clusterlist-cluster-nodes を実行して SageMaker HyperPod のAWS CLI コマンドから取得できます。例えば、クラスター ID が aa11bbbbb222、クラスターノード名が controller-group、クラスターノード ID が i-111222333444555aa の場合、SSM start-session コマンドは次のようになります。

注記

HyperPod クラスターノードへのアクセス権をユーザーに付与すると、ユーザーが管理するソフトウェアをノードにインストールして操作できます。ユーザーの最小権限のアクセス許可の原則を維持します。

をセットアップしていない場合は AWS Systems Manager、「」に記載されている手順に従ってくださいクラスターユーザーアクセスコントロールの設定 AWS Systems Manager と Run As

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

これは、最初にユーザーをルートユーザーとして接続する点に注意してください。ジョブを実行する前に、次のコマンドを実行して ubuntu ユーザーに切り替えます。

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

HyperPod クラスターを実際に使用するための詳細設定については、以下のトピックを参照してください。

SageMaker HyperPod クラスターノードにアクセスするためのその他のヒント

HyperPod が提供する easy-ssh.sh スクリプトを使用して接続プロセスを簡素化する

前のプロセスを 1 行のコマンドにするため、HyperPod チームは、クラスター情報を取得してそれを SSM コマンドに集約し、コンピューティングノードに接続する easy-ssh.sh スクリプトを用意しています。このスクリプトは describe-cluster コマンドと list-cluster-nodes コマンドを実行し、SSM コマンドの完了に必要な情報を解析するため、必要な HyperPod クラスター情報を手動で探す必要はありません。次のコマンド例は、easy-ssh.sh スクリプトの実行方法を示しています。正常に実行された場合、ルートユーザーとしてクラスターに接続されます。さらに、SSM プロキシを介してリモートホストとして HyperPod クラスターを追加することにより、コードスニペットが出力されて SSH が設定されます。SSH を設定することで、Visual Studio Code などのローカル開発環境を 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#

これは、最初にユーザーをルートユーザーとして接続する点に注意してください。ジョブを実行する前に、次のコマンドを実行して ubuntu ユーザーに切り替えます。

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

HyperPod コンピューティングノードをリモートホストとして使用して SSH で簡単にアクセスできるように設定する

ローカルマシンから SSH を使用してコンピューティングノードにアクセスする操作をさらに簡素化するため、easy-ssh.sh スクリプトは、前のセクションに示したように、HyperPod クラスターをリモートホストとして設定するコードスニペットを出力します。コードスニペットは、ローカルデバイス上の ~/.ssh/config ファイルに直接追加できるよう自動生成されます。次の手順は、SSM プロキシ経由で SSH を使用して簡単にアクセスできるよう設定する方法を示しています。これにより、お客様またはクラスターユーザー直接 ssh <cluster-name> を実行してが HyperPod クラスターノードに接続可能になります。

  1. ローカルデバイスで、リモートホストとしてユーザー名を使用する HyperPod コンピューティングノードを ~/.ssh/config ファイルに追加します。次のコマンドは、easy-ssh.sh スクリプトから ~/.ssh/config ファイルに自動生成されたコードスニペットを追加する方法を示しています。正しいクラスター情報を持つ easy-ssh.sh スクリプトの自動生成出力からコピーしてください。

    $ 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
  2. HyperPod クラスターノードで、ローカルデバイス上のパブリックキーを HyperPod クラスターノード上の ~/.ssh/authorized_keys ファイルに追加します。

    1. ローカルマシンにパブリックキーファイルを出力します。

      $ cat ~/.ssh/id_rsa.pub

      これにより、キーが返されます。このコマンドの出力をコピーします。

      (オプション) パブリックキーがない場合、次のコマンドを実行して作成します。

      $ ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
    2. クラスターノードに接続し、ユーザーに切り替えてキーを追加します。次のコマンドは、ubuntu ユーザーとしてアクセスする例です。ubuntu を、SSH で簡単アクセスを設定するユーザー名に置き換えます。

      $ ./easy-ssh.sh -c <node-group> <cluster-name> $ sudo su - ubuntu ubuntu@ip-111-22-333-444:/usr/bin#
    3. ~/.ssh/authorized_keys ファイルを開き、ファイルの最後にパブリックキーを追加します。

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

設定が完了したら、次のように簡略化された SSH コマンドを実行することにより、ユーザーとして HyperPod クラスターノードに接続できます。

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

さらに、Visual Studio Code Remote - SSH など、ローカルデバイス上の IDE からリモート開発にホストを使用することもできます。

マルチユーザー環境のセットアップ

マルチユーザー環境 (IAM プリンシパルへのユーザーのマッピングと Active Directory との統合を含む) のユーザーを作成および管理するには、「」を参照してくださいSageMaker HyperPod Slurm クラスターでのユーザー管理