

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

# AWS PCS의 용량 예약
<a name="working-with_capacity-reservations"></a>

 온디맨드 용량 예약 또는 ML용 Amazon EC2 용량 블록을 사용하여 특정 가용 영역에서 특정 기간 동안 Amazon EC2 용량을 예약하여 필요할 때 필요한 컴퓨팅 용량을 사용할 수 있도록 할 수 있습니다.

 **온디맨드 용량 예약(ODCRs)**을 사용하면 언제든지 특정 가용 영역의 Amazon EC2 인스턴스에 대한 컴퓨팅 용량을 예약할 수 있습니다. 장기 약정이나 선결제 없이 언제든지 예약을 생성하고 취소할 수 있습니다. ODCRs은 요구 사항이 변경될 때 수정할 수 있는 유연한 용량 예약이 필요한 경우에 적합합니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [온디맨드 용량 예약을](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) 참조하세요.

 **ML용 Amazon EC2 용량 블록**을 사용하면 향후 사용을 위해 최대 8주 전에 GPU 기반 가속 컴퓨팅 인스턴스를 예약할 수 있습니다. 1\$164개의 인스턴스 블록을 1일에서 6개월까지 예약할 수 있습니다. 용량 블록은 특정 시간에 GPU 용량에 대한 액세스를 보장해야 하는 기계 학습 워크로드에 적합합니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [ML용 용량 블록](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html)을 참조하세요.

**Topics**
+ [AWS PCSODCRs 사용](capacity-reservations-odcr.md)
+ [AWS PCS에서 ML에 Amazon EC2 용량 블록 사용](capacity-blocks.md)

# AWS PCSODCRs 사용
<a name="capacity-reservations-odcr"></a>

 AWS PCS가 예약 인스턴스를 사용하는 방법을 선택할 수 있습니다. **열려** 있는 ODCR을 생성하면 AWS PCS 또는 계정의 다른 프로세스에서 시작한 일치하는 인스턴스가 예약에 포함됩니다. **대상** ODCR의 경우 특정 예약 ID로 시작된 인스턴스만 예약에 포함됩니다. 시간에 민감한 워크로드의 경우 대상 ODCRs이 더 일반적입니다.

 시작 템플릿에 추가하여 대상 ODCR을 사용하도록 AWS PCS 컴퓨팅 노드 그룹을 구성할 수 있습니다. 이 작업을 수행하는 단계는 다음과 같습니다.

1.  [ Amazon EC2 용량 예약 생성 사용 설명서를 사용하여 대상 온디맨드 용량 예약(ODCR)을 생성합니다](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html).

1.  ODCR을 시작 템플릿과 연결합니다. 이를 수행하는 방법에는 두 가지가 있습니다.

   1.  **직접 ODCR 연결:** 시작 템플릿에서 ODCR ID를 직접 참조합니다. 이 접근 방식은 엄격한 용량 제어를 제공하며 인스턴스 채우기를 지원하지 않습니다(컴퓨팅 노드 그룹이 ODCR에서 사용할 수 있는 것보다 많은 인스턴스를 요청하는 경우 추가 인스턴스가 시작되지 않음).

   1.  **용량 예약 그룹 연결:** 용량 예약 그룹에 ODCR을 추가하고 시작 템플릿에서 그룹을 참조합니다. 이 접근 방식은 인스턴스 채우기를 지원하므로 예약 용량이 초과되면 AWS PCS가 추가 온디맨드 인스턴스를 시작할 수 있습니다.

1.  시작 템플릿을 사용하도록 AWS PCS 컴퓨팅 노드 그룹을 생성하거나 업데이트합니다. 자세한 내용은 [AWS PCS 컴퓨팅 노드 그룹 사용 설명서를 참조하세요](https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng.html).

   1. 컴퓨팅 노드 그룹의 `purchaseOption`를 로 설정합니다`ONDEMAND`.

## 예: 대상 ODCR을 사용하여 hpc6a.48xlarge 인스턴스 예약 및 사용
<a name="capacity-reservations-odcr-example"></a>

 이 예제 명령은 32hpc6a.48xlarge 인스턴스에 대한 대상 ODCR을 생성합니다. 배치 그룹에서 예약 인스턴스를 시작하려면 명령에 `--placement-group-arn`를 추가합니다. `--end-date` 및를 사용하여 중지 날짜를 정의할 수 있습니다. `--end-date-type`그렇지 않으면 수동으로 종료될 때까지 예약이 계속됩니다.

