AWS PCS의 Slurm REST API FAQ - AWS PCS

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

AWS PCS의 Slurm REST API FAQ

이 섹션에서는 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() 및 그룹 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 토큰에 지정된 사용자에게 작업의 작업 디렉터리에 대한 적절한 권한이 있는지 확인합니다.

  • 여전히 문제가 발생하나요?

    1. REST API 사양에 대한 SchedMD의 설명서를 확인하세요.

    2. 오류에 대한 자세한 내용은 Slurm 컨트롤러 로그를 확인하세요(AWS PCS의 스케줄러 로그자세한 내용은 참조).