기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker HyperPod 클러스터에서 실행되는 인스턴스 수를 축소할 수 있습니다. 리소스 사용률 감소 또는 비용 최적화와 같은 다양한 이유로 클러스터를 축소할 수 있습니다.
다음 페이지에서는 축소에 대한 두 가지 주요 접근 방식을 간략하게 설명합니다.
-
인스턴스 그룹 수준에서 축소:이 접근 방식은
UpdateCluster
API를 사용하며, 이를 통해 다음을 수행할 수 있습니다.-
특정 인스턴스 그룹의 인스턴스 수를 독립적으로 축소합니다. SageMaker AI는 각 그룹에 대해 설정한 새 대상 인스턴스 수에 도달하는 방식으로 노드 종료를 처리합니다. 인스턴스 그룹 축소을 참조하세요.
-
클러스터에서 인스턴스 그룹을 완전히 삭제합니다. 인스턴스 그룹 삭제을 참조하세요.
-
-
인스턴스 수준에서 스케일 다운:이 접근 방식은
BatchDeleteClusterNodes
API를 사용하며, 종료하려는 개별 노드를 지정할 수 있습니다. 인스턴스 수준에서 축소을 참조하세요.
참고
를 사용하여 인스턴스 수준에서 스케일 다운하는 경우 한 번에 최대 99개의 인스턴스만 종료BatchDeleteCusterNodes
할 수 있습니다.는 인스턴스 수에 관계없이 종료를 UpdateCluster
지원합니다.
중요 고려 사항
-
클러스터를 스케일 다운할 때는 나머지 리소스가 워크로드를 처리하기에 충분하고 중단을 방지하기 위해 필요한 데이터 마이그레이션 또는 리밸런싱이 적절하게 처리되도록 해야 합니다.
-
작업자 노드 그룹에서 API를 호출하기 전에 Amazon S3 또는 FSx for Lustre 파일 시스템에 데이터를 백업해야 합니다. 이렇게 하면 인스턴스 루트 볼륨으로 인한 잠재적 데이터 손실을 방지할 수 있습니다. 백업에 대한 자세한 내용은 섹션을 참조하세요SageMaker HyperPod에서 제공하는 백업 스크립트 사용.
-
기존 클러스터에서이 API를 호출하려면 먼저 UpdateClusterSoftware API를 실행하여 클러스터를 패치해야 합니다. 클러스터 패치에 대한 자세한 내용은 섹션을 참조하세요클러스터의 SageMaker HyperPod 플랫폼 소프트웨어 업데이트.
-
온디맨드 인스턴스에 대한 측정/청구는 축소 후 자동으로 중지됩니다. 축소된 예약 인스턴스에 대한 측정 작업을 중지하려면 AWS 계정 팀에 지원을 요청해야 합니다.
-
축소된 예약 인스턴스에서 릴리스된 용량을 사용하여 다른 SageMaker HyperPod 클러스터를 확장할 수 있습니다.
인스턴스 그룹 수준에서 축소
UpdateCluster
작업을 통해 인스턴스 그룹의 인스턴스 수를 축소하거나 전체 인스턴스 그룹을 제거하는 등 SageMaker HyperPod 클러스터의 구성을 변경할 수 있습니다. 이는 워크로드의 변경 사항에 따라 클러스터에 할당된 리소스를 조정하거나, 비용을 최적화하거나, 인스턴스 그룹의 인스턴스 유형을 변경하려는 경우에 유용할 수 있습니다.
인스턴스 그룹 축소
유휴 상태이고 규모 축소를 위해 인스턴스를 종료해도 안전한 인스턴스 그룹이 있는 경우이 접근 방식을 사용합니다. 축소 UpdateCluster
요청을 제출하면 HyperPod는 종료할 인스턴스를 무작위로 선택하고 인스턴스 그룹에 지정된 수의 노드로 축소합니다.
참고
인스턴스 그룹의 인스턴스 수를 0으로 축소하면 해당 그룹 내의 모든 인스턴스가 종료됩니다. 하지만 인스턴스 그룹 자체는 SageMaker HyperPod 클러스터의 일부로 계속 존재합니다. 나중에 동일한 인스턴스 그룹 구성을 사용하여 인스턴스 그룹을 다시 확장할 수 있습니다.
또는 인스턴스 그룹을 영구적으로 제거하도록 선택할 수 있습니다. 자세한 내용은 인스턴스 그룹 삭제 단원을 참조하십시오.
를 사용하여 축소하려면 UpdateCluster
-
에 설명된 단계를 따릅니다SageMaker HyperPod 클러스터 구성 업데이트. InstanceCount 필드를 지정하는 1.d단계에 도달하면 클러스터를 축소할 현재 인스턴스 수보다 작은 숫자를 입력합니다.
-
update-cluster AWS CLI 명령을 실행하여 요청을 제출합니다.
다음은 UpdateCluster
JSON 객체의 예입니다. 인스턴스 그룹에 현재 실행 중인 인스턴스가 2개 있는 경우를 고려해 보세요. 예제와 같이 InstanceCount 필드를 1로 설정하면 HyperPod는 인스턴스 중 하나를 무작위로 선택하고 종료합니다.
{
"ClusterName": "name-of-cluster-to-update"
,
"InstanceGroups": [
{
"InstanceGroupName": "training-instances"
,
"InstanceType": "instance-type"
,
"InstanceCount": 1
,
"LifeCycleConfig": {
"SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py"
,
"OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh"
},
"ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole"
,
"ThreadsPerCore": number-of-threads
,
"OnStartDeepHealthChecks": [
"InstanceStress",
"InstanceConnectivity"
]
}
],
"NodeRecovery": "Automatic"
}
인스턴스 그룹 삭제
더 이상 필요하지 않은 경우 UpdateCluster
작업을 사용하여 SageMaker HyperPod 클러스터에서 전체 인스턴스 그룹을 제거할 수 있습니다. 이는 단순한 스케일 다운을 넘어 클러스터 구성에서 특정 인스턴스 그룹을 완전히 제거할 수 있도록 합니다.
참고
인스턴스 그룹을 제거할 때:
-
대상 그룹 내의 모든 인스턴스가 종료됩니다.
-
클러스터에서 전체 그룹 구성이 삭제됩니다.
-
해당 인스턴스 그룹에서 실행되는 모든 워크로드는 중지됩니다.
를 사용하여 인스턴스 그룹을 삭제하려면 UpdateCluster
-
에 설명된 단계를 따르는 경우SageMaker HyperPod 클러스터 구성 업데이트:
-
UpdateCluster
JSON에서 선택적InstanceGroupsToDelete
파라미터를 설정하고 삭제하려는 인스턴스 그룹 이름의 쉼표로 구분된 목록을 전달합니다. -
InstanceGroups
목록을 지정할 때 제거하려는 인스턴스 그룹의 사양이 목록에 더 이상 나열되지 않는지 확인합니다InstanceGroups
.
-
-
update-cluster AWS CLI 명령을 실행하여 요청을 제출합니다.
중요
-
SageMaker HyperPod 클러스터는 항상 인스턴스 그룹을 하나 이상 유지해야 합니다.
-
제거하기 전에 모든 중요 데이터가 백업되었는지 확인합니다.
-
제거 프로세스는 실행 취소할 수 없습니다.
다음은 UpdateCluster
JSON 객체의 예입니다. 클러스터에 현재 3개의 인스턴스 그룹, 즉 훈련, 프로토타입 훈련 및 추론 서비스 그룹이 있는 경우를 생각해 보세요. 프로토타입 훈련 그룹을 삭제하려고 합니다.
{
"ClusterName": "name-of-cluster-to-update"
,
"InstanceGroups": [
{
"InstanceGroupName": "training"
,
"InstanceType": "instance-type"
,
"InstanceCount":
,
"LifeCycleConfig": {
"SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py"
,
"OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh"
},
"ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole"
,
"ThreadsPerCore": number-of-threads
,
"OnStartDeepHealthChecks": [
"InstanceStress",
"InstanceConnectivity"
]
},
{
"InstanceGroupName": "inference-serving"
,
"InstanceType": "instance-type"
,
"InstanceCount": 2
,
[...]
},
],
"InstanceGroupsToDelete": [ "prototype-training"
],
"NodeRecovery": "Automatic"
}
인스턴스 수준에서 축소
BatchDeleteClusterNodes
작업을 통해 종료하려는 개별 노드를 지정하여 SageMaker HyperPod 클러스터를 축소할 수 있습니다.는 대상 노드 제거 및 클러스터 최적화를 위한 보다 세분화된 제어를 BatchDeleteClusterNodes
제공합니다. 예를 들어 BatchDeleteClusterNodes
를 사용하여 리소스를 지리적으로 유지 관리, 롤링 업그레이드 또는 재조정할 대상 노드를 삭제할 수 있습니다.
API 요청 및 응답
BatchDeleteClusterNodes
요청을 제출하면 SageMaker HyperPod는 인스턴스 IDs. API는 클러스터 이름과 삭제할 노드 IDs 목록이 포함된 요청을 수락합니다.
응답에는 다음 두 섹션이 포함됩니다.
-
Failed
: 인스턴스 ID당BatchDeleteClusterNodesError
하나씩 유형의 오류 목록입니다. -
Successful
: 인스턴스 IDs 성공적으로 종료되었습니다.
검증 및 오류 처리
API는 다음과 같은 다양한 검증을 수행합니다.
-
노드 ID 형식 확인(
i-
및 Amazon EC2 인스턴스 ID 구조의 접두사). -
단일
BatchDeleteClusterNodes
요청에서 노드 IDs가 99개 이하인 노드 목록 길이 확인. -
입력 클러스터 이름이 인 유효한 SageMaker HyperPod 클러스터가 있고 진행 중인 클러스터 수준 작업(업데이트, 시스템 업데이트, 패치 적용 또는 삭제)이 없는지 확인합니다.
-
인스턴스를 찾을 수 없거나, 상태가 유효하지 않거나, 사용 중인 경우의 처리.
API 응답 코드
-
API는 성공한 요청(예: 모든 입력 노드 검증 성공) 또는 부분적으로 성공한 요청(예: 일부 입력 노드 검증 실패)에 대한
200
상태 코드를 반환합니다. -
이러한 모든 검증이 실패하면(예: 모든 입력 노드 검증 실패) API는 적절한 오류 메시지 및 오류 코드와 함께
400
잘못된 요청 응답을 반환합니다.
예
다음은 를 사용하여 인스턴스 수준에서 클러스터를 스케일 다운하는 예제입니다 AWS CLI.
aws sagemaker batch-delete-cluster-nodes --cluster-name
"cluster-name"
--node-ids'["i-111112222233333", "i-111112222233333"]'