```
aws ec2 create-capacity-reservation \
    --instance-type hpc6a.48xlarge \
    --instance-platform Linux/UNIX \
    --availability-zone us-east-2a \
    --instance-count 32 \
    --instance-match-criteria targeted
```

 이 명령의 결과는 새 ODCR의 ARN이 됩니다. ODCR ID는 ARN에서 검색`"arn:aws:ec2:us-east-2:123456789012:capacity-reservation/ODCR-ID"`하거나 [ Amazon EC2 DescribeCapacityReservations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeCapacityReservations.html)를 사용하여 검색할 수 있습니다.

 **직접 ODCR 연결:** 시작 템플릿에 ODCR ID를 추가합니다. 다음은 ODCR ID를 참조하는 시작 템플릿의 예입니다.

```
{
  "CapacityReservationSpecification": {
    "CapacityReservationTarget": {
      "CapacityReservationId": "cr-1234567890abcdef1"
    }
  }
}
```

 **용량 예약 그룹 연결:** 용량 예약 그룹을 생성하고 시작 템플릿에 그룹을 추가합니다. 다음 명령은 라는 용량 예약 그룹을 생성합니다`EXAMPLE-CR-GROUP`.

```
aws resource-groups create-group \
    --name EXAMPLE-CR-GROUP \
    --configuration \
        '{"Type": "AWS::EC2::CapacityReservationPool"}' \
        '{"Type": "AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

 다음 명령은 용량 예약 그룹에 ODCR을 추가합니다.

```
aws resource-groups group-resources --group EXAMPLE-CR-GROUP \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234567890abcdef1
```

 ODCR을 생성하여 용량 예약 그룹에 추가하면 이제 시작 템플릿에 추가하여 AWS PCS 컴퓨팅 노드 그룹에 연결할 수 있습니다. 다음은 용량 예약 그룹을 참조하는 시작 템플릿의 예입니다.

```
{
  "CapacityReservationSpecification": {
    "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/EXAMPLE-CR-GROUP"
  }
}
```

 마지막으로 hpc6a.48xlarge 인스턴스를 사용하고 ODCR을 참조하는 시작 템플릿을 사용하도록 AWS PCS 컴퓨팅 노드 그룹을 생성하거나 업데이트합니다. 정적 노드 그룹의 경우 최소 및 최대 인스턴스를 예약 크기(32)로 설정합니다. 동적 노드 그룹의 경우 최소 인스턴스를 0으로 설정하고 최대 인스턴스를 원하는 인스턴스 크기로 설정합니다.

 이 예제는 하나의 컴퓨팅 노드 그룹에 프로비저닝된 단일 ODCR의 간단한 구현입니다. 그러나 AWS PCS는 다른 많은 설계를 지원합니다. 예를 들어 대규모 ODCR 또는 용량 예약 그룹을 여러 컴퓨팅 노드 그룹으로 세분화할 수 있습니다. 또는 다른 AWS 계정이 생성하여 사용자와 공유한 ODCRs을 사용할 수 있습니다.

 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [온디맨드 용량 예약 및 ML용 용량 블록](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-overview.html)을 참조하세요.

# AWS PCS에서 ML에 Amazon EC2 용량 블록 사용
<a name="capacity-blocks"></a>

ML용 Amazon EC2 용량 블록은 특정 날짜 및 시간 범위 내에 GPU 기반 가속 컴퓨팅 인스턴스를 미리 예약하여 단기 워크로드를 지원할 수 있는 Amazon EC2 구매 옵션입니다. 용량 블록 내부에서 실행되는 인스턴스는 지연 시간이 짧은 페타비트 규모의 비차단 네트워킹을 위해 Amazon EC2 UltraClusters 내부에 자동으로 서로 가깝게 배치됩니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [ML용 용량 블록](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html)을 참조하세요.

시작 템플릿을 사용하여 컴퓨팅 노드 그룹의 인스턴스를 시작할 때 AWS PCS가 용량 블록을 사용하도록 할 수 있습니다.

**참고**  
AWS PCS는 Slurm 버전 24.05 이후 용량 블록에 대한 지원을 도입했습니다.

## 제한 사항
<a name="capacity-blocks-limitations"></a>
+ AWS PCS는 P5en, P5e, P5 및 P4d 인스턴스 패밀리가 있는 용량 블록만 지원합니다.
+ 컴퓨팅 노드 그룹은 한 번에 하나의 용량 블록에만 연결할 수 있습니다.
+ 컴퓨팅 노드 그룹을 여러 용량 블록을 결합하는 용량 예약 그룹과 연결할 수 없습니다.
+  AWS PCS와 함께 사용하려면 용량 블록이 `scheduled` 또는 `active` 상태여야 합니다. 와 같은 다른 상태에서는 용량 블록을 사용할 수 없습니다`payment-failed`. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [용량 블록 보기를 참조하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-view.html).

## 용량 블록 만료
<a name="capacity-blocks-expiration"></a>

용량 블록은 특정 날짜 및 시간 범위로 제한됩니다. 용량 블록이 만료되는 경우:
+ 해당 용량 블록과 연결된 컴퓨팅 노드 그룹은 계속 존재하며 동일한 대기열과 연결된 상태로 유지됩니다.
+ Slurm 설정에 따라 컴퓨팅 노드 그룹의 모든 인스턴스가 종료되고 활성 작업이 실패할 수 있습니다.
+ AWS PCS는 컴퓨팅 노드 그룹에서 새 인스턴스를 시작할 수 없습니다.
+ 대기열에 다른 컴퓨팅 노드 그룹이 연결되거나 새 용량 블록을 지정하는 새 시작 템플릿을 사용하도록 컴퓨팅 노드 그룹을 업데이트할 때까지 대기 중이거나 새로 제출된 모든 작업은 보류 상태로 유지됩니다.

# 용량 블록을 사용하도록 AWS PCS 컴퓨팅 노드 그룹 구성
<a name="capacity-blocks-configure-cng"></a>

**용량 블록을 컴퓨팅 노드 그룹과 연결하려면**

1. 용량 블록을 지정하는 AWS PCS용 Amazon EC2 시작 템플릿을 생성합니다. AWS PCS용 시작 템플릿 생성에 대한 자세한 내용은 섹션을 참조하세요[AWS PCS에서 Amazon EC2 시작 템플릿 사용](working-with_launch-templates.md).

   시작 템플릿에는 다음이 포함되어야 합니다.
   + `MarketType`의 값은 로 설정해야 `InstanceMarketOptions` 합니다`capacity-block`.
   + `CapacityReservationSpecification`가 유효한 `CapacityReservationId`
   + 구매한 용량 블록의 인스턴스 유형`InstanceType`과 일치하는 유효한 입니다.

1. 시작 템플릿을 사용하는 컴퓨팅 노드 그룹을 생성합니다. 자세한 내용은 [AWS PCS에서 컴퓨팅 노드 그룹 생성](working-with_cng_create.md) 단원을 참조하십시오. 시작 템플릿을 사용하도록 기존 컴퓨팅 노드 그룹을 업데이트할 수도 있습니다. 자세한 내용은 [AWS PCS 컴퓨팅 노드 그룹 업데이트](working-with_cng_update.md) 단원을 참조하십시오.

   컴퓨팅 노드 그룹을 생성하거나 업데이트할 때:
   + 컴퓨팅 노드 그룹을 생성하거나 업데이트하는 데 사용하는 IAM 자격 증명에는 다음 권한이 있어야 합니다.

     ```
     ec2:DescribeCapacityReservations
     ```

     자세한 내용은 [AWS PCS에 대한 최소 권한](security-min-permissions.md) 단원을 참조하십시오.
   + 용량 블록은 `scheduled` 또는 `active` 상태여야 합니다.
   + 컴퓨팅 노드 그룹의 `purchaseOption`를 로 설정합니다`CAPACITY_BLOCK`.
   + `maxInstanceCount` 컴퓨팅 노드 그룹의는 용량 블록의 크기를 초과해서는 안 됩니다.
   + 컴퓨팅 노드 그룹의 가용 영역은 컴퓨팅 노드 그룹의 서브넷 가용 영역 중 하나와 일치해야 합니다.

**중요**  
컴퓨팅 노드 그룹을 업데이트할 때는 해당 인스턴스 유형을 변경할 수 없습니다. 컴퓨팅 노드 그룹과 동일한 인스턴스 유형의 용량 블록만 사용할 수 있습니다. 다른 인스턴스 유형의 용량 블록을 사용하려면 새 컴퓨팅 노드 그룹을 생성해야 합니다.

# AWS PCS에서 용량 블록 사용에 대해 자주 묻는 질문
<a name="capacity-blocks-faq"></a>

**방금 용량 블록 비용을 지불하고 AWS PCS에서 즉시 사용하려고 했지만 컴퓨팅 노드 그룹 생성에 실패했습니다. 어떻게 된 걸까요?**  
용량 블록이 `scheduled` 또는 `active` 상태가 아닐 수 있습니다. 용량 블록이 `scheduled` 또는가 된 후 다시 시도하세요`active`.

** AWS PCS에서 용량 블록을 사용하고 있는데 익스텐션이 만료되기 전에 구입했습니다. AWS PCS에서 계속 사용하려면 어떻게 해야 하나요?**  
 AWS PCS에서 용량 블록을 계속 사용하기 위해 아무 작업도 수행할 필요가 없습니다. 확장 결제가 성공한 후 용량 블록의 종료 날짜가 업데이트됩니다. 용량 블록이 만료되지 않는 한 컴퓨팅 노드 그룹은 계속 작동합니다. 확장 결제에 실패하면 용량 블록은 유지`active`되고 컴퓨팅 노드 그룹은 원래 종료 날짜에 용량 블록이 만료될 때까지 작동합니다.

**용량 블록이 만료되면 대기 중인 작업과 실행 중인 작업은 어떻게 되나요?**  
용량 블록이 만료되기 전에 시작되지 않은 대기 중인 작업은 다른 컴퓨팅 노드 그룹을 대기열에 연결하거나 컴퓨팅 노드 그룹을 새 용량 블록으로 업데이트할 때까지 보류 상태로 유지됩니다. 여전히 대기열에 작업을 제출할 수 있습니다. Slurm 설정은 활성 작업에 영향을 미칩니다. 기본적으로 활성 작업은 자동으로 다시 대기열에 추가되지만 오류가 발생하거나 실패할 수 있습니다.

**내 용량 블록이 만료되었습니다. 어떻게 해야 하나요?**  
아무 작업도 할 필요가 없습니다. Amazon EC2 콘솔에서 EC2 용량 예약 상태를 확인할 수 있습니다. 용량 블록이 만료되면 해당 용량 블록과 연결된 컴퓨팅 노드 그룹이 계속 존재하고 동일한 대기열을 처리합니다. 컴퓨팅 노드 그룹에는 작업을 실행할 인스턴스가 없습니다. 사용자가 실행되지 않는 작업을 제출하지 못하도록 컴퓨팅 노드 그룹을 삭제하거나 대기열에서 연결을 해제할 수 있습니다.

**새 용량 블록을 AWS PCS 컴퓨팅 노드 그룹에 사용하려고 합니다. 어떻게 해야 합니까?**  
새 용량 블록을 사용하려면 새 컴퓨팅 노드 그룹을 생성하는 것이 좋습니다. 자세한 내용은 [용량 블록을 사용하도록 AWS PCS 컴퓨팅 노드 그룹 구성](capacity-blocks-configure-cng.md) 단원을 참조하십시오.

**클러스터와 서비스 간에 용량 블록 1개를 공유하려면 어떻게 해야 하나요?**  
용량 블록을 여러 클러스터와 서비스로 분할할 수 있습니다. 예를 들어, PCS-Cluster-1의 노드가 20개, PCS-Cluster-2의 노드가 16개PCS-Cluster-2, 다른 서비스의 나머지 노드가 있는 `p5.48xlarge` 인스턴스 64개로 용량 블록을 분할하려면 PCS-Cluster-1의 경우 `minInstanceCount` 및 `maxInstanceCount`를 모두 20으로 설정하고 PCS-Cluster-2의 경우 16으로 설정합니다.

**용량 블록을 1개 이상 사용하거나 컴퓨팅 노드 그룹을 1개 이상 사용할 수 있나요?**  
아니요. 용량 블록 1개만 단일 컴퓨팅 노드 그룹과 연결할 수 있습니다. AWS PCS는 여러 용량 블록을 결합하는 용량 예약 그룹을 지원하지 않습니다.

**용량 블록이 시작되거나 만료되는 시기를 어떻게 알 수 있나요?**  
 AWS PCS와 독립적으로 Amazon EC2는 용량 블록 예약이 시작될 때 EventBridge를 통해 `Capacity Block Reservation Delivered` 이벤트를 전송하고 용량 블록 예약이 만료되기 40분 전에 `Capacity Block Reservation Expiration Warning` 이벤트를 전송합니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [ EventBridge를 사용하여 용량 블록 모니터링을 참조하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-monitor.html).

**Slurm은 용량 블록의 상태를 어떻게 추적하나요?**  
를 실행`sinfo`하여 AWS PCS가 용량 블록을 사용하는 방법을 이해할 수 있습니다. 다음 예제 출력에서 대기열은 `active` 용량 블록에서 4개의 인스턴스를 실행하는 컴퓨팅 노드 그룹과 연결됩니다. 노드는 `idle` Slurm 상태(사용 가능하지만 아직 작업에 할당되지 않음)입니다.  

```
$ sinfo  
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST  
fanout up infinite 4 idle node-fanout-[1-4]
```
노드가 대신 `maint` 상태인 경우를 실행`scontrol show res`하여이 상태를 제어하는 Slurm 예약에 대한 세부 정보를 볼 수 있습니다. 다음 예제 출력에서 용량 블록은 미래 시작 날짜를 `scheduled` 갖습니다.  

```
$ scontrol show res                                                                                                  
ReservationName=node-fanout-scheduled StartTime=2025-10-14T13:09:17 EndTime=2025-10-14T13:11:17 Duration=00:02:00    
   Nodes=node-fanout-[1-4] NodeCnt=4 CoreCnt=16 Features=(null) PartitionName=(null) Flags=MAINT,SPEC_NODES          
   TRES=cpu=16                                                                                                       
   Users=root Groups=(null) Accounts=(null) Licenses=(null) State=ACTIVE BurstBuffer=(null)                          
   MaxStartDelay=(null)                                                                                              
   Comment=node-fanout Scheduled
