배치 그룹과 함께 Capacity Reservations 사용하기
배치 그룹과 함께 Capacity Reservations 사용하기
**배치 그룹(placement group)**에 Capacity Reservations를 만들면 워크로드를 위한 Amazon EC2 컴퓨트 용량을 예약할 수 있어요.
출처: 문서
본문
배치 그룹에 Capacity Reservation을 만들면, 필요할 때 그리고 필요한 만큼의 기간 동안 배치 그룹의 컴퓨트 용량에 접근할 수 있게 보장해요. 이를 통해 용량을 계속 사용할 수 있음을 보장하면서 축소(scaledown)하고, 필요할 때 다시 확장(scale up)할 수 있어요.
배치 그룹에 Capacity Reservation을 만든 뒤에는 다른 AWS 계정과 공유할 수 있어요. 자세한 내용은 Sharing Capacity Reservations in placement groups 문서를 참고하세요.
지원되는 배치 전략 (Supported placement strategies)
다음 전략을 사용하는 배치 그룹에 Capacity Reservations를 만들 수 있어요.
- Cluster
- Precision Time
참고: Spread와 Partition 배치 그룹은 Capacity Reservations를 지원하지 않아요. Capacity Blocks는 배치 그룹을 지원하지 않습니다.
지원되는 인스턴스 유형, 사용 가능한 리전, 배치 전략에 대한 정보는 Placement groups for your Amazon EC2 instances 문서를 참고하세요.
관련 주제 (Topics)
- 제한사항 (Limitations)
- 배치 그룹에서 Capacity Reservations 작업 (Work with Capacity Reservations in placement groups)
- 배치 그룹에서 Capacity Reservations 공유 (Sharing Capacity Reservations in placement groups)
제한사항 (Limitations)
배치 그룹에서 Capacity Reservations를 만들 때 다음을 기억하세요.
- 기존 Capacity Reservation이 배치 그룹에 없으면, 그 Capacity Reservation을 수정해 배치 그룹에서 용량을 예약하게 할 수 없어요. 배치 그룹에서 용량을 예약하려면 그 배치 그룹에 Capacity Reservation을 만들어야 합니다.
- 배치 그룹에 Capacity Reservation을 만든 뒤에는 이를 수정해 배치 그룹 밖에서 용량을 예약하도록 할 수 없어요.
- 배치 그룹에서 기존 Capacity Reservation을 수정하거나 배치 그룹에 추가 Capacity Reservations를 만들어 예약 용량을 늘릴 수 있어요. 하지만 용량 부족(insufficient capacity) 오류가 날 가능성이 높아집니다.
- 소유한 배치 그룹에서만 Capacity Reservations를 공유할 수 있어요. 소유하지 않은 배치 그룹의 Capacity Reservations는 공유할 수 없습니다.
- 활성 Capacity Reservations가 있는 배치 그룹은 삭제할 수 없어요. 배치 그룹을 삭제하려면 먼저 배치 그룹의 모든 Capacity Reservations를 취소해야 합니다.
배치 그룹에서 Capacity Reservations 작업하기 (Work with Capacity Reservations in placement groups)
배치 그룹에서 Capacity Reservations 사용을 시작하려면 다음 단계를 수행하세요.
참고: 기존 배치 그룹에 Capacity Reservation을 만들려면 1단계를 건너뛰고, 2단계와 3단계에서 기존 배치 그룹의 ARN을 지정하세요.
작업 (Tasks)
- 1단계: (조건부) Capacity Reservation에 사용할 배치 그룹 만들기
- 2단계: 배치 그룹에 Capacity Reservation 만들기
- 3단계: 배치 그룹의 Capacity Reservations에 인스턴스 실행
1단계: (조건부) Capacity Reservation에 사용할 배치 그룹 만들기
이 단계는 새 배치 그룹을 만들어야 할 때만 수행하세요. 기존 배치 그룹을 사용하려면 이 단계를 건너뛰고 2단계와 3단계에서 그 배치 그룹의 ARN을 사용합니다.
콘솔 (Console)
배치 그룹을 만들려면
- Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
- 탐색 창에서 Placement Groups를 선택한 다음 Create placement group을 선택합니다.
- Name에 배치 그룹의 설명적인 이름을 지정합니다.
- Placement strategy에서 배치 전략을 선택합니다.
- Create group을 선택합니다.
- Placement groups 표의 Group ARN 열에서 만든 배치 그룹의 ARN을 적어 둡니다. 다음 단계에서 필요해요.
AWS CLI
배치 그룹을 만들려면
create-placement-group 명령을 사용합니다.
aws ec2 create-placement-group \
--group-name MyPG \
--strategy strategy
출력에서 반환된 배치 그룹 ARN을 메모해 두세요. 다음 단계에서 필요해요.
PowerShell
배치 그룹을 만들려면
New-EC2PlacementGroup cmdlet을 사용합니다.
New-EC2PlacementGroup `
-GroupName my-placement-group `
-Strategy strategy
출력에서 반환된 배치 그룹 ARN을 메모해 두세요. 다음 단계에서 필요해요.
2단계: 배치 그룹에 Capacity Reservation 만들기
배치 그룹에 Capacity Reservation을 만드는 방법은 일반 Capacity Reservation을 만드는 방법과 같아요. 하지만 Capacity Reservation을 만들 배치 그룹의 ARN도 지정해야 합니다.
고려사항 (Considerations)
- 지정된 배치 그룹은
available상태여야 해요. 배치 그룹이pending,deleting, 또는deleted상태이면 요청이 실패합니다. - Capacity Reservation과 배치 그룹은 같은 가용 영역에 있어야 해요. 배치 그룹과 다른 가용 영역을 지정하면 요청이 실패합니다.
- 배치 그룹이 지원하는 인스턴스 유형에 대해서만 Capacity Reservations를 만들 수 있어요. 지원되지 않는 인스턴스 유형을 지정하면 요청이 실패합니다.
- 배치 그룹에 open Capacity Reservation을 만들고 일치하는 속성(배치 그룹 ARN, 인스턴스 유형, 가용 영역, 플랫폼, 테넌시)을 가진 기존 실행 중인 인스턴스가 있다면, 그 인스턴스들은 자동으로 Capacity Reservation에서 실행됩니다.
- 다음 중 하나가 해당하면 Capacity Reservation 생성 요청이 실패할 수 있어요.
- Amazon EC2에 요청을 충족할 충분한 용량이 없음. 나중에 다시 시도하거나, 다른 가용 영역을 시도하거나, 더 작은 용량을 시도하세요. 워크로드가 인스턴스 유형과 크기에 걸쳐 유연하다면 다른 인스턴스 속성을 시도하세요.
- 요청한 수량이 선택한 인스턴스 패밀리의 On-Demand Instance 한도를 초과함. 인스턴스 패밀리의 On-Demand Instance 한도를 늘리고 다시 시도하세요. 자세한 내용은 On-Demand Instance quotas 문서를 참고하세요.
콘솔 (Console)
Capacity Reservation을 만들려면
- Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
- Capacity Reservations를 선택한 다음 Create Capacity Reservation을 선택합니다.
- Create a Capacity Reservation 페이지에서 필요에 따라 인스턴스 유형, 플랫폼, 가용 영역, 테넌시, 수량, 종료 날짜를 지정합니다.
- Placement group에서 Capacity Reservation을 만들 배치 그룹의 ARN을 선택합니다.
- Create를 선택합니다.
자세한 내용은 Create a Capacity Reservation 문서를 참고하세요.
AWS CLI
Capacity Reservation을 만들려면
create-capacity-reservation 명령을 사용합니다. --placement-group-arn에는 Capacity Reservation을 만들 배치 그룹의 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
Capacity Reservation을 만들려면
Add-EC2CapacityReservation cmdlet을 사용합니다. -PlacementGroupArn에는 Capacity Reservation을 만들 배치 그룹의 ARN을 지정합니다.
Add-EC2CapacityReservation `
-InstanceType instance_type `
-InstancePlatform platform `
-AvailabilityZoneId az_id `
-InstanceCount quantity `
-PlacementGroupArn "placement_group_arn"
3단계: 배치 그룹의 Capacity Reservations에 인스턴스 실행
다음 옵션 중 하나로 배치 그룹에 있는 Capacity Reservation에 인스턴스를 실행할 수 있어요.
- 인스턴스를 실행할 배치 그룹의 ARN 지정 – 배치 그룹의 ARN을 제공하면 Amazon EC2가 인스턴스를 그 배치 그룹에 실행합니다. 다음 방법 중 하나를 사용할 수 있어요.
- open 지정 – 인스턴스 실행 요청에서 Capacity Reservation을 지정할 필요가 없어요. 인스턴스가 지정된 배치 그룹의 Capacity Reservation과 일치하는 속성(배치 그룹 ARN, 인스턴스 유형, 가용 영역, 플랫폼, 테넌시)을 가지면 인스턴스가 자동으로 Capacity Reservation에서 실행됩니다.
- Capacity Reservation 지정 – Capacity Reservation이 targeted 인스턴스 실행만 수락한다면, 요청에서 배치 그룹과 함께 대상 Capacity Reservation을 지정해야 합니다.
- Capacity Reservation 그룹 지정 – 자세한 내용은 Using Capacity Reservation in placement groups with a Capacity Reservation group 문서를 참고하세요.
- Capacity Reservation 그룹만 지정 – 자세한 내용은 Using Capacity Reservation in placement groups with a Capacity Reservation group 문서를 참고하세요.
- Capacity Reservation만 지정 – 배치 그룹에 있는 Capacity Reservation에 인스턴스를 실행할 수 있어요.
참고: Capacity Reservation만 또는 Capacity Reservation 그룹만 지정해 인스턴스를 실행하면, 인스턴스는 배치 그룹에 만들어진 Capacity Reservations에 실행되지만 인스턴스는 배치 그룹에 직접 연결되지 않아요.
콘솔 (Console)
기존 Capacity Reservation에 인스턴스를 실행하려면
- 인스턴스 실행 절차를 따르되, 배치 그룹과 Capacity Reservation 설정을 지정하는 다음 단계를 완료할 때까지 인스턴스를 실행하지 마세요.
- Advanced details를 펼치고 다음을 수행합니다.
- Placement group에서 인스턴스를 실행할 배치 그룹을 선택합니다.
- Capacity Reservation에서 Capacity Reservation 구성에 따라 다음 중 하나를 선택합니다.
- Open – 일치하는 속성과 충분한 용량을 가진 배치 그룹의 open Capacity Reservation에 인스턴스를 실행합니다.
- Target by ID – targeted 인스턴스 실행만 수락하는 Capacity Reservation에 인스턴스를 실행합니다.
- Target by group – 선택된 Capacity Reservation 그룹에서 일치하는 속성과 사용 가능한 용량을 가진 모든 Capacity Reservation에 인스턴스를 실행합니다.
- Summary 패널에서 인스턴스 구성을 검토한 뒤 Launch instance를 선택합니다. 자세한 내용은 Launch an EC2 instance using the launch instance wizard in the console 문서를 참고하세요.
AWS CLI
기존 Capacity Reservation에 인스턴스를 실행하려면
run-instances 명령을 사용합니다. 특정 Capacity Reservation이나 Capacity Reservation 그룹을 대상으로 해야 한다면 --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=placement_group_name"
PowerShell
기존 Capacity Reservation에 인스턴스를 실행하려면
New-EC2Instance 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 placement_group_name
배치 그룹에서 Capacity Reservations 공유하기 (Sharing Capacity Reservations in placement groups)
배치 그룹의 Capacity Reservations는 Capacity Reservations만 공유하거나, Capacity Reservations와 그것이 만들어진 배치 그룹을 둘 다 공유함으로써 공유할 수 있어요.
Capacity Reservation만 공유하면 consumer 계정에 그 Capacity Reservation에 대한 접근만 부여됩니다. consumer 계정은 Capacity Reservation이 만들어진 배치 그룹에 대한 가시성이나 접근이 없어요. 이를 통해 consumer 계정 접근에 대한 세밀한 제어가 가능합니다. consumer 계정은 ARN을 포함해 배치 그룹의 어떤 정보도 볼 수 없어요.
배치 그룹과 Capacity Reservation을 함께 공유하면 배치 그룹이 consumer 계정에 보이고 접근 가능해집니다. consumer 계정은 그 안에서 인스턴스를 실행하고 자신의 Capacity Reservations를 만들 수 있어요.
자세한 내용은 다음 리소스를 참고하세요.
- 배치 그룹의 Capacity Reservations에 인스턴스 실행 (Launch instances into Capacity Reservations in a placement group)
- 공유된 Capacity Reservations (Shared Capacity Reservations)
- 공유된 배치 그룹 (Shared placement groups)