

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

# AWS PCS에서 작업 관리에 Slurm REST API 사용
<a name="slurm-rest-api-use"></a>

## Slurm REST API 개요
<a name="slurm-rest-api-use-overview"></a>

Slurm REST API는 HTTP 요청을 통해 클러스터 관리 함수에 프로그래밍 방식으로 액세스할 수 있습니다. 이러한 주요 특성을 이해하면 API를 AWS PCS와 함께 효과적으로 사용하는 데 도움이 됩니다.
+ **액세스 프로토콜**: API는 클러스터의 프라이빗 네트워크 내에서 통신하기 위해 HTTP(HTTPS 아님)를 사용합니다.
+ **연결 세부 정보**: 클러스터의 프라이빗 IP 주소와 `slurmrestd` 포트(일반적으로 6820)를 사용하여 API에 액세스합니다. 전체 기본 URL 형식은 입니다`http://<privateIpAddress>:6820`.
+ **API 버전 관리**: API 버전은 Slurm 설치에 해당합니다. Slurm 25.05의 경우 버전 **v0.0.43**을 사용합니다. 버전 번호는 각 Slurm 릴리스에 따라 변경됩니다. [Slurm 릴리스 정보](https://slurm.schedmd.com/release_notes.html)에서 현재 지원되는 API 버전을 찾을 수 있습니다.
+ **URL 구조**: Slurm REST API의 URL 구조는 입니다`http://<privateIpAddress>:<port>/<api-version>/<endpoint>`. REST API 엔드포인트에 대한 자세한 사용 정보는 [Slurm 설명서](https://slurm.schedmd.com/rest_api.html)에서 확인할 수 있습니다.

## 사전 조건
<a name="slurm-rest-api-use-prerequisites"></a>

Slurm REST API를 사용하기 전에 다음을 확인해야 합니다.
+ **클러스터 구성**: Slurm 25.05 이상 및 REST API가 활성화된 AWS PCS 클러스터.
+ **인증**: 적절한 사용자 자격 증명 클레임이 있는 유효한 JWT 토큰입니다.
+ **네트워크 액세스**: 포트 6820을 허용하는 보안 그룹을 사용한 클러스터의 VPC 내 연결.

## 절차
<a name="slurm-rest-api-use-procedure"></a>

**REST API를 사용하여 작업을 제출하려면**

1. 필요한 파라미터를 사용하여 작업 제출 요청을 생성합니다.

   ```
   {
     "job": {
       "name": "my-job",
       "partition": "compute",
       "nodes": 1,
       "tasks": 1,
       "script": "#!/bin/bash\necho 'Hello from Slurm REST API'"
     }
   }
   ```

1. HTTP POST 요청을 사용하여 작업을 제출합니다.

   ```
   curl -X POST \
     -H "Authorization: Bearer <jwt>" \
     -H "Content-Type: application/json" \
     -d '<job-json>' \
     https://<privateIpAddress>:6820/slurm/v0.0.43/job/submit
   ```

1. 모니터링 목적으로 응답에 반환된 작업 ID를 기록해 둡니다.

**작업 상태를 모니터링하려면**

1. 특정 작업에 대한 정보를 가져옵니다.

   ```
   curl -X GET -H "Authorization: Bearer <jwt>" \
       https://<privateIpAddress>:6820/slurm/v0.0.43/job/<job-id>
   ```

1. 인증된 사용자의 모든 작업을 나열합니다.

   ```
   curl -X GET -H "Authorization: Bearer <jwt>" \
       https://<privateIpAddress>:6820/slurm/v0.0.43/jobs
   ```

**작업 취소**
+ DELETE 요청을 보내 특정 작업을 취소합니다.

  ```
  curl -X DELETE -H "Authorization: Bearer <jwt>" \
      https://<privateIpAddress>:6820/slurm/v0.0.43/job/<job-id>
  ```