

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

# AWS PCS 클러스터의 스케줄러 버전 업데이트
<a name="working-with_clusters_version_update_procedure"></a>

다음 단계에 따라 클러스터의 스케줄러 버전을 업데이트합니다. 작업 중단을 허용할 수 있는지 여부에 따라 두 가지 옵션이 있습니다. 옵션 선택에 대한 자세한 내용은 섹션을 참조하세요[AWS PCS에서 클러스터의 스케줄러 버전 업데이트](working-with_clusters_version_update.md).

**참고**  
프로덕션 환경에 변경 사항을 적용하기 전에 비프로덕션 클러스터에서 새 AMI와 업데이트 절차를 테스트하는 것이 좋습니다.

## 옵션 1: 롤링 업데이트
<a name="version_update-procedure-option1"></a>

플릿이 계속 실행되는 동안 컨트롤러가 업데이트됩니다. 기존 노드는 드레이닝되고 교체될 때까지 이전 Slurm 버전을 계속 사용합니다. 업데이트 후 시작된 새 노드는 대상 버전을 사용합니다. 실행 중인 작업은 중단되지 않습니다.

**사용해야 하는 경우**:
+ 클러스터 컨트롤러는 Slurm 버전 24.05 이상에 있습니다.

### 0단계 - 시작 상태 확인
<a name="version_update-procedure-option1-step0"></a>

클러스터에서 컨트롤러 버전 "A"(예: 24.11)를 실행 중이며 버전 "B"(예: 25.11)로 마이그레이션하려고 합니다. 클러스터 노드의 다음 명령을 사용하여 플릿의 모든 컴퓨팅 노드가 동일한 메이저 버전을 실행하는지 확인합니다.

```
scontrol show nodes | grep "Version="

# Example output:
#   NodeAddr=compute-1 NodeHostName=compute-1 Version=24.11.7
#   NodeAddr=compute-2 NodeHostName=compute-2 Version=24.11.7
```

컴퓨팅 노드에서 AWS PCS 에이전트 버전을 확인합니다. Systems Manager를 사용하여 노드에 연결하고 부트스트랩 로그를 확인합니다.

```
grep "PCS Agent version" /var/log/amazon/pcs/bootstrap.log | tail -1

# Example output:
#   /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Bootstrap starting with PCS Agent version: 1.3.2-1
```

롤링 업데이트에는 모든 컴퓨팅 노드 AMIs에서 AWS PCS 에이전트 버전 1.4.0 이상이 필요합니다. 자세한 내용은 [AWS PCS 에이전트 버전](pcs-agent-versions.md) 단원을 참조하십시오.

### 1단계 - 대상 AMIs 준비
<a name="version_update-procedure-option1-step1"></a>

Slurm 버전 B와 최신 PCS 에이전트를 포함하는 AMIs를 빌드하거나 식별합니다. ** AWS ** 
+ 최신 **PCS 지원 DLAMIs**. 이러한 AMIs 지원되는 최신 세 가지 Slurm 버전과 함께 제공됩니다. 자세한 내용은 [PCS와 함께 AWS PCS 지원 DLAMI 사용](working-with_ami_pcs-ready-dlami.md) 단원을 참조하십시오.
+ Slurm 패키지 및 AWS PCS 에이전트의 설치 단계에 따라 **사용자 지정 AMI**를 빌드할 수 있습니다. 자세한 내용은 [AWS PCS용 사용자 지정 Amazon Machine Image(AMIs)](working-with_ami_custom.md) 단원을 참조하십시오.
+ 프로덕션 용도로는 **AWS PCS 샘플 AMI**를 사용하지 않는 것이 좋습니다. 이러한 AMIs는 테스트 전용입니다.

**참고**  
동일한 AMI에 여러 Slurm 버전이 포함될 수 있습니다. AWS PCS는 컨트롤러와 일치하는 버전을 자동으로 선택합니다. 추가 버전을 설치해도 문제가 발생하지 않습니다.

### 2단계 - 클러스터 컨트롤러 업데이트
<a name="version_update-procedure-option1-step2"></a>

를 버전 B`UpdateCluster`로 `scheduler.version` 설정하여를 호출합니다.

------
#### [ AWS Management Console ]

