AWS Machine Learning

SageMaker Studio에서 Amazon SageMaker HyperPod Spaces 직접 관리

데이터 과학자와 ML 엔지니어는 이제 SageMaker Studio에서 직접 SageMaker HyperPod EKS 클러스터의 Amazon SageMaker Spaces를 생성, 구성, 시작, 중지 및 열 수 있습니다. 몇 번의 클릭만으로 명령줄 도구를 사용하지 않고도 JupyterLab 및 Code Editor 환경을 실행할 수 있습니다.

IDE and Notebooks tab on a HyperPod cluster detail page listing Spaces with status, compute allocation, and Stop, Open, and remote IDE actions
이미지 출처 · AWS Machine Learning

최근 Amazon SageMaker Studio UI에서 직접 Amazon SageMaker HyperPod EKS 클러스터의 Amazon SageMaker Spaces를 생성하고 관리하는 기능을 도입했습니다. 데이터 과학자와 머신 러닝(ML) 엔지니어는 이제 브라우저를 떠나거나 명령줄 도구를 사용하지 않고도 HyperPod 클러스터에서 JupyterLab 및 Code Editor 환경을 실행할 수 있어, 클러스터 접근부터 실질적인 개발 시작까지 걸리는 시간을 몇 번의 클릭으로 단축할 수 있습니다.

배경

Amazon SageMaker HyperPod는 대규모 파운데이션 모델(FM) 학습 및 추론을 위한 목적에 맞게 구축된 인프라를 제공합니다. Amazon Elastic Kubernetes Service (Amazon EKS) 오케스트레이션을 통해 팀은 내장된 복원력과 자동 장애 복구 기능을 갖춘 상태에서 수백 개의 가속기에 걸쳐 분산 학습 작업을 실행할 수 있습니다. 학습 외에도 HyperPod는 이 EKS 오케스트레이션 인프라를 확장하여 수십억 개 파라미터의 파운데이션 모델에 대한 저지연, 확장 가능한 추론을 제공합니다.

올해 초, 우리는 Amazon SageMaker Spaces for HyperPod를출시했습니다. 이는 ML 개발자가 HyperPod EKS 클러스터에서 직접 대화형 개발 환경을 생성하는 데 사용할 수 있는 애드온입니다. 이를 통해 조직은 동일한 인프라에서 학습 작업 및 모델 배포와 함께 대화형 워크로드를 실행하고 부분 GPU 할당을 지원함으로써 GPU 투자를 최대한 활용할 수 있었습니다.

이전에는 Spaces를 생성하고 관리하는 작업이 주로 HyperPod CLI 또는 kubectl 명령에 의존했습니다. 이 방식은 인프라 관리자에게 강력하고 세분화된 제어 기능을 제공하지만, 시각적 인터페이스를 선호하는 데이터 과학자는 이제 이 새로운 SageMaker Studio 기능을 사용하여 명령줄 도구를 거치지 않고 모델 개발에만 집중할 수 있습니다.

새로운 기능

이 새로운 기능을 통해 데이터 과학자는 이제 SageMaker Studio에서 직접 Spaces를 생성, 구성, 시작, 중지 및 열 수 있습니다. HyperPod 클러스터 세부 정보 페이지의 새로운 IDE and Notebooks 탭은 Space 관리를 위한 완전한 사용자 인터페이스를 제공하여 일상적인 Space 운영에 CLI 도구가 필요 없게 합니다.

Studio를 통해 이용 가능한 주요 기능은 다음과 같습니다:

  • 안내 형식을 통해 컴퓨팅, 네임스페이스, 스토리지, 컴퓨팅 할당량 관리를 위한 HyperPod Task Governance 및 이미지 설정을 구성하여 Spaces 생성.
  • 이름, 애플리케이션 유형, 상태, 접근 유형, 스토리지, GPU 및 vCPU 할당을 표시하는 검색 가능한 테이블에서 모든 Spaces 조회.
  • Spaces를 사용하지 않을 때 한 번의 선택으로 시작 및 중지하여 컴퓨팅 리소스 확보.
  • Spaces를 브라우저에서 직접 열기(JupyterLab 또는 Code Editor) 또는 원하는 원격 IDE(예: VS Code)를 통해 연결.