```

**용량 블록이 공유되기 때문에 용량을 시작하는 동안 발생하는 오류가 인지 어떻게 알 수 있습니까?**  
Amazon EC2 콘솔에서 **용량 예약을** 확인하여 용량 블록에서 활발하게 프로비저닝된 인스턴스 수를 확인합니다. 각 인스턴스의 태그를 확인하여 인스턴스를 사용하는 서비스 또는 클러스터를 찾습니다. 예를 들어 AWS , PCS의 모든 인스턴스에는 인스턴스`aws:pcs:cluster-id = pcs_l0mizqyk5o | aws:pcs:compute-node-group-id = pcs_ic7onkmfqk`가 속한 클러스터 및 컴퓨팅 노드 그룹을 나타내는와 같은 AWS PCS 태그가 있습니다. 그런 다음 용량 블록이 최대 용량인지 확인할 수 있습니다.  
`scontrol show nodes`를 사용하여 AWS PCS 클러스터의 용량 블록 노드가를 트리거하고 있는지 확인합니다`ReservationCapacityExceeded`.  

```
[root@ip-172-16-10-54 ~]# scontrol show nodes test-node-8-gamma-cb-2  
NodeName=test-8-gamma-cb-2 CoresPerSocket=1  
   CPUAlloc=0 CPUEfctv=8 CPUTot=8 CPULoad=0.00  
   AvailableFeatures=test-8-gamma-cb,gpu  
   ActiveFeatures=test-8-gamma-cb,gpu  
   Gres=gpu:H100:1  
   NodeAddr=test-8-gamma-cb-2 NodeHostName=test-8-gamma-cb-2  
   RealMemory=249036 AllocMem=0 FreeMem=N/A Sockets=8 Boards=1  
   State=IDLE+CLOUD+POWERING_DOWN ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A  
   Partitions=my-q  
   BootTime=None SlurmdStartTime=None  
   LastBusyTime=Unknown ResumeAfterTime=None  
   CfgTRES=cpu=8,mem=249036M,billing=8  
   AllocTRES=  
   CurrentWatts=0 AveWatts=0  
   Reason=Failed to launch backing instance (Error Code: ReservationCapacityExceeded) [root@2025-08-28T15:15:33]
```

**여러 컴퓨팅 노드 그룹이 동일한 대기열에 연결된 경우 용량 블록 지원 인스턴스에서 작업을 강제로 실행하려면 어떻게 해야 합니까?**  
Slurm 기능 및 제약 조건을 사용하여 작업을 특정 노드 세트에 잠글 수 있습니다. 상태가 아닌 노드에서만 작동하므로 각 컴퓨팅 노드 그룹에 대해 Slurm 가중치를 설정하지 않는 것이 좋습니다`maint`.