1. [https://console.aws.amazon.com/pcs/](https://console.aws.amazon.com/pcs/) AWS PCS 콘솔을 엽니다.

1. 탐색 창에서 **클러스터**를 선택합니다.

1. 업데이트할 클러스터를 선택하고 **편집**을 선택합니다.

1. **클러스터 세부 정보의** 스케줄러 드롭다운에서 대상 **스케줄러** 버전을 선택합니다.

1. **업데이트를** 선택하여 버전 업데이트를 제출합니다.

1. 클러스터 상태를 모니터링합니다. 클러스터는 업데이트 `UPDATING` 중에 로 표시되고 `ACTIVE` 완료되면 로 돌아갑니다. 업데이트는 일반적으로 5\~15분 후에 완료됩니다.

------
#### [ AWS CLI ]

```
aws pcs update-cluster \
  --cluster-identifier {{cluster-id}} \
  --scheduler version={{25.11}}
```

클러스터가 로 돌아갈 때까지 기다립니다`ACTIVE`. 업데이트는 일반적으로 5\~15분 후에 완료됩니다.

------

이 작업 중에는 컨트롤러를 잠시 사용할 수 없습니다.
+ 컴퓨팅 노드에서 실행 중인 작업은 **계속 실행**됩니다.
+ 업데이트가 완료될 때까지 새 작업 제출 및 스케줄러 명령을 사용할 수 없습니다.
+ 클러스터가 로 돌아갈 때까지 자동 조정이 일시 중지됩니다`ACTIVE`.

**참고**  
플릿에 버전 A의 노드가 여전히 포함되어 있는 동안에는 버전 B와 관련된 Slurm 설정을 추가하지 마십시오. 구성은 모든 노드에 배포됩니다. 이전는 새 파라미터를 인식하지 못할 `slurmd` 수 있습니다.

클러스터가 `ACTIVE` 또는 30분 `UPDATE_FAILED` 이내에 로 돌아가지 않는 경우 AWS Support에 문의하여 지원을 받으세요.

### 3단계 - 컴퓨팅 노드 그룹 업데이트
<a name="version_update-procedure-option1-step3"></a>

각 컴퓨팅 노드 그룹에 대해 대상 Slurm 버전으로 새 AMI를 설정합니다.

```
aws pcs update-compute-node-group \
  --cluster-identifier {{cluster-id}} \
  --compute-node-group-identifier {{cng-id}} \
  --ami-id {{new-ami-id}}
```

AWS PCS는 이전 버전을 실행하는 노드를 `DRAIN` 상태로 설정합니다. 드레이닝된 노드가 현재 작업을 완료하면 AWS PCS는 노드를 종료하고 Slurm 버전 B를 실행하는 새 노드로 교체합니다.

### 4단계 - Slurm 버전 B에서 일관된 플릿 확인
<a name="version_update-procedure-option1-step4"></a>

플릿 전환을 모니터링합니다. 클러스터 노드에서 모든 노드의 버전 요약을 확인합니다.

```
scontrol show nodes | grep "Version=" | awk -F'=' '{print $NF}' | sort | uniq -c
```

`DRAIN` 상태 및 해당 버전의 노드를 확인합니다.

```
scontrol show nodes | awk '/NodeName=/{name=$1; ver=""} /Version=/{ver=$NF} /State=.*DRAIN/{print name, ver}'
```

모든 활성 노드의 버전을 확인합니다.

```
scontrol show nodes | awk '/NodeName=/{name=$1; ver=""} /Version=/{ver=$NF} /State=/{if (ver) print name, ver}'
```

버전 요약에 대상 버전만 표시되고 `DRAIN` 또는 `DRAINING` 상태로 남아 있는 노드가 없으면 업데이트가 완료된 것입니다. `POWERED_DOWN` 상태의 노드는 AWS PCS가 시작할 때까지 버전을 보고하지 않습니다.

## 옵션 2: 전체 플릿 유지 관리 중지
<a name="version_update-procedure-option2"></a>

컨트롤러를 업데이트하기 전에 전체 플릿을 종료한 다음 대상 Slurm 버전으로 새 AMI에서 다시 확장합니다. 이 절차는 더 간단하지만 모든 노드와 실행 중인 작업을 종료합니다.

**사용해야 하는 경우**:
+ 클러스터 컨트롤러는 버전 23.11에 있습니다(23.11 클러스터에서는 옵션 1을 사용할 수 없음).

**참고**  
전체 플릿을 한 번에 종료하면 스케일 업 시 용량 부족 오류가 발생할 가능성이 높아집니다. 사용량이 적은 시간에 예약 용량 또는 일정을 사용하는 것이 좋습니다.

### 0단계 - 시작 상태 확인
<a name="version_update-procedure-option2-step0"></a>

클러스터에서 컨트롤러 버전 "A"(예: 24.11)를 실행 중이며 버전 "B"(예: 25.11)로 마이그레이션하려고 합니다. 클러스터 노드의 다음 명령을 사용하여 플릿의 모든 컴퓨팅 노드가 동일한 메이저 버전을 실행하는지 확인합니다.

```
scontrol show nodes | grep "Version="

# Example output:
#   NodeAddr=compute-1 NodeHostName=compute-1 Version=24.11.7
#   NodeAddr=compute-2 NodeHostName=compute-2 Version=24.11.7
```

컴퓨팅 노드에서 AWS PCS 에이전트 버전을 확인합니다. Systems Manager를 사용하여 노드에 연결하고 부트스트랩 로그를 확인합니다.

```
grep "PCS Agent version" /var/log/amazon/pcs/bootstrap.log | tail -1

# Example output:
#   /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Bootstrap starting with PCS Agent version: 1.3.2-1
```

대상 AMIs에서 최신 AWS PCS 에이전트를 사용합니다. 자세한 내용은 [AWS PCS 에이전트 버전](pcs-agent-versions.md) 단원을 참조하십시오.

### 1단계 - 대상 AMIs 준비
<a name="version_update-procedure-option2-step1"></a>

Slurm 버전 B와 최신 PCS 에이전트가 포함된 AMIs를 빌드하거나 식별합니다. ** AWS ** 
+ 최신 **PCS 지원 DLAMIs**. 이러한 AMIs 지원되는 최신 세 가지 Slurm 버전과 함께 제공됩니다. 자세한 내용은 [PCS와 함께 AWS PCS 지원 DLAMI 사용](working-with_ami_pcs-ready-dlami.md) 단원을 참조하십시오.
+ Slurm 패키지 및 AWS PCS 에이전트의 설치 단계에 따라 **사용자 지정 AMI**를 빌드할 수 있습니다. 자세한 내용은 [AWS PCS용 사용자 지정 Amazon Machine Image(AMIs)](working-with_ami_custom.md) 단원을 참조하십시오.
+ 프로덕션 용도로는 **AWS PCS 샘플 AMI**를 사용하지 않는 것이 좋습니다. 이러한 AMIs는 테스트 전용입니다.

### 2단계 - 전체 플릿 축소
<a name="version_update-procedure-option2-step2"></a>

각 컴퓨팅 노드 그룹에 `maxNodeCount` 대해 현재 `minNodeCount` 및를 기록합니다. 4단계에서 이를 복원합니다.

```
for cng in $(aws pcs list-compute-node-groups --cluster-identifier {{cluster-id}} --query "computeNodeGroups[].id" --output text); do
    aws pcs get-compute-node-group \
      --cluster-identifier {{cluster-id}} \
      --compute-node-group-identifier "$cng" \
      --query "computeNodeGroup.{Id:id,AmiId:amiId,Min:scalingConfiguration.minInstanceCount,Max:scalingConfiguration.maxInstanceCount}" \
      --output table
  done
```

**주의**  
다음 작업은 실행 중인 모든 노드와 해당 노드의 작업을 종료합니다.

모든 컴퓨팅 노드 그룹에서 `minNodeCount` 및 `0`를 `maxNodeCount`로 설정합니다.

```
aws pcs update-compute-node-group \
  --cluster-identifier {{cluster-id}} \
  --compute-node-group-identifier {{cng-id}} \
  --scaling-configuration '{"minNodeCount": 0, "maxNodeCount": 0}'
```

계속하기 전에 클러스터`aws:pcs:cluster-id`와 일치하는 태그가 지정된 인스턴스가 실행되고 있지 않은지 확인합니다.

```
aws ec2 describe-instances \
    --filters "Name=tag:aws:pcs:cluster-id,Values={{cluster-id}}" \
    --query "Reservations[].Instances[].[InstanceId,ImageId,State.Name]" \
    --output table
```

### 3단계 - 클러스터 컨트롤러 업데이트
<a name="version_update-procedure-option2-step3"></a>

------
#### [ AWS Management Console ]

1. [https://console.aws.amazon.com/pcs/](https://console.aws.amazon.com/pcs/) AWS PCS 콘솔을 엽니다.

1. 탐색 창에서 **클러스터**를 선택합니다.

1. 업데이트할 클러스터를 선택하고 **편집**을 선택합니다.

1. **클러스터 세부 정보의** 스케줄러 드롭다운에서 대상 **스케줄러** 버전을 선택합니다.

1. **업데이트를** 선택하여 버전 업데이트를 제출합니다.

1. 클러스터 상태를 모니터링합니다. 클러스터는 업데이트 `UPDATING` 중에 로 표시되고 `ACTIVE` 완료되면 로 돌아갑니다. 업데이트는 일반적으로 5\~15분 후에 완료됩니다.

------
#### [ AWS CLI ]

```
aws pcs update-cluster \
  --cluster-identifier {{cluster-id}} \
  --scheduler version={{25.11}}
```

클러스터가 로 돌아갈 때까지 기다립니다`ACTIVE`. 업데이트는 일반적으로 5\~15분 후에 완료됩니다.

클러스터가 `ACTIVE` 또는 30분 `UPDATE_FAILED` 이내에 로 돌아가지 않는 경우 AWS Support에 문의하여 지원을 받으세요.

------

### 4단계 - 컴퓨팅 노드 그룹 업데이트 및 용량 복원
<a name="version_update-procedure-option2-step4"></a>

각 컴퓨팅 노드 그룹에 대해 새 AMI를 설정하고 원래 최소 및 최대 용량 제한을 복원합니다.

```
aws pcs update-compute-node-group \
  --cluster-identifier {{cluster-id}} \
  --compute-node-group-identifier {{cng-id}} \
  --ami-id {{new-ami-id}} \
  --scaling-configuration '{"minNodeCount": {{previous-min}}, "maxNodeCount": {{previous-max}}}'
```

클러스터가 다시 확장됩니다. 모든 새 노드는 최신 AWS PCS 에이전트와 함께 Slurm 버전 B를 실행합니다.

## 예: 여러 버전에서 업데이트
<a name="version_update-procedure-multi-hop"></a>

대상 버전이 현재 버전의 호환성 기간을 벗어나는 경우 컨트롤러를 하나 이상의 중간 버전으로 이동하여 한 번에 한 홉씩 업데이트해야 합니다. 각 홉은 현재 컨트롤러 버전의 호환성 기간 내에서 지원되는 버전을 대상으로 해야 합니다.

는 컨트롤러를 업데이트하기 전에 플릿을 0으로 [옵션 2: 전체 플릿 유지 관리 중지](#version_update-procedure-option2) 조정하므로 컨트롤러가 버전 간에 이동하는 동안 실행 중인 컴퓨팅 노드가 없습니다. 따라서 AMIs **최종** 대상 버전을 직접 사용할 수 있습니다. 즉, 각 홉에 대해 컨트롤러 업데이트(3단계)만 반복됩니다.

다음 예시에서는 옵션 **2 절차를 사용하여 클러스터를 23.11에서 25.11**로 업데이트합니다. 23.11은 호환성 기간인 25.11을 벗어나므로 컨트롤러는 두 홉(23.11에서 25.05로, 25.05에서 25.11로)으로 업데이트됩니다. 옵션 2 단계를 따릅니다. 3단계는 홉당 하나의 업데이트로 분할됩니다.

1. **1단계 - 대상 AMIs를 준비합니다.** **최종** 버전(25.11) 및 최신 AWS PCS 에이전트를 사용하여 AMIs를 빌드하거나 식별합니다. [1단계 - 대상 AMIs 준비](#version_update-procedure-option2-step1)을(를) 참조하세요.

1. **2단계 - 전체 플릿을 축소합니다.** 현재 용량을 기록한 다음( 참조[2단계 - 전체 플릿 축소](#version_update-procedure-option2-step2)) 모든 컴퓨팅 노드 그룹을 0으로 설정합니다.

   ```
   aws pcs update-compute-node-group \
   --cluster-identifier {{my-cluster}} \
   --compute-node-group-identifier {{my-cng}} \
   --scaling-configuration '{"minNodeCount": 0, "maxNodeCount": 0}'
   ```

1. **3a단계 - 컨트롤러를 23.11에서 25.05로 업데이트합니다.** 클러스터가 로 돌아갈 때까지 기다립니다`ACTIVE`.

   ```
   aws pcs update-cluster --cluster-identifier {{my-cluster}} \
   --scheduler version=25.05
   ```

1. **3b단계 - 컨트롤러를 25.05에서 25.11로 업데이트합니다.** 클러스터가 로 돌아갈 때까지 기다립니다`ACTIVE`.

   ```
   aws pcs update-cluster --cluster-identifier {{my-cluster}} \
   --scheduler version=25.11
   ```

1. **4단계 - 컴퓨팅 노드 그룹을 업데이트하고 용량을 복원합니다.** 각 컴퓨팅 노드 그룹에서 25.11 AMI를 설정하고 원래 용량 제한을 복원합니다( 참조[4단계 - 컴퓨팅 노드 그룹 업데이트 및 용량 복원](#version_update-procedure-option2-step4)).

   ```
   aws pcs update-compute-node-group \
   --cluster-identifier {{my-cluster}} \
   --compute-node-group-identifier {{my-cng}} \
   --ami-id {{ami-0123456789abcdef0}} \
   --scaling-configuration '{"minNodeCount": {{previous-min}}, "maxNodeCount": {{previous-max}}}'
   ```

**참고**  
각 컨트롤러 홉은 이전 컨트롤러의 호환성 기간 내에 있는 버전에 있어야 합니다. 유효한 중간 버전을 찾으려면 섹션을 참조하세요[버전 호환성](working-with_clusters_version_update.md#version_update-cluster-compatibility). 플릿은 3a단계와 3b단계까지 0으로 유지되므로 중간 AMI 업데이트가 필요하지 않습니다.