

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

# SageMaker HyperPod 클러스터 노드에 액세스
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes"></a>

형식의 SageMaker HyperPod 클러스터 호스트 이름으로 AWS CLI 명령을 실행하여 AWS Systems Manager (SSM)`aws ssm start-session`을 통해 **InService** 클러스터에 액세스할 수 있습니다`sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. [SageMaker HyperPod 콘솔](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters)에서 클러스터 ID, 인스턴스 ID 및 인스턴스 그룹 이름을 검색하거나 [AWS CLI SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes)의 명령에서 `describe-cluster` 및 `list-cluster-nodes`을 실행하여 검색할 수 있습니다. 예를 들어 클러스터 ID가 `aa11bbbbb222`이고 클러스터 노드 이름이 이고 `controller-group`클러스터 노드 ID가 `i-111222333444555aa`인 경우SSM `start-session` 명령은 다음과 같아야 합니다.

**참고**  
사용자에게 HyperPod 클러스터 노드에 대한 액세스 권한을 부여하면 사용자가 노드에 사용자 관리형 소프트웨어를 설치하고 작동할 수 있습니다. 사용자에 대해 최소 권한 원칙을 유지해야 합니다.  
를 설정하지 않은 경우에 제공된 지침을 AWS Systems Manager따릅니다[클러스터 사용자 액세스 제어를 위한 설정 AWS Systems Manager 및 Run As](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#
```

참고로 처음에는 루트 사용자로 연결됩니다. 작업을 실행하기 전에 다음 명령을 실행하여 `ubuntu` 사용자로 전환합니다.

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

HyperPod 클러스터의 실제 사용을 위한 고급 설정은 다음 주제를 참조하세요.

**Topics**
+ [SageMaker HyperPod 클러스터 노드에 액세스하기 위한 추가 팁](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips)
+ [다중 사용자 환경 설정](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user)

## SageMaker HyperPod 클러스터 노드에 액세스하기 위한 추가 팁
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips"></a>

**HyperPod에서 제공하는 `easy-ssh.sh` 스크립트를 사용하여 연결 프로세스 간소화**

이전 프로세스를 단일 라인 명령으로 만들기 위해 HyperPod 팀은 클러스터 정보를 검색하고, 이를 SSM 명령으로 집계하고, 컴퓨팅 노드에 연결하는 [`easy-ssh.sh`](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh) 스크립트를 제공합니다. 이 스크립트는 `describe-cluster` 및 `list-cluster-nodes` 명령을 실행하고 SSM 명령을 완료하는 데 필요한 정보를 구문 분석하므로 필요한 HyperPod 클러스터 정보를 수동으로 찾을 필요가 없습니다. 다음 예제에서는 [`easy-ssh.sh`](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-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
   ```

1. HyperPod 클러스터 노드에서 로컬 디바이스의 퍼블릭 키를 HyperPod 클러스터 노드의 `~/.ssh/authorized_keys` 파일에 추가합니다.

   1. 로컬 시스템에서 퍼블릭 키 파일을 인쇄합니다.

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

      이렇게 하면 키가 반환됩니다. 이 명령의 출력을 복사합니다.

      (선택 사항) 퍼블릭 키가 없는 경우 다음 명령을 실행하여 퍼블릭 키를 생성합니다.

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

   1. 클러스터 노드에 연결하고 사용자로 전환하여 키를 추가합니다. 다음 명령은 `ubuntu` 사용자로 액세스하는 예제입니다. SSH를 사용하여 쉽게 액세스할 수 있도록 설정할 사용자 이름으로 `ubuntu`를 바꿉니다.

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

   1. `~/.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](https://code.visualstudio.com/docs/remote/ssh) 와 같은 로컬 디바이스의 IDE에서 원격으로 개발할 수 있습니다.

## 다중 사용자 환경 설정
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user"></a>

다중 사용자 환경(IAM 보안 주체에 사용자 매핑 및 Active Directory와의 통합 포함)에 대한 사용자를 생성하고 관리하려면 섹션을 참조하세요[SageMaker HyperPod Slurm 클러스터의 사용자 관리](sagemaker-hyperpod-slurm-user-management.md).