IDE and Notebooks tab on a HyperPod cluster detail page listing Spaces with status, compute allocation, and Stop, Open, and remote IDE actions

그림 1: HyperPod 클러스터 세부 정보 페이지의 IDE and Notebooks 탭은 모든 Spaces와 그 상태, 컴퓨팅 할당, 중지, 열기 또는 원격 IDE에서 열기 위한 빠른 작업을 표시합니다

시작하기

설정에는 두 가지 역할이 포함됩니다: 관리자는 클러스터를 준비하고, 데이터 과학자는 Spaces를 생성하고 엽니다. 다음 섹션에서 각각을 다룹니다.

관리자용

관리자는 SageMaker Spaces 애드온을 설치합니다 HyperPod EKS 클러스터에 다음 두 가지 방법 중 하나로 설치할 수 있습니다: 빠른 설치 (최적화된 기본값으로 원클릭 설치) 또는 사용자 지정 설치 옵션(웹 UI 액세스 설정에 필요)은 SageMaker HyperPod EKS 클러스터의 IDE 및 Notebooks 탭에서 선택할 수 있습니다. 설치가 완료되면 관리자는 네임스페이스를 구성하고, Space 템플릿을 생성하며, EKS 액세스 항목을 통해 액세스를 관리할 수 있습니다.

다음은 관리자가 반드시 수행해야 하는 일회성 설정입니다:

  • Spaces 애드온 설치: Amazon SageMaker AI 콘솔에서 HyperPod 클러스터를 열고 IDE 및 Notebooks 탭으로 이동한 다음 빠른 설치 또는 사용자 지정 설치 (웹 브라우저 액세스를 활성화하려면 사용자 지정 설치가 필요함)를 선택합니다. 전체 지침은 AWS 설명서 를 참조하세요.
  • EKS 액세스 항목 구성: 세 가지 관리형 정책 AmazonSagemakerHyperpodSpacePolicy, AmazonSagemakerHyperpodUserClusterPolicy과 AmazonSagemakerHyperpodSpaceTemplatePolicy 를 데이터 과학자가 사용하는 AWS Identity and Access Management(IAM) 역할에 연결합니다.
  • Studio 도메인에서 사용자별 신원 전파(per-user identity propagation)를 활성화합니다: SageMaker Studio와 HyperPod Spaces 통합이 출시되기 전에 생성된 Studio 도메인인 경우, HyperPod EKS 클러스터로의 사용자별 신원 전파를 활성화해야 합니다. 이를 통해 클러스터에서 각 Studio 사용자가 수행하는 작업(Space 생성, 중지 또는 삭제)이 EKS 액세스 항목과 AWS CloudTrail에서 해당 사용자의 사용자 프로필로 귀속됩니다. 또한 이 신원 매핑은 엄격한 Space 소유권을 강제합니다. 어떤 사용자가 환경을 생성했는지 추적하고, 해당 Space가 SageMaker Studio 도메인 내에서 비공개인지 공유용인지를 결정합니다.

Studio 도메인당 한 번 다음 명령을 실행합니다:

aws sagemaker update-domain \
    --domain-id $DOMAIN_ID \
    --default-user-settings '{
  "StudioWebPortalSettings": {
    "ExecutionRoleSessionNameMode": "USER_IDENTITY"
  }
}'

도메인 업데이트 후, 다음 명령이 “USER_IDENTITY”를 반환하는지 확인합니다:

aws sagemaker describe-domain --domain-id $DOMAIN_ID \
    --query 'DefaultUserSettings.StudioWebPortalSettings.ExecutionRoleSessionNameMode'

