

# 클러스터 배치 그룹에서 용량 예약 사용
<a name="cr-cpg"></a>

클러스터 배치 그룹에서 용량 예약을 생성하여 워크로드에 대한 Amazon EC2 컴퓨팅 용량을 예약할 수 있습니다. 클러스터 배치 그룹은 짧은 네트워크 대기 시간과 높은 네트워크 처리량이라는 이점을 제공합니다.

클러스터 배치 그룹에서 용량 예약을 생성하면 필요할 때 필요한 만큼 클러스터 배치 그룹의 컴퓨팅 용량에 액세스할 수 있습니다. 이는 컴퓨팅 크기 조정이 필요한 고성능(HPC) 워크로드를 위한 용량을 예약하는 데 이상적입니다. 이를 통해 필요할 때 다시 확장할 수 있도록 용량을 사용할 수 있는 상태로 유지하면서 클러스터를 축소할 수 있습니다.

클러스터 배치 그룹에서 용량 예약을 생성한 다음 다른 AWS 계정과 공유할 수 있습니다. 자세한 내용은 [클러스터 배치 그룹에서 용량 예약 공유](#cpg-cr-sharing) 섹션을 참조하세요.

**Topics**
+ [제한 사항](#cr-cpg-limitations)
+ [클러스터 배치 그룹의 용량 예약 작업](#work-with-crs-cpgs)
+ [클러스터 배치 그룹에서 용량 예약 공유](#cpg-cr-sharing)

## 제한 사항
<a name="cr-cpg-limitations"></a>

클러스터 배치 그룹에서 용량 예약을 생성할 때 다음 사항에 유의하세요.
+ 기존의 용량 예약이 배치 그룹에 없으면 용량 예약을 수정하여 배치 그룹의 용량을 예약할 수 없습니다. 배치 그룹에서 용량을 예약하려면 배치 그룹에서 용량 예약을 생성해야 합니다.
+ 배치 그룹에서 용량 예약을 생성한 후에는 배치 그룹 외부에서 용량을 예약하도록 수정할 수 없습니다.
+ 배치 그룹에서 기존 용량 예약을 수정하거나 배치 그룹에서 추가 용량 예약을 생성하여 배치 그룹에서 예약 용량을 늘릴 수 있습니다. 그러나 용량 부족 오류가 발생할 가능성이 높아집니다.
+ 본인이 소유한 클러스터 배치 그룹에서만 용량 예약을 공유할 수 있습니다. 본인이 소유하지 않은 클러스터 배치 그룹에서는 용량 예약을 공유할 수 없습니다.
+ `active` 용량 예약이 있는 클러스터 배치 그룹은 삭제할 수 없습니다. 클러스터 배치 그룹의 모든 용량 예약을 취소해야 클러스터 배치 그룹을 삭제할 수 있습니다.

## 클러스터 배치 그룹의 용량 예약 작업
<a name="work-with-crs-cpgs"></a>

클러스터 배치 그룹과 함께 용량 예약 사용을 시작하려면 다음 단계를 수행하세요.

**참고**  
기존 클러스터 배치 그룹에서 용량 예약을 생성하려면 1단계를 건너뜁니다. 그런 다음 2단계와 3단계에서 기존 클러스터 배치 그룹의 ARN을 지정합니다.

**Topics**
+ [1단계: (*조건부*) 용량 예약에 사용할 클러스터 배치 그룹 생성](#create-cpg)
+ [2단계: 클러스터 배치 그룹에서 용량 예약 생성](#create-cr-in-cpg)
+ [3단계: 클러스터 배치 그룹의 용량 예약으로 인스턴스 시작](#launch-instance-into-cpg)

### 1단계: (*조건부*) 용량 예약에 사용할 클러스터 배치 그룹 생성
<a name="create-cpg"></a>

새 클러스터 배치 그룹을 생성해야 하는 경우에만 이 단계를 수행합니다. 기존 클러스터 배치 그룹을 사용하려면 이 단계를 건너뛰고 2단계와 3단계에서 해당 클러스터 배치 그룹의 ARN을 사용합니다.

------
#### [ Console ]

**클러스터 배치 그룹을 생성하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **배치 그룹(Placement Groups)**과 **배치 그룹 생성(Create placement group)**을 차례로 선택합니다.

1. **이름(Name)**에 배치 그룹을 설명하는 이름을 지정합니다.

1. **배치 전략(Placement strategy)**에서 **클러스터(Cluster)**를 선택합니다.

1. **그룹 생성**을 선택합니다.

1. **배치 그룹** 표의 **그룹 ARN** 열에 생성한 클러스터 배치 그룹의 ARN을 기록해 둡니다. 이 정보는 다음 단계에 필요합니다.

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

**클러스터 배치 그룹을 생성하려면 다음을 수행하세요.**  
[create-placement-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-placement-group.html) 명령을 사용합니다.

```
aws ec2 create-placement-group \
    --group-name MyPG \
    --strategy cluster
```

다음 단계에 필요하므로 출력에 반환된 배치 그룹 ARN을 기록해 둡니다.

------
#### [ PowerShell ]

**클러스터 배치 그룹을 생성하려면 다음을 수행하세요.**  
[New-EC2PlacementGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2PlacementGroup.html) cmdlet을 사용합니다.

```
New-EC2PlacementGroup `
    -GroupName my-placement-group `
    -Strategy "cluster"
```

다음 단계에 필요하므로 출력에 반환된 배치 그룹 ARN을 기록해 둡니다.

------

### 2단계: 클러스터 배치 그룹에서 용량 예약 생성
<a name="create-cr-in-cpg"></a>

용량 예약을 생성하는 것과 동일한 방식으로 클러스터 배치 그룹에서 용량 예약을 생성합니다. 그러나 용량 예약을 생성할 클러스터 배치 그룹의 ARN도 지정해야 합니다.

**고려 사항**
+ 지정된 클러스터 배치 그룹은 `available` 상태여야 합니다. 클러스터 배치 그룹이 `pending`, `deleting` 또는 `deleted` 상태인 경우 요청이 실패합니다.
+ 용량 예약과 클러스터 배치 그룹은 동일한 가용 영역에 있어야 합니다. 용량 예약 생성 요청이 클러스터 배치 그룹의 가용 영역과 다른 가용 영역을 지정하면 요청이 실패합니다.
+ 클러스터 배치 그룹에서 지원하는 인스턴스 유형에 대해서만 용량 예약을 생성할 수 있습니다. 지원되지 않는 인스턴스를 지정하면 요청이 실패합니다.
+ 클러스터 배치 그룹에서 `open` 용량 예약을 생성하고 일치하는 속성(배치 그룹 ARN, 인스턴스 유형, 가용 영역, 플랫폼 및 테넌시)이 있는 실행 중인 기존 인스턴스가 있는 경우 해당 인스턴스는 용량 예약에서 자동으로 실행됩니다.
+ 다음 중 하나에 해당하는 경우 용량 예약 생성 요청이 실패할 수 있습니다.
  + Amazon EC2에 용량이 충분하지 않아서 요청을 이행할 수 없습니다. 나중에 다시 시도하거나, 다른 가용 영역을 사용하거나, 용량을 줄여서 시도하세요. 애플리케이션이 인스턴스 유형 및 크기 면에서 유연한 경우 다른 인스턴스 속성으로 사용해 봅니다.
  + 요청한 수량이 선택한 인스턴스 패밀리에 대한 온디맨드 인스턴스 제한을 초과합니다. 인스턴스 패밀리에 대한 온디맨드 인스턴스 제한을 늘리고 다시 시도하세요. 자세한 내용은 [온디맨드 인스턴스 할당량](ec2-on-demand-instances.md#ec2-on-demand-instances-limits) 섹션을 참조하세요.

------
#### [ Console ]

**용량 예약을 생성하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. **용량 예약**을 선택한 후 **용량 예약 생성**을 선택합니다.

1. **용량 예약 생성** 페이지에서 필요에 따라 인스턴스 유형, 플랫폼, 가용 영역, 테넌시, 수량 및 종료 날짜를 지정합니다.

1. **배치 그룹**에서 용량 예약을 생성할 클러스터 배치 그룹의 ARN을 선택합니다.

1. **생성(Create)**을 선택합니다.

자세한 내용은 [용량 예약 생성](capacity-reservations-create.md) 섹션을 참조하세요.

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

**용량 예약을 생성하려면**  
[create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) 명령을 사용합니다. `--placement-group-arn`에 대해 용량 예약을 생성할 클러스터 배치 그룹의 ARN을 지정합니다.

```
aws ec2 create-capacity-reservation \
    --instance-type instance_type \
    --instance-platform platform \
    --availability-zone-id az_id \
    --instance-count quantity \
    --placement-group-arn "placement_group_arn"
```

------
#### [ PowerShell ]

**용량 예약을 생성하려면**  
[Add-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2CapacityReservation.html) cmdlet을 사용합니다. `-PlacementGroupArn`에 대해 용량 예약을 생성할 클러스터 배치 그룹의 ARN을 지정합니다.

```
Add-EC2CapacityReservation `
    -InstanceType instance_type `
    -InstancePlatform platform `
    -AvailabilityZoneId az_id `
    -InstanceCount quantity `
    -PlacementGroupArn "placement_group_arn"
```

------

### 3단계: 클러스터 배치 그룹의 용량 예약으로 인스턴스 시작
<a name="launch-instance-into-cpg"></a>

다음 옵션 중 하나를 사용하여 클러스터 배치 그룹의 용량 예약으로 인스턴스를 시작할 수 있습니다.
+ *인스턴스를 시작할 클러스터 배치 그룹의 ARN 지정* - 클러스터 배치 그룹의 ARN을 제공하면 Amazon EC2가 해당 클러스터 배치 그룹에서 인스턴스를 시작합니다. 다음 방법 중 하나를 사용할 수 있습니다.
  + *`open` 지정* - 인스턴스 시작 요청에서 용량 예약을 지정할 필요가 없습니다. 인스턴스에 지정한 배치 그룹의 용량 예약과 일치하는 속성(배치 그룹 ARN, 인스턴스 유형, 가용 영역, 플랫폼 및 테넌시)이 있는 경우 인스턴스가 용량 예약에서 자동으로 실행됩니다.
  + *용량 예약 지정* - 용량 예약이 대상 인스턴스 시작만 허용하는 경우 요청에 클러스터 배치 그룹과 함께 목표 용량 예약을 지정해야 합니다.
  + *용량 예약 그룹 지정* - 자세한 내용은 [용량 예약 그룹이 포함된 클러스터 배치 그룹에서 용량 예약 사용](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cpg-odcr-crg.html)을 참조하세요.
+ *용량 예약 그룹만 지정* - 자세한 내용은 [용량 예약 그룹이 포함된 클러스터 배치 그룹에서 용량 예약 사용](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cpg-odcr-crg.html)을 참조하세요.
+ *용량 예약만 지정* - 클러스터 배치 그룹의 용량 예약으로 인스턴스를 시작할 수 있습니다.
**참고**  
용량 예약만 지정하거나 용량 예약 그룹만 지정하여 인스턴스를 시작하면 인스턴스는 클러스터 배치 그룹에 생성된 용량 예약으로 시작되지만 인스턴스는 클러스터 배치 그룹에 직접 연결되지 않습니다.

------
#### [ Console ]

**인스턴스를 기존 용량 예약으로 시작하려면**

1. 절차에 따라 [인스턴스를 시작](ec2-launch-instance-wizard.md)하되 다음 단계를 완료하여 배치 그룹 및 용량 예약 설정을 지정할 때까지 인스턴스를 시작하지 마세요.

1. **고급 세부 정보**를 열고 다음을 수행합니다.

   1. **배치 그룹**의 경우 인스턴스를 시작할 클러스터 배치 그룹을 선택합니다.

   1. **용량 예약(Capacity Reservation)**에서 용량 예약 구성에 따라 다음 옵션 중 하나를 선택합니다.
      + **열림** - 일치하는 속성과 충분한 용량이 있는 클러스터 배치 그룹의 `open` 용량 예약으로 인스턴스를 시작합니다.
      + **ID별 대상** - 대상 인스턴스 시작만 허용하는 용량 예약으로 인스턴스를 시작합니다.
      + **그룹별 대상 지정** - 선택한 용량 예약 그룹에서 일치하는 속성 및 가용 용량이 있는 용량 예약으로 인스턴스를 시작합니다.

1. **Summary**(요약) 패널에서 인스턴스 구성을 검토한 다음 **Launch instance**(인스턴스 시작)를 선택합니다. 자세한 내용은 [콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작](ec2-launch-instance-wizard.md) 섹션을 참조하세요.

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

**인스턴스를 기존 용량 예약으로 시작하려면**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 명령을 사용합니다. 특정 용량 예약 또는 용량 예약 그룹을 대상으로 지정해야 하는 경우 `--capacity-reservation-specification` 파라미터를 지정합니다. `--placement`에 대해 `GroupName` 파라미터를 지정한 다음 이전 단계에서 생성한 배치 그룹의 이름을 지정합니다.

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count quantity \
    --instance-type instance_type \
    --key-name key_pair_name \
    --subnet-id subnet-0abcdef1234567890 \
    --capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=capacity_reservation_id} \
    --placement "GroupName=cluster_placement_group_name"
```

------
#### [ PowerShell ]

**인스턴스를 기존 용량 예약으로 시작하려면**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet을 사용합니다. `-Placement`에 대해 `GroupName` 파라미터를 지정한 다음 이전 단계에서 생성한 배치 그룹의 이름을 지정합니다.

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType instance_type `
    -KeyName key_pair_name `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationTarget_CapacityReservationId capacity_reservation_id `
    -Placement_GroupName cluster_placement_group_name
```

------

## 클러스터 배치 그룹에서 용량 예약 공유
<a name="cpg-cr-sharing"></a>

용량 예약만 공유하거나 용량 예약과 용량 예약이 생성된 클러스터 배치 그룹을 모두 공유하여 클러스터 배치 그룹에서 용량 예약을 공유할 수 있습니다.

용량 예약만 공유하면 소비자 계정에 해당 용량 예약에 대한 액세스 권한만 부여할 수 있습니다. 소비자 계정은 용량 예약이 생성된 클러스터 배치 그룹에 대한 가시성이나 액세스 권한이 없습니다. 이를 통해 소비자 계정 액세스를 세밀하게 제어할 수 있습니다. 소비자 계정은 ARN을 포함하여 클러스터 배치 그룹에 대한 정보를 볼 수 없습니다.

클러스터 배치 그룹과 용량 예약을 공유하면 소비자 계정이 클러스터 배치 그룹을 보고 액세스할 수 있습니다. 인스턴스를 시작하고 인스턴스에서 자체 용량 예약을 생성할 수 있습니다.

자세한 정보는 다음 리소스를 참조하세요.
+ [클러스터 배치 그룹의 용량 예약으로 인스턴스 시작](#launch-instance-into-cpg)
+ [공유 용량 예약](capacity-reservation-sharing.md)
+ [공유된 배치 그룹](share-placement-group.md)