View a markdown version of this page

SageMaker HyperPod 클러스터 노드에 액세스 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SageMaker HyperPod 클러스터 노드에 액세스

형식의 SageMaker HyperPod 클러스터 호스트 이름으로 AWS CLI 명령을 실행하여 AWS Systems Manager (SSM)aws ssm start-session을 통해 InService 클러스터에 액세스할 수 있습니다sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]. SageMaker HyperPod 콘솔에서 클러스터 ID, 인스턴스 ID 및 인스턴스 그룹 이름을 검색하거나 AWS CLI SageMaker HyperPod의 명령에서 describe-clusterlist-cluster-nodes을 실행하여 검색할 수 있습니다. 예를 들어 클러스터 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 스크립트를 사용하여 연결 프로세스 간소화

이전 프로세스를 단일 라인 명령으로 만들기 위해 HyperPod 팀은 클러스터 정보를 검색하고, 이를 SSM 명령으로 집계하고, 컴퓨팅 노드에 연결하는 easy-ssh.sh 스크립트를 제공합니다. 이 스크립트는 describe-clusterlist-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 사용자로 액세스하는 예제입니다. SSH를 사용하여 쉽게 액세스할 수 있도록 설정할 사용자 이름으로 ubuntu를 바꿉니다.

      $ ./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 클러스터의 사용자 관리.