

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

# AWS PCS의 Slurm REST API FAQ
<a name="slurm-rest-api-faq"></a>

이 섹션에서는 AWS PCS의 Slurm REST API에 대해 자주 묻는 질문에 답변합니다.

**Slurm REST API란 무엇입니까?**  
Slurm REST API는 Slurm 워크로드 관리자와 프로그래밍 방식으로 상호 작용할 수 있는 HTTP 인터페이스입니다. GET, POST 및 DELETE와 같은 표준 HTTP 메서드를 사용하여 클러스터에 대한 명령줄 액세스 없이 작업을 제출하고 클러스터 상태를 모니터링하며 리소스를 관리할 수 있습니다.

**에서 생성한 토큰을 사용할 수 있습니까`scontrol token`?**  
아니요, 표준 `scontrol token` 출력은 AWS PCS와 호환되지 않습니다. PCS Slurm REST API에는 username(`sun`), POSIX 사용자 ID() 및 group ID(`uid`)를 포함하는 특정 자격 증명 클레임이 포함된 보강된 JWT 토큰이 필요합니다`gids`. IDs 표준 Slurm 토큰에는 이러한 필수 클레임이 없으며 API에서 거부됩니다.

**VPC 외부에서 API에 액세스할 수 있나요?**  
아니요. REST API 엔드포인트는 Slurm 컨트롤러의 프라이빗 IP 주소를 사용하여 VPC 내에서만 액세스할 수 있습니다. 외부 액세스를 활성화하려면 VPC Link, API Gateway를 사용하여 Application Load Balancer와 같은 AWS 서비스를 구현하거나 보안 연결을 위해 VPC 피어링 또는 VPN 연결을 설정합니다.

**API가 HTTPS 대신 HTTP를 사용하는 이유는 무엇입니까?**  
Slurm REST API는 클러스터의 프라이빗 네트워크 내에서 내부 엔드포인트가 되도록 설계되었습니다. 암호화가 필요한 프로덕션 배포의 경우 API 게이트웨이, 로드 밸런서 또는 역방향 프록시를 통해 아키텍처에서 더 높은 수준에서 SSL/TLS 종료를 구현할 수 있습니다.

**REST API에 대한 액세스를 제어하려면 어떻게 해야 합니까?**  
클러스터의 보안 그룹 규칙을 구성하여 Slurm 컨트롤러의 포트 6820에 대한 액세스를 제한합니다. 신뢰할 수 있는 IP 범위 또는 VPC 내의 특정 소스로부터의 연결만 허용하도록 인바운드 규칙을 설정하여 API 엔드포인트에 대한 무단 액세스를 차단합니다.

**JWT 서명 키를 교체하려면 어떻게 해야 합니까?**  
활성 인스턴스 없이 클러스터를 유지 관리 모드로 전환한 다음 AWS Secrets Manager를 통해 키 교체를 시작합니다. 교체가 완료되면 대기열을 다시 활성화합니다. 기존 JWT 토큰은 모두 유효하지 않으므로 Secrets Manager의 새 서명 키를 사용하여 다시 생성해야 합니다.

**REST API를 사용하려면 Slurm 회계를 활성화해야 합니까?**  
아니요, Slurm 회계는 작업 제출 및 모니터링과 같은 기본 REST API 작업에 필요하지 않습니다. 그러나 전체 `/slurmdb` 엔드포인트를 활성화하려면 회계가 필요합니다.

** AWS PCS REST API에서 작동하는 타사 도구는 무엇입니까?**  
Prometheus용 Slurm Exporter, SlurmWeb 및 표준 Slurm REST API 형식을 따르는 사용자 지정 애플리케이션을 포함하여 많은 기존 Slurm REST API 클라이언트가 AWS PCS와 함께 작동해야 합니다. 그러나 인증을 `scontrol token` 위해에 의존하는 도구는 AWS PCS JWT 요구 사항에 맞게 수정해야 합니다.

**REST API를 사용하는 데 추가 비용이 발생하나요?**  
아니요. Slurm REST API 기능을 활성화하거나 사용하는 데 따르는 추가 요금은 없습니다. 기본 클러스터 리소스에 대한 비용만 평소와 같이 지불하면 됩니다.

**REST API 문제를 해결하려면 어떻게 해야 합니까?**  
+ **네트워크 연결 문제**

  API 엔드포인트에 연결할 수 없는 경우 클러스터 컨트롤러에 HTTP 요청을 할 때 연결 제한 시간 또는 "연결 거부" 오류가 표시됩니다.

  **조치**: 클라이언트가 동일한 VPC에 있거나 적절한 네트워크 라우팅이 있는지 확인하고 보안 그룹이 소스 IP 또는 서브넷에서 포트 6820의 HTTP 트래픽을 허용하는지 확인합니다.
+ **Slurm REST 인증 문제**

  JWT 토큰이 유효하지 않거나 만료되었거나 잘못 서명된 경우 API 요청은 응답의 오류 필드에 "프로토콜 인증 오류"를 반환합니다.

  오류 메시지 예:

  ```
  {
  "errors": [
      {
      "description": "Batch job submission failed",
      "error_number": 1007,
      "error": "Protocol authentication error",
      "source": "slurm_submit_batch_job()"
      }
    ]
  }
  ```

  **조치**: JWT 토큰의 형식이 올바른지, 만료되지 않았는지, Secrets Manager의 올바른 키로 서명되었는지 확인합니다. 토큰이 올바르게 구성되었고 필요한 클레임이 포함되어 있으며 올바른 인증 헤더 형식을 사용하고 있는지 확인합니다.
+ **제출 후 작업이 실행되지 않음**

  JWT 토큰이 유효하지만 내부 구조나 콘텐츠가 잘못된 경우 작업이 사유 코드와 함께 일시 중지(`PD`) 상태로 전환되었을 수 있습니다`JobAdminHead`. `scontrol show job <job-id>`를 사용하여 작업을 검사합니다. `JobState=PENDING, Reason=JobHeldAdmin`, 및가 표시됩니다`SystemComment=slurm_cred_create failure, holding job`.

  해야 **할 일**: 근본 원인은 JWT의 잘못된 값일 수 있습니다. 토큰이 적절하게 구성되어 있고 PCS 설명서에 따라 필요한 클레임이 포함되어 있는지 확인합니다.
+ **작업 디렉터리 권한 문제**

  JWT에 지정된 사용자 자격 증명에 작업의 작업 디렉터리에 대한 쓰기 권한이 없는 경우 액세스할 수 없는 디렉터리에서를 사용하는 것과 마찬가지로 권한 오류와 `sbatch --chdir` 함께 작업이 실패합니다.

  **조치**: JWT 토큰에 지정된 사용자에게 작업의 작업 디렉터리에 대한 적절한 권한이 있는지 확인합니다.