기존에 실행 중인 앱은 영향을 받지 않습니다. 사용자는 다음 로그인 시 새 설정을 적용받게 됩니다.

  • 선택적으로 추가 기능을 켭니다: 다음의 선택적 기능(Optional capabilities) 표에서 원하는 기능을 활성화합니다.

데이터 사이언티스트를 위해

애드온이 설치되고 액세스가 구성되면, 데이터 사이언티스트는 SageMaker Studio에서 Compute 아래의 HyperPod 클러스터로 이동하여 → HyperPod에서 IDE 및 Notebooks 탭을 선택해 Spaces 관리 인터페이스를 확인합니다(그림 1 참조). Space 생성 및 관리에 대해 자세히 알아보기: HyperPod에서 Space 생성 및 관리.

Space 상태가 Running (콜드 클러스터에서는 보통 몇 분, 오버프로비저닝이 적용되면 약 30–40초)으로 표시되면, Open 을 선택하여 브라우저에서 JupyterLab 또는 Code Editor를 실행하거나(그림 2 및 3 참조), Open in VS Code 를 선택하여 SSH-over-SSM을 통해 로컬 편집기에서 연결합니다(그림 4 참조).

JupyterLab Space open in a web browser, showing the Launcher with available notebook kernels, consoles, and terminal access

그림 2: 웹 브라우저를 통해 액세스한 JupyterLab Space로, 사용 가능한 노트북 커널, 콘솔, 터미널 액세스가 있는 Launcher가 표시됨

JupyterLab Space에서 작업하기

JupyterLab Space를 열면 다음에 액세스할 수 있는 완전히 구성된 개발 환경이 제공됩니다:

  • ipykernel이 포함된 Python 3 노트북.
  • Glue PySpark 및 Glue Spark 콘솔.
  • SparkMagic PySpark 및 Spark 커널.
  • 명령 실행을 위한 터미널 액세스.
  • 영구 스토리지가 있는 파일 브라우저.
  • 내장 채팅 및 상황별 도움말.

작업 내용은 연결된 Amazon Elastic Block Store(Amazon EBS) 볼륨에 유지되므로, 진행 상황을 잃지 않고 Space를 중지했다가 다시 시작할 수 있습니다.

Code Editor Space running on HyperPod, showing the VS Code-style web interface with file explorer, editor, and integrated terminal

그림 3: HyperPod에서 실행 중인 Code Editor Space로, 파일 탐색기, 편집기, 통합 터미널이 있는 VS Code 스타일 웹 인터페이스가 표시됨

Code Editor Space에서 작업하기

브라우저에서 VS Code 스타일 환경을 선호하는 개발자를 위해, Code Editor Space는 다음을 갖춘 가볍고 웹 기반의 IDE를 제공합니다:

  • 구문 강조 및 IntelliSense를 지원하는 완전한 파일 편집.
  • 셸 명령 실행, 학습 작업 제출, 클러스터 리소스와의 상호 작용을 위한 통합 터미널입니다.
  • 언어 서버, 린터(linter), 포매터를 위한 확장 기능 지원.
  • 버전 관리 워크플로를 위한 Git 통합.
  • 클러스터 파일 시스템 및 마운트된 Amazon FSx 볼륨에 대한 직접 액세스.

Code Editor Spaces는 학습 스크립트 작성 및 디버깅, 실험 구성 관리, 코드 리포지토리 작업에 적합하며, 이 모든 작업을 브라우저를 떠나지 않고 수행할 수 있습니다.

Local VS Code instance connected remotely to a HyperPod Space, showing the remote connection indicator and full IDE capabilities running on cluster compute

그림 4: HyperPod Space에 원격으로 연결된 로컬 VS Code 인스턴스로, 원격 연결 표시기와 클러스터 컴퓨팅에서 실행되는 전체 IDE 기능을 보여줍니다

원격 IDE 연결 (VS Code)

Spaces 테이블에서 Open in VS Code를 선택하면 HyperPod에서 실행 중인 Space에 로컬 Visual Studio Code를 연결할 수 있습니다. 이는 내부적으로 SSH-over-SSM 터널링을 사용하여 SSH 키를 관리하거나 포트 22를 노출할 필요 없이 보안 연결을 제공합니다.

확장, 테마, 키 바인딩을 포함한 로컬 VS Code 환경의 모든 기능을 그대로 사용하면서 HyperPod 클러스터 컴퓨팅에서 코드를 실행할 수 있습니다.

AWS Toolkit for Visual Studio Code를 사용하여 연결할 수도 있는데, 이 도구에서는 SageMaker AI > HyperPod 아래에 Spaces가 표시되며 툴킷 패널에서 직접 Spaces를 시작, 중지 및 연결할 수 있습니다.

선택적 기능

이후에 설명하는 모든 기능은 선택 사항이며 조합하여 사용할 수 있습니다. 팀의 요구 사항에 맞는 조합을 자유롭게 활성화하세요.

기능 설명
웹 브라우저 액세스 AWS Application Load Balancer와 Amazon Route 53을 통한 사용자 지정 DNS를 사용하여 브라우저 트래픽을 Spaces로 라우팅합니다. 원격 IDE(SSM을 통한 VS Code) 액세스에는 필요하지 않습니다.
Space 템플릿 관리자가 정의한 템플릿으로, 팀 전반에서 일관된 Space 구성을 위해 컴퓨팅, 이미지, 스토리지 및 라이프사이클 스크립트를 사전 구성합니다.
Task Governance Kueue를 통해 멀티 테넌트 클러스터에 네임스페이스 수준의 컴퓨팅 할당량, 큐 및 우선 순위 기반 어드미션을 제공합니다.
Karpenter 오토스케일링 Space 수요에 따른 동적 노드 확장/축소.
Karpenter 오버 프로비저닝 사전 워밍된 노드와 사전 풀링된 이미지를 사용하여 Space 시작 시간을 5–7분에서 약 30–40초로 단축합니다. 다음 Pro tip 섹션을 참조하세요.
퍼시스턴트 볼륨(EFS / FSx) Spaces 전반에서 유지되는 공유 사용자 디렉터리 및 팀 데이터 세트.
사용자 지정 이미지(ECR) Amazon Elastic Container Registry(Amazon ECR)에 호스팅된 컨테이너 이미지에 팀 전용 런타임 및 라이브러리를 포함합니다.
유휴 종료 비활성 Spaces를 자동 종료하여 컴퓨팅 비용이 무분별하게 발생하는 것을 방지합니다.
NVIDIA MIG A100/H100 하드웨어에서 비용 효율적인 대화형 워크로드를 위한 분할 GPU 할당.

Pro tip: 노드 오버 프로비저닝으로 Space 시작 시간 단축

기본적으로 Karpenter 오토스케일링을 사용하는 HyperPod EKS 클러스터의 SageMaker Spaces에는 콜드 스타트 지연이 5–7분 발생하며, 이는 scale-to-zero 클러스터에서 Space를 처음 생성할 때 다음 요인이 지배합니다:

  • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 시작.
  • Kubernetes 노드 등록.
  • SageMaker Distribution(SMD) 이미지 풀.

지연 시간에 민감한 대화형 워크로드(JupyterLab, Code Editor)의 경우 사전 워밍되고 이미지가 캐시된 노드 풀을 유지할 수 있습니다 표준 Kubernetes 오버프로비저닝 패턴을 사용합니다. 이를 통해 Space 시작 시간이 수 분에서 약 30–40초로 단축됩니다.

