

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

# 독립 실행형 인스턴스를 AWS PCS 로그인 노드로 사용
<a name="working-with_login-nodes_standalone"></a>

 AWS PCS 클러스터의 Slurm 스케줄러와 상호 작용하도록 독립 EC2 인스턴스를 설정할 수 있습니다. 이는 AWS PCS 클러스터에서 작동하지만 AWS PCS 관리 외부에서 작동하는 로그인 노드, 워크스테이션 또는 전용 워크플로 관리 호스트를 생성하는 데 유용합니다. 이렇게 하려면 각 독립 실행형 인스턴스가 다음을 수행해야 합니다.

1. 호환되는 Slurm 소프트웨어 버전이 설치되어 있어야 합니다.

1.  AWS PCS 클러스터의 Slurmctld 엔드포인트에 연결할 수 있어야 합니다.

1. Slurm Auth 및 Cred Kiosk Daemon(`sackd`)이 AWS PCS 클러스터의 엔드포인트 및 보안 암호로 올바르게 구성되도록 합니다. 자세한 내용은 Slurm 설명서의 [sackd](https://slurm.schedmd.com/sackd.html)를 참조하세요.

 이 자습서는 AWS PCS 클러스터에 연결하는 독립 인스턴스를 구성하는 데 도움이 됩니다.

**Contents**
+ [1단계 - 대상 AWS PCS 클러스터의 주소 및 보안 암호 검색](working-with_login-nodes_standalone_get-addr.md)
+ [2단계 - EC2 인스턴스 시작](working-with_login-nodes_standalone_launch.md)
+ [3단계 - 인스턴스에 Slurm 설치](working-with_login-nodes_standalone_install-slurm.md)
+ [4단계 - 클러스터 보안 암호 검색 및 저장](working-with_login-nodes_standalone_get-secret.md)
+ [5단계 - AWS PCS 클러스터에 대한 연결 구성](working-with_login-nodes_standalone_configure-connection.md)
+ [6단계 - (선택 사항) 연결 테스트](working-with_login-nodes_standalone_test.md)

# 1단계 - 대상 AWS PCS 클러스터의 주소 및 보안 암호 검색
<a name="working-with_login-nodes_standalone_get-addr"></a>

다음 명령과 AWS CLI 함께를 사용하여 대상 AWS PCS 클러스터에 대한 세부 정보를 검색합니다. 명령을 실행하기 전에 다음과 같은 바꾸기를 합니다.
+ *region-code*를 대상 클러스터가 실행 AWS 리전 중인 로 바꿉니다.
+ *cluster-ident*를 대상 클러스터의 이름 또는 식별자로 바꿉니다.

```
aws pcs get-cluster --region region-code --cluster-identifier cluster-ident
```

명령은이 예제와 유사한 출력을 반환합니다.

```
{
    "cluster": {
        "name": "get-started",
        "id": "pcs_123456abcd",
        "arn": "arn:aws:pcs:us-east-1:111122223333:cluster/pcs_123456abcd",
        "status": "ACTIVE",
        "createdAt": "2024-12-17T21:03:52+00:00",
        "modifiedAt": "2024-12-17T21:03:52+00:00",
        "scheduler": {
            "type": "SLURM",
            "version": "25.05"
        },
        "size": "SMALL",
        "slurmConfiguration": {
            "authKey": {
                "secretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:pcs!slurm-secret-pcs_123456abcd-a12ABC",
                "secretVersion": "ef232370-d3e7-434c-9a87-ec35c1987f75"
            }
        },
        "networking": {
            "subnetIds": [
                "subnet-0123456789abcdef0"
            ],
            "securityGroupIds": [
                "sg-0123456789abcdef0"
            ]
        },
        "endpoints": [
            {
                "type": "SLURMCTLD",
                "privateIpAddress": "10.3.149.220",
                "port": "6817"
            }
        ]
    }
}
```

이 샘플에서 클러스터 Slurm 컨트롤러 엔드포인트의 IP 주소는 `10.3.149.220` 이고 포트에서 실행 중입니다`6817`. `secretArn`는 이후 단계에서 클러스터 보안 암호를 검색하는 데 사용됩니다. IP 주소와 포트는 이후 단계에서 `sackd` 서비스를 구성하는 데 사용됩니다.

# 2단계 - EC2 인스턴스 시작
<a name="working-with_login-nodes_standalone_launch"></a>

**EC2 인스턴스 시작**

1. [Amazon EC2 콘솔](https://console.aws.amazon.com/ec2)을 엽니다.

1. 탐색 창에서 **Instances**(인스턴스)를 선택한 다음에 **Launch Instances**(인스턴스 시작)를 선택하여 새 인스턴스 시작 마법사를 엽니다.

1. (선택 사항) **이름 및 태그** 섹션에서와 같은 인스턴스의 이름을 제공합니다`PCS-LoginNode`. 이름은 인스턴스에 리소스 태그(`Name=PCS-LoginNode`)로 할당됩니다.

1. **애플리케이션 및 OS 이미지** 섹션에서 AWS PCS에서 지원하는 운영 체제 중 하나의 AMI를 선택합니다. 자세한 내용은 [지원되는 운영 체제](working-with_ami_installers.md#working-with_ami_installers_os) 단원을 참조하십시오.

1. **인스턴스 유형** 섹션에서 지원되는 인스턴스 유형을 선택합니다. 자세한 내용은 [지원되는 인스턴스 유형](working-with_ami_installers.md#working-wth_ami_installers_instance-types) 단원을 참조하십시오.

1. **키 페어** 섹션에서 인스턴스에 사용할 SSH 키 페어를 선택합니다.

1. **네트워크 설정** 섹션에서:

   1. **편집**을 선택합니다.

     1.  AWS PCS 클러스터의 VPC를 선택합니다.

     1. **방화벽(보안 그룹)**에서 **기존 보안 그룹 선택**을 선택합니다.

        1. 인스턴스와 대상 AWS PCS 클러스터의 Slurm 컨트롤러 간의 트래픽을 허용하는 보안 그룹을 선택합니다. 자세한 내용은 [보안 그룹 요구 사항 및 고려 사항](working-with_networking_sg.md#working-with_networking_sg-requirements) 단원을 참조하십시오.

        1. (선택 사항) 인스턴스에 대한 인바운드 SSH 액세스를 허용하는 보안 그룹을 선택합니다.

1. **스토리지** 섹션에서 필요에 따라 스토리지 볼륨을 구성합니다. 애플리케이션과 라이브러리를 설치하여 사용 사례를 활성화할 수 있도록 충분한 공간을 구성해야 합니다.

1.  **고급**에서 클러스터 보안 암호에 대한 액세스를 허용하는 IAM 역할을 선택합니다. 자세한 내용은 [Slurm 클러스터 보안 암호 가져오기](working-with_clusters_secrets_get.md) 단원을 참조하십시오.

1.  **요약** 창에서 **인스턴스 시작**을 선택합니다.

# 3단계 - 인스턴스에 Slurm 설치
<a name="working-with_login-nodes_standalone_install-slurm"></a>

인스턴스가 시작되고 활성화되면 원하는 메커니즘을 사용하여 인스턴스에 연결합니다. 에서 제공하는 Slurm 설치 관리자 AWS 를 사용하여 인스턴스에 Slurm을 설치합니다. 자세한 내용은 [Slurm 설치 관리자](working-with_ami_installers.md#working-with_ami_installers_slurm) 단원을 참조하십시오.

Slurm 설치 관리자를 다운로드하고 압축을 푼 다음 `installer.sh` 스크립트를 사용하여 Slurm을 설치합니다. 자세한 내용은 [3단계 - Slurm 설치](working-with_ami_custom_install-slurm.md) 단원을 참조하십시오.

# 4단계 - 클러스터 보안 암호 검색 및 저장
<a name="working-with_login-nodes_standalone_get-secret"></a>

이 지침에는가 필요합니다 AWS CLI. 자세한 내용은 [버전 2 사용 설명서의의 최신 버전 설치 또는 업데이트를 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) *AWS Command Line Interface 참조하세요*.

다음 명령을 사용하여 클러스터 보안 암호를 저장합니다.
+ Slurm에 대한 구성 디렉터리를 생성합니다.

  ```
  sudo mkdir -p /etc/slurm
  ```
+ 클러스터 보안 암호를 검색, 디코딩 및 저장합니다. 이 명령을 실행하기 전에 *region-code*를 대상 클러스터가 실행 중인 리전으로 바꾸고 *secret-arn*을 [1단계](working-with_login-nodes_standalone_get-addr.md)에서 `secretArn` 검색된 값으로 바꿉니다.

  ```
  aws secretsmanager get-secret-value \
   --region region-code \
   --secret-id 'secret-arn' \
   --version-stage AWSCURRENT \
   --query 'SecretString' \
   --output text | base64 -d | sudo tee /etc/slurm/slurm.key
  ```
**주의**  
다중 사용자 환경에서는 인스턴스에 액세스할 수 있는 모든 사용자가 인스턴스 메타데이터 서비스(IMDS)에 액세스할 수 있는 경우 클러스터 보안 암호를 가져올 수 있습니다. 이렇게 하면 다른 사용자를 가장할 수 있습니다. IMDS에 대한 액세스를 루트 또는 관리 사용자로만 제한하는 것이 좋습니다. 또는 인스턴스 프로파일에 의존하지 않는 다른 메커니즘을 사용하여 보안 암호를 가져오고 구성하는 것이 좋습니다.
+ Slurm 키 파일에 대한 소유권 및 권한을 설정합니다.

  ```
  sudo chmod 0600 /etc/slurm/slurm.key
  sudo chown slurm:slurm /etc/slurm/slurm.key
  ```
**참고**  
Slurm 키는 `sackd` 서비스가 실행되는 사용자 및 그룹이 소유해야 합니다.

# 5단계 - AWS PCS 클러스터에 대한 연결 구성
<a name="working-with_login-nodes_standalone_configure-connection"></a>

 AWS PCS 클러스터에 대한 연결을 설정하려면 다음 단계에 따라 `sackd`를 시스템 서비스로 시작합니다.

**참고**  
 Slurm 25.05 이상을 사용하는 경우 스크립트를 사용하여 로그인 노드를 설정하여 대신 여러 클러스터에 연결할 수 있습니다. 자세한 내용은 [독립 실행형 로그인 노드를 AWS PCS의 여러 클러스터에 연결](multi-cluster-login-script.md) 단원을 참조하십시오.

1. 다음 명령을 사용하여 `sackd` 서비스에 대한 환경 파일을 설정합니다. 명령을 실행하기 전에 *ip-address* 및 *port*를 [1단계](working-with_login-nodes_standalone_get-addr.md)의 엔드포인트에서 검색된 값으로 바꿉니다.

   ```
   sudo echo "SACKD_OPTIONS='--conf-server=ip-address:port'" > /etc/sysconfig/sackd
   ```

1. `sackd` 프로세스 관리를 위한 `systemd` 서비스 파일을 생성합니다.

   ```
   sudo cat << EOF > /etc/systemd/system/sackd.service
   [Unit]
   Description=Slurm auth and cred kiosk daemon
   After=network-online.target remote-fs.target
   Wants=network-online.target
   ConditionPathExists=/etc/sysconfig/sackd
   
   [Service]
   Type=notify
   EnvironmentFile=/etc/sysconfig/sackd
   User=slurm
   Group=slurm
   RuntimeDirectory=slurm
   RuntimeDirectoryMode=0755
   ExecStart=/opt/aws/pcs/scheduler/slurm-25.05/sbin/sackd --systemd \$SACKD_OPTIONS
   ExecReload=/bin/kill -HUP \$MAINPID
   KillMode=process
   LimitNOFILE=131072
   LimitMEMLOCK=infinity
   LimitSTACK=infinity
   
   [Install]
   WantedBy=multi-user.target
   EOF
   ```

1. `sackd` 서비스 파일의 소유권을 설정합니다.

   ```
   sudo chown root:root /etc/systemd/system/sackd.service && \
       sudo chmod 0644 /etc/systemd/system/sackd.service
   ```

1. `sackd` 서비스를 활성화합니다.

   ```
   sudo systemctl daemon-reload && sudo systemctl enable sackd
   ```

1. `sackd` 서비스를 시작합니다.

   ```
   sudo systemctl start sackd
   ```

# 6단계 - (선택 사항) 연결 테스트
<a name="working-with_login-nodes_standalone_test"></a>

`sackd` 서비스가 실행 중인지 확인합니다. 샘플 출력은 다음과 같습니다. 오류가 있는 경우 일반적으로 여기에 표시됩니다.

```
[root@ip-10-3-27-112 ~]# systemctl status sackd
[x] sackd.service - Slurm auth and cred kiosk daemon
   Loaded: loaded (/etc/systemd/system/sackd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2024-12-17 16:34:55 UTC; 8s ago
 Main PID: 9985 (sackd)
   CGroup: /system.slice/sackd.service
           └─9985 /opt/aws/pcs/scheduler/slurm-25.05/sbin/sackd --systemd --conf-server=10.3.149.220:6817

Dec 17 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Starting Slurm auth and cred kiosk daemon...
Dec 17 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Started Slurm auth and cred kiosk daemon.
Dec 17 16:34:55 ip-10-3-27-112.ec2.internal sackd[9985]: sackd: running
```

`sinfo` 및와 같은 Slurm 클라이언트 명령을 사용하여 클러스터에 대한 연결이 작동하는지 확인합니다`squeue`. 다음은의 출력 예제입니다`sinfo`.

```
[root@ip-10-3-27-112 ~]# /opt/aws/pcs/scheduler/slurm-25.05/bin/sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
all up infinite 4 idle~ compute-[1-4]
```

작업을 제출할 수도 있어야 합니다. 예를 들어이 예제와 유사한 명령은 클러스터의 노드 1개에서 대화형 작업을 시작합니다.

```
/opt/aws/pcs/scheduler/slurm-25.05/bin/srun --nodes=1 -p all --pty bash -i
```