Amazon EKS에서 향상된 클러스터 작업을 위한 지속적 프로비저닝 - Amazon SageMaker AI

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

Amazon EKS에서 향상된 클러스터 작업을 위한 지속적 프로비저닝

Amazon EKS 오케스트레이션으로 생성된 Amazon SageMaker HyperPod 클러스터는 이제 대규모 AI/ML 워크로드를 실행하는 유연성과 효율성을 높일 수 있는 새로운 기능인 지속적 프로비저닝을 지원합니다. 지속적인 프로비저닝을 사용하면 훈련을 빠르게 시작하고, 원활하게 확장하고, 작업을 중단하지 않고 유지 관리를 수행하고, 클러스터 작업을 세부적으로 파악할 수 있습니다.

참고

지속적 프로비저닝은 EKS 오케스트레이션으로 생성된 HyperPod 클러스터에 사용할 수 있습니다. Slurm 오케스트레이션으로 생성된 클러스터는 다른 조정 모델을 사용합니다.

작동 방법

지속적 프로비저닝은 각 인스턴스를 독립적으로 관리하는 이벤트 기반 아키텍처를 통해 작동합니다. HyperPod 클러스터를 생성할 때 각 인스턴스 그룹에 대해 원하는 인스턴스 수를 지정합니다. 지속적 프로비저닝 시스템:

  • 요청 수락: 각 인스턴스 그룹의 대상 인스턴스 수를 기록합니다.

  • 프로비저닝 시작: 목표 수를 충족하기 위해 인스턴스 시작을 시작합니다.

    진행 상황 추적: 각 인스턴스 시작 시도를 모니터링하고 상태를 기록합니다.

  • 실패 처리: 실패한 시작을 자동으로 재시도합니다.

연속 프로비저닝은 기본적으로 비활성화되어 있습니다. 이 기능을 사용하려면를 --node-provisioning-mode로 설정합니다Continuous.

지속적 프로비저닝을 활성화하면 이전 작업이 완료될 때까지 기다리지 않고 여러 조정 작업을 동시에 시작할 수 있습니다. 이를 통해 동일한 클러스터에서 서로 다른 인스턴스 그룹을 동시에 확장하고 여러 조정 요청을 동일한 인스턴스 그룹에 제출할 수 있습니다.

또한 지속적인 프로비저닝을 통해 DescribeClusterEventListClusterEvent에 액세스하여 자세한 이벤트 모니터링 및 운영 가시성을 확보할 수 있습니다.

사용량 측정

지속적 프로비저닝이 있는 HyperPod 클러스터는 인스턴스 수준 측정 기능을 사용하여 실제 리소스 사용량을 반영하는 정확한 결제를 제공합니다. 이 측정 접근 방식은 각 인스턴스를 독립적으로 추적하여 기존 클러스터 수준 결제와 다릅니다.

인스턴스 수준 결제

지속적 프로비저닝을 사용하면 클러스터 수준 상태 변경을 기다리지 않고 개별 인스턴스 수준에서 결제가 시작되고 중지됩니다. 이 접근 방식은 다음과 같은 이점을 제공합니다.

  • 정확한 결제 정확도: 수명 주기 스크립트 실행이 시작되면 결제가 시작됩니다. 수명 주기 스크립트가 실패하면 인스턴스 프로비저닝이 재시도되고 수명 주기 스크립트 런타임 기간에 대한 요금이 청구됩니다.

  • 독립 측정: 각 인스턴스의 결제 수명 주기는 별도로 관리되므로 계단식 결제 오류를 방지할 수 있습니다.

  • 실시간 결제 업데이트: 인스턴스가 수명 주기 스크립트를 실행하기 시작할 때 결제가 시작되고 인스턴스가 종료 상태가 되면 결제가 중지됩니다.

결제 수명 주기

HyperPod 클러스터의 각 인스턴스는 다음 결제 수명 주기를 따릅니다.

  • 결제 시작: 인스턴스가 성공적으로 시작되고 수명 주기 구성 스크립트 실행을 시작하는 경우

  • 결제 계속: 인스턴스의 운영 수명 동안

  • 결제 중지: 종료 이유에 관계없이 인스턴스가 종료 상태가 되는 경우

참고

시작에 실패한 인스턴스에 대해서는 결제가 시작되지 않습니다. 용량 부족 또는 기타 문제로 인해 인스턴스 시작이 실패하는 경우 실패한 시도에 대해서는 요금이 부과되지 않습니다. 결제는 인스턴스 수준에서 계산되며 비용은 클러스터의 Amazon 리소스 이름(ARN)으로 집계 및 보고됩니다.

지속적 프로비저닝이 활성화된 클러스터 생성

참고

VPC 네트워킹으로 구성된 기존 Amazon EKS 클러스터와 필요한 차트 Helm이 설치되어 있어야 합니다. 또한 수명 주기 구성 스크립트를 준비하여 실행 역할이 액세스할 수 있는 Amazon S3 버킷에 업로드합니다.

다음 AWS CLI 작업은 하나의 인스턴스 그룹과 지속적 프로비저닝이 활성화된 HyperPod 클러스터를 생성합니다.

aws sagemaker-dev create-cluster \ --cluster-name $HP_CLUSTER_NAME \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' \ --instance-groups '{ "InstanceGroupName": "ig-1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "TrainingPlanArn": "" }' \ --node-provisioning-mode Continuous // Expected Output: { "ClusterArn": "arn:aws:sagemaker:us-west-2:<account-id>:cluster/<cluster-id>" }

클러스터를 생성한 후 ListClusterNodes 또는 DescribeClusterNode를 사용하여 클러스터의 노드에 대한 자세한 정보를 확인할 수 있습니다.

이러한 작업을 호출하면 다음 값 중 하나가 포함된 ClusterInstanceStatusDetails 객체가 반환됩니다.

  • 실행 중: 노드가 정상이며 클러스터 오케스트레이터(EKS)에 등록되어 있습니다.

  • 실패: 노드 프로비저닝에 실패했지만 시스템이 새 EC2 인스턴스로 프로비저닝을 자동으로 재시도합니다.

  • 보류 중: 노드가 프로비저닝되거나 재부팅되고 있습니다.

  • ShuttingDown: 노드 종료가 진행 중입니다. 종료에 문제가 발생하면 노드가 실패 상태로 전환되거나 클러스터에서 성공적으로 제거됩니다.

  • SystemUpdating: 노드에 수동으로 또는 cronjobs 패치의 일부로 트리거되는 AMI 패치 적용이 진행 중입니다.

  • DeepHealthCheckInProgress: 심층 상태 확인(DHCs)이 수행되고 있습니다. 테스트의 특성에 따라 몇 분에서 몇 시간이 걸릴 수 있습니다. 잘못된 노드가 교체되고 정상 노드가 실행 중으로 전환됩니다.

  • NotFound : BatchAddClusterNodes 응답에서 멱등성 재생 중에 노드가 삭제되었음을 나타내는 데 사용됩니다.