작동 방식

  1. 낮은 우선순위(-1000)의 플레이스홀더 Deployment가 각 웜 노드에 Kubernetes pod를 하나씩 유지합니다. 이 pod들은 실제 Space와 동일한 CPU/메모리를 요청합니다.
  2. 각 플레이스홀더의 initContainer 은(는) Karpenter가 노드를 프로비저닝할 때 SageMaker Distribution 이미지를 해당 노드에 미리 pull합니다.
  3. 사용자가 Space를 생성하면(기본 우선순위 0), Kubernetes 스케줄러가 플레이스홀더(우선순위 -1000)를 선점합니다. 그러면 Space는 이미지 pull이나 노드 실행 대기 없이 이미 웜 상태이고 이미지가 캐시된 노드에 몇 초 안에 배치됩니다.
  4. Karpenter는 백그라운드에서 대체된 자리 표시자를 위해 교체 노드를 프로비저닝합니다.

프로팁 배포에 대해 자세히 알아보세요: HyperPod Spaces를 위한 과다 프로비저닝.

검증된 스타트업 지연 시간 켜짐 ml.m5.12xlarge (24 vCPU 할당 가능, 2 vCPU 플레이스홀더, 8 GiB 플레이스홀더 메모리)와 함께 sagemaker-distribution:latest-cpu 약 3.5 GB 크기의 SMD 이미지:

경로 지연 시간
공간이 자리표시자와 함께 위치함(공존) ~14초
공간이 자리표시자보다 우선함 ~35초
콜드 스타트 (웜 풀 없음) 5-7분

참고: 이 수치는 CPU 전용 기준입니다. GPU Space에는 별도의 자체 Deployment 요청 placeholder가 필요합니다 nvidia.com/gpu GPU 이미지가 사전 풀링되어 있는 경우입니다. 그렇지 않으면 GPU 노드는 콜드 상태로 유지되며, 약 10 GB에 달하는 GPU 이미지는 3.5 GB CPU 이미지보다 풀링 비용이 훨씬 더 많이 듭니다.

참고: 각 웜 노드는 Running 상태의 EC2 인스턴스를 하나씩 보유합니다. 온디맨드 노드의 경우, 웜 노드를 계속 가동 상태로 유지하는 데 추가 비용이 발생합니다.

HyperPod Spaces 애드온 설치 및 시작 방법에 대한 자세한 내용은 다음을 참조하세요. AWS 설명서.

가격 정책

SageMaker Spaces 애드온 구성에는 추가 요금이 발생하지 않습니다. Spaces에서 사용하는 기본 HyperPod 클러스터 컴퓨팅에 대한 비용과 SSH-over-SSM 원격 연결에 사용되는 AWS Systems Manager Advanced On-Premises Instance의 시간당 요금을 지불하시면 됩니다. 자세한 내용은 다음을 참조하세요 AWS Systems Manager 요금 자세한 내용은 다음을 참조하십시오.

앞서 설명한 오버 프로비저닝(over-provisioning)을 사용하는 경우, 워밍 노드에 추가 비용이 발생한다는 점에 유의하세요. 인스턴스 유형과 크기에 따라 이러한 노드는 실행 상태로 유지되면서 Spaces를 프로비저닝할 준비를 합니다.

결론

HyperPod Spaces를 SageMaker Studio로 관리하면 데이터 과학자와 고성능 컴퓨팅 인프라 간의 격차를 해소합니다. 이제 팀은 CLI 도구나 Kubernetes 개념을 배울 필요 없이, 클러스터 접근부터 실행 중인 JupyterLab 또는 Code Editor 환경 구축까지 몇 분 만에 완료할 수 있습니다. HyperPod Task Governance, fractional GPU 지원, 유휴 종료와 같은 기능과 결합하여, 조직은 비용 통제와 리소스 공정성을 유지하면서 공유 클러스터에 대한 셀프서비스 액세스를 제공할 수 있습니다.

시작하려면 SageMaker AI 콘솔에서 HyperPod EKS 클러스터로 이동하여 IDE 및 Notebooks 탭을 선택하세요. 자세한 내용은 SageMaker HyperPod Spaces 설명서를 참조하세요.

 


저자 소개

원문 출처

AWS Machine Learning

내용 안내

원문 발행 및 권리는 출처에 있습니다.

기계 번역 · 원문을 참고하세요