기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SageMaker HyperPod 클러스터에서 AMI 버전 업데이트
Amazon SageMaker HyperPod Amazon Machine Image(AMI)는 분산된 기계 학습 워크로드 및 고성능 컴퓨팅을 위한 특수 머신 이미지입니다. 각 AMI에는 드라이버, 기계 학습 프레임워크, 훈련 라이브러리 및 성능 모니터링 도구가 사전 로드되어 있습니다. 클러스터에서 AMI 버전을 업데이트하면 훈련 작업 및 워크플로에 이러한 구성 요소 및 패키지의 최신 버전을 사용할 수 있습니다.
클러스터 내에서 AMI 버전을 업데이트할 때 업데이트를 즉시 처리하거나, 일회성 업데이트를 예약하거나, cron 표현식을 사용하여 반복 일정을 생성할 수 있습니다. 인스턴스 그룹의 모든 인스턴스를 업데이트하거나 인스턴스 배치만 업데이트하도록 선택할 수도 있습니다. 배치를 업데이트하기로 선택한 경우 SageMaker AI가 한 번에 업그레이드해야 하는 인스턴스의 백분율 또는 양을 설정합니다. 이 업데이트 방법을 사용하는 경우 SageMaker AI가 배치 간에 대기해야 하는 시간 간격을 설정합니다.
배치로 업데이트하도록 선택한 경우 경보 및 지표 목록을 포함할 수도 있습니다. 대기 간격 동안 SageMaker AI가 이러한 지표를 관찰하고, 임곗값을 초과하면 해당 경보가 ALARM 상태로 전환되고 SageMaker AI는 AMI 업데이트를 롤백합니다. 자동 롤백을 활용하려면 IAM 실행 역할에 cloudwatch:DescribeAlarms 권한이 있어야 합니다.
참고
클러스터를 배치로 업데이트하는 것은 Amazon EKS와 통합된 HyperPod 클러스터에서만 가능합니다. 또한 여러 일정을 생성하는 경우 일정 사이에 시간 간격이 있는 것이 좋습니다. 일정이 겹치는 경우 업데이트가 실패할 수 있습니다.
HyperPod 클러스터의 각 AMI 릴리스에 대한 자세한 내용은 Amazon SageMaker HyperPod AMI 섹션을 참조하세요. 일반적인 HyperPod 릴리스에 대한 자세한 내용은 Amazon SageMaker HyperPod 릴리스 정보 섹션을 참조하세요.
SageMaker AI API 또는 CLI 작업을 사용하여 클러스터를 업데이트하거나 특정 클러스터에 대해 예약된 업데이트를 볼 수 있습니다. AWS 콘솔을 사용하는 경우 다음 단계를 따릅니다.
참고
AWS 콘솔을 사용한 AMI 업데이트는 Amazon EKS와 통합된 클러스터에서만 사용할 수 있습니다. Slurm 클러스터가 있는 경우 SageMaker AI API 또는 CLI 작업을 사용해야 합니다.
-
https://console.aws.amazon.com/sagemaker/
에서 Amazon SageMaker AI 콘솔을 엽니다. -
왼쪽에서 HyperPod 클러스터를 확장하고 클러스터 관리를 선택합니다.
-
업데이트할 클러스터를 선택한 다음 세부 정보 및 AMI 업데이트를 선택합니다.
프로그래밍 방식으로 업데이트 일정을 생성하고 관리하려면 다음 API 작업을 사용합니다.
-
CreateCluster - 업데이트 일정을 지정하는 동안 클러스터 생성
-
UpdateCluster - 업데이트 일정을 추가하도록 클러스터 업데이트
-
UpdateClusterSoftware – 클러스터의 플랫폼 소프트웨어 업데이트
-
DescribeCluster - 클러스터에 대해 생성한 업데이트 일정 보기
-
DescribeClusterNode 및 ListClusterNodes - 클러스터가 마지막으로 업데이트된 시간 보기
필수 권한
Amazon EKS 클러스터에서 포드 중단 예산
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: hyperpod-patching rules: - apiGroups: [""] resources: ["pods"] verbs: ["list"] - apiGroups: [""] resources: ["pods/eviction"] verbs: ["create"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: hyperpod-patching subjects: - kind: User name: hyperpod-service-linked-role roleRef: kind: ClusterRole name: hyperpod-patching apiGroup: rbac.authorization.k8s.io
다음 명령을 사용하여 권한을 적용합니다.
git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart helm upgrade hyperpod-dependencies HyperPodHelmChart --namespace kube-system --install
cron 표현식
특정 시간 또는 반복 일정에 일회성 업데이트를 구성하려면 cron 표현식을 사용합니다. Cron 표현식은 여섯 개의 필드를 지원하며 공백으로 구분됩니다. 여섯 개의 필드를 모두 입력해야 합니다.
cron(MinutesHoursDay-of-monthMonthDay-of-weekYear)
| 필드 | 값 | 와일드카드 |
|---|---|---|
|
Minutes |
0~59 |
해당 사항 없음 |
|
시간 |
00~23 |
해당 사항 없음 |
|
날짜 |
01~31 |
? |
|
월 |
01~12 |
* / |
|
요일 |
1~7 또는 MON~SUN |
? # L |
|
연도 |
올해~2099년 |
* |
와일드카드
-
*(별표) 와일드카드는 필드의 모든 값을 포함합니다.
Hours필드에서 *는 모든 시간을 포함한다는 의미입니다. -
/(슬래시) 와일드카드로 증분을 지정합니다.
Months필드에*/3을 입력하여 3개월 간격을 지정할 수 있습니다. -
?(물음표) 와일드카드는 어떤 한 가지나 다른 것을 지정합니다.
Day-of-month필드에 7을 입력하고 Day-of-week 필드에는 ?을 입력하면 매월 7일이 무슨 요일이든 상관없이 7번째 되는 날을 지정한다는 의미입니다. -
day-of-week또는 필드에서 L 와일드카드는 해당 월 또는 주의 마지막 날을 지정합니다. 예를 들어5L은 해당 월의 마지막 금요일을 의미합니다. -
요일 필드의 # 와일드카드는 그 달에 속한 정해진 요일의 특정 인스턴스를 지정합니다. 예를 들어, 3#2는 그 달의 두 번째 화요일입니다. 3은 각 주의 셋째 날이므로 화요일을 나타내고 2는 그 달의 두 번째 해당 요일입니다.
다음 시나리오에 cron 표현식을 사용할 수 있습니다.
-
특정 시간 및 날짜에 실행되는 일회성 일정.
?와일드카드를 사용하여 날짜와 요일은 중요하지 않음을 나타낼 수 있습니다.cron(30 14 ? 12 MON 2024)cron(30 14 15 12 ? 2024) -
특정 시간과 날짜에 실행되는 주간 일정. 다음 예시에서는 날짜와 관계없이 매주 월요일 오후 12시에 실행되는 일정을 생성합니다.
cron(00 12 ? * 1 *) -
요일과 관계없이 매월 실행되는 월별 일정. 다음 일정은 매월 15일 오후 12시 30분에 실행됩니다.
cron(30 12 15 * ? *) -
요일을 사용하는 월간 일정.
cron(30 12 ? * MON *) -
N번째 달마다 실행되는 일정을 생성하려면
/와일드카드를 사용합니다. 다음 예시에서는 3개월마다 실행되는 월별 일정을 생성합니다. 다음 두 예시는 요일 및 날짜와의 작동 방식을 보여줍니다.cron(30 12 15 */3 ? *)cron(30 12 ? */3 MON *) -
지정된 요일의 특정 인스턴스에서 실행되는 일정. 다음 예시에서는 매월 두 번째 월요일 오후 12시 30분에 실행되는 일정을 생성합니다.
cron(30 12 ? * 1#2 *) -
지정된 요일의 마지막 인스턴스에 실행되는 일정. 다음 일정은 매월 마지막 월요일 오후 12시 30분에 실행됩니다.
cron(30 12 ? * 1L *)