

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

# AWS PCS에서 컴퓨팅 노드 그룹 생성
<a name="working-with_cng_create"></a>

이 주제에서는 사용 가능한 옵션에 대한 개요를 제공하고 AWS 병렬 컴퓨팅 서비스(AWS PCS)에서 컴퓨팅 노드 그룹을 생성할 때 고려해야 할 사항을 설명합니다. AWS PCS에서 컴퓨팅 노드 그룹을 처음 생성하는 경우의 자습서를 따르는 것이 좋습니다[AWS 병렬 컴퓨팅 서비스 시작하기](getting-started.md). 이 자습서는 가능한 모든 사용 가능한 옵션과 시스템 아키텍처로 확장하지 않고도 작동하는 HPC 시스템을 생성하는 데 도움이 될 수 있습니다.

**참고**  
컴퓨팅 노드 그룹에서 사용자 지정 Slurm 설정을 구성하여 리소스 사용률 및 노드 수준 동작을 제어할 수 있습니다. 자세한 내용은 [AWS PCS에서 사용자 지정 Slurm 설정 구성](slurm-custom-settings.md) 단원을 참조하십시오.

**중요**  
AWS 현재는 IPv6 전용 네트워크에서 PCS를 사용하는 경우에도 로컬 노드 통신에 대해 IPv4를 지원하는 커널이 AWS 필요합니다. IPv6-only 자세한 내용은 [AWS PCS용 사용자 지정 Amazon Machine Image(AMIs)](working-with_ami_custom.md) 단원을 참조하십시오.

## 사전 조건
<a name="working-with_cng_create_prereq"></a>
+ 에서 원하는 수의 EC2 인스턴스를 시작하기에 충분한 서비스 할당량입니다 AWS 리전. [AWS Management Console](https://console.aws.amazon.com/servicequotas)를 사용하여 서비스 할당량 증가를 확인하고 요청할 수 있습니다.
+  AWS PCS 네트워킹 요구 사항을 충족하는 기존 VPC 및 서브넷(들)입니다. 프로덕션용으로 클러스터를 배포하기 전에 이러한 요구 사항을 철저히 이해하는 것이 좋습니다. 자세한 내용은 [AWS PCS VPC 및 서브넷 요구 사항 및 고려 사항](working-with_networking_vpc-requirements.md) 단원을 참조하십시오. 또한 CloudFormation 템플릿을 사용하여 VPC 및 subnets를 생성할 수 있습니다.는 CloudFormation 템플릿에 대한 HPC 레시피를 AWS 제공합니다. 자세한 내용은 GitHub의 [ aws-hpc-recipes](https://github.com/aws-samples/aws-hpc-recipes/tree/main/recipes/net/hpc_large_scale)를 참조하세요.
+  AWS PCS `RegisterComputeNodeGroupInstance` API 작업을 호출하고 노드 그룹 인스턴스에 필요한 다른 AWS 리소스에 액세스할 수 있는 권한이 있는 IAM 인스턴스 프로파일입니다. 자세한 내용은 [AWS 병렬 컴퓨팅 서비스를 위한 IAM 인스턴스 프로파일](security-instance-profiles.md) 단원을 참조하십시오.
+ 노드 그룹 인스턴스의 시작 템플릿입니다. 자세한 내용은 [AWS PCS에서 Amazon EC2 시작 템플릿 사용](working-with_launch-templates.md) 단원을 참조하십시오.
+  Amazon EC2 **스팟** 인스턴스를 사용하는 컴퓨팅 노드 그룹을 생성하려면에 **AWSServiceRoleForEC2Spot** 서비스 연결 역할이 있어야 합니다 AWS 계정. 자세한 내용은 [AWS PCS에 대한 Amazon EC2 스팟 역할](spot-role.md) 단원을 참조하십시오.

## AWS PCS에서 컴퓨팅 노드 그룹 생성
<a name="working-with_cng_create_steps"></a>

 AWS Management Console 또는를 사용하여 컴퓨팅 노드 그룹을 생성할 수 있습니다 AWS CLI.

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

**콘솔을 사용하여 컴퓨팅 노드 그룹을 생성하려면**

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

1. 컴퓨팅 노드 그룹을 생성할 클러스터를 선택합니다. **컴퓨팅 노드 그룹**으로 이동하여 **생성을** 선택합니다.

1. **컴퓨팅 노드 그룹 설정** 섹션에서 노드 그룹의 이름을 입력합니다. 이름에는 대소문자를 구분하는 영숫자와 하이픈만 사용할 수 있습니다. 영문자로 시작해야 하며 25자를 초과할 수 없습니다. 이름은 클러스터 내에서 고유해야 합니다.

1. **컴퓨팅 구성**에서 다음 값을 입력하거나 선택합니다.

   1. **EC2 시작 템플릿** -이 노드 그룹에 사용할 사용자 지정 시작 템플릿을 선택합니다. 시작 템플릿을 사용하여 서브넷, 보안 그룹, 모니터링 구성 및 인스턴스 수준 스토리지와 같은 네트워크 설정을 사용자 지정할 수 있습니다. 시작 템플릿이 준비되지 않은 경우 섹션을 [AWS PCS에서 Amazon EC2 시작 템플릿 사용](working-with_launch-templates.md) 참조하여 템플릿을 생성하는 방법을 알아봅니다.
**중요**  
AWS PCS는 각 컴퓨팅 노드 그룹에 대한 관리형 시작 템플릿을 생성합니다. 이름은 입니다`pcs-{{identifier}}-do-not-delete`. 컴퓨팅 노드 그룹을 생성하거나 업데이트할 때 이러한 항목을 선택하지 마십시오. 그렇지 않으면 노드 그룹이 올바르게 작동하지 않습니다.

   1. **EC2 시작 템플릿 버전 ** - 사용자 지정 시작 템플릿의 버전을 선택해야 합니다. 나중에 버전을 변경하는 경우 시작 템플릿의 변경 사항을 감지하도록 컴퓨팅 노드 그룹을 업데이트해야 합니다. 자세한 내용은 [AWS PCS 컴퓨팅 노드 그룹 업데이트](working-with_cng_update.md) 단원을 참조하십시오.

   1. **AMI ID** - 시작 템플릿에 AMI ID가 포함되어 있지 않거나 시작 템플릿의 값을 재정의하려면 여기에 AMI ID를 입력합니다. 노드 그룹에 사용되는 AMI는 AWS PCS와 호환되어야 합니다. 에서 제공하는 샘플 AMI를 선택할 수도 있습니다 AWS. 이 주제에 대한 자세한 내용은 단원을 참조하십시오[AWS PCS용 Amazon Machine Image(AMIs)](working-with_ami.md).

   1. **IAM 인스턴스 프로파일** - 노드 그룹의 인스턴스 프로파일을 선택합니다. 인스턴스 프로파일은 인스턴스에 리소스 및 서비스에 안전하게 액세스할 AWS 수 있는 권한을 부여합니다. 준비된 프로필이 없는 경우 **기본 프로필 생성을** 선택하여 최소 정책으로 AWS PCS가 자동으로 프로필을 생성하도록 하거나 섹션을 참조하세요[AWS 병렬 컴퓨팅 서비스를 위한 IAM 인스턴스 프로파일](security-instance-profiles.md).

   1. **서브넷 **- AWS PCS 클러스터가 배포된 VPC에서 하나 이상의 서브넷을 선택합니다. 여러 서브넷을 선택하면 노드 간에 EFA 통신을 사용할 수 없으며 다른 서브넷의 노드 간 통신으로 인해 지연 시간이 늘어날 수 있습니다. 여기서 지정하는 서브넷이 EC2 시작 템플릿에서 정의한 서브넷과 일치하는지 확인합니다.

   1. **인스턴스 **- 노드 그룹에서 조정 요청을 이행할 인스턴스 유형을 하나 이상 선택합니다. 모든 인스턴스 유형은 동일한 프로세서 아키텍처(x86\_64 또는 arm64)와 vCPUs 가져야 합니다. 인스턴스에 GPUs가 있는 경우 모든 인스턴스 유형에 동일한 수의 GPUs가 있어야 합니다.

   1. **조정 구성** - 노드 그룹의 최소 및 최대 인스턴스 수를 지정합니다. 고정된 수의 노드가 실행되는 정적 구성 또는 최대 수의 노드가 실행될 수 있는 동적 구성을 정의할 수 있습니다. 정적 구성의 경우 최소값과 최대값을 0보다 큰 동일한 숫자로 설정합니다. 동적 구성의 경우 최소 인스턴스를 0으로 설정하고 최대 인스턴스를 0보다 큰 수로 설정합니다. AWS PCS는 정적 인스턴스와 동적 인스턴스가 혼합된 컴퓨팅 노드 그룹을 지원하지 않습니다.

1. (선택 사항) **추가 설정**에서 다음을 지정합니다.

   1. **구매 옵션** - 온디맨드 인스턴스, 스팟 인스턴스 또는 기존 용량 블록을 선택합니다. **또한 온디맨드** 용량 예약(ODCR)을 사용하려는 경우 온디맨드를 선택합니다. 자세한 내용은 [AWS PCSODCRs 사용](capacity-reservations-odcr.md) 단원을 참조하십시오. ML 예약에 기존 Amazon EC2 **용량 블록**을 사용하려면 용량 블록을 선택합니다. 자세한 내용은 [AWS PCS에서 ML에 Amazon EC2 용량 블록 사용](capacity-blocks.md) 단원을 참조하십시오.

   1. **할당 전략** - 스팟 구매 옵션을 선택한 경우 노드 그룹에서 인스턴스를 시작할 때 스팟 용량 풀을 선택하는 방법을 지정할 수 있습니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [스팟 인스턴스에 대한 할당 전략을 참조하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html). 온디맨드 구매 옵션을 선택한 경우에는이 옵션이 적용되지 않습니다.

1. (선택 사항) **Slurm 사용자 지정 설정** 섹션에서 파라미터 이름과 값 페어를 추가하여 추가 Slurm 설정을 구성할 수 있습니다. 지원되는 파라미터의 전체 목록은 섹션을 참조하세요[AWS PCS 컴퓨팅 노드 그룹에 대한 사용자 지정 Slurm 설정](slurm-custom-settings-cng.md).

1. (선택 사항) **태그**에서 컴퓨팅 노드 그룹에 태그를 추가합니다.

1. **컴퓨팅 노드 그룹 생성을** 선택합니다. AWS PCS가 노드 그룹을 프로비저닝하는 `Creating` 동안 **상태** 필드가 표시됩니다. 몇 분 정도 걸릴 수 있습니다.

**권장 다음 단계**
+ 작업을 처리할 수 있도록 노드 그룹을 AWS PCS의 대기열에 추가합니다.

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

**를 사용하여 컴퓨팅 노드 그룹을 생성하려면 AWS CLI**

다음 명령을 사용하여 대기열을 생성합니다. 명령을 실행하기 전에 다음과 같은 바꾸기를 합니다.

1. {{리전}}을와 같이 클러스터 AWS 리전 를 생성할의 ID로 바꿉니다`us-east-1`.

1. {{my-cluster}}를 클러스터의 이름 또는 로 바꿉`clusterId`니다.

1. {{my-node-group}}을 컴퓨팅 노드 그룹의 이름으로 바꿉니다. 이름에는 영숫자(대소문자 구분)와 하이픈만 사용할 수 있습니다. 영문자로 시작해야 하며 25자를 초과할 수 없습니다. 이름은 클러스터 내에서 고유해야 합니다.

1. {{subnet-ExampleID1}}을 클러스터 VPC의 하나 이상의 서브넷 IDs로 바꿉니다.

1. {{lt-ExampleID1}}을 사용자 지정 시작 템플릿의 ID로 바꿉니다. 준비된 항목이 없는 경우 섹션을 [AWS PCS에서 Amazon EC2 시작 템플릿 사용](working-with_launch-templates.md) 참조하여 생성 방법을 알아보세요.
**중요**  
AWS PCS는 각 컴퓨팅 노드 그룹에 대한 관리형 시작 템플릿을 생성합니다. 이름은 입니다`pcs-{{identifier}}-do-not-delete`. 컴퓨팅 노드 그룹을 생성하거나 업데이트할 때 이러한 항목을 선택하지 마십시오. 그렇지 않으면 노드 그룹이 올바르게 작동하지 않습니다.

1. {{launch-template-version}}을 특정 시작 템플릿 버전으로 바꿉니다. AWS PCS는 노드 그룹을 시작 템플릿의 특정 버전과 연결합니다.

1. {{arn:InstanceProfile}}을 IAM 인스턴스 프로파일의 ARN으로 바꿉니다. 준비된 항목이 없는 경우에서 지침을 참조[AWS PCS에서 Amazon EC2 시작 템플릿 사용](working-with_launch-templates.md)하세요.

1. {{min-instances}} 및 {{max-instances}}를 정수 값으로 바꿉니다. 고정된 수의 노드가 실행되는 정적 구성 또는 최대 수의 노드가 실행될 수 있는 동적 구성을 정의할 수 있습니다. 정적 구성의 경우 최소값과 최대값을 0보다 큰 동일한 숫자로 설정합니다. 동적 구성의 경우 최소 인스턴스를 0으로 설정하고 최대 인스턴스를 0보다 큰 숫자로 설정합니다. AWS PCS는 정적 인스턴스와 동적 인스턴스가 혼합된 컴퓨팅 노드 그룹을 지원하지 않습니다.

1. {{t3.large}}를 다른 인스턴스 유형으로 바꿉니다. `instanceType` 설정 목록을 지정하여 인스턴스 유형을 더 추가할 수 있습니다. 예: {{--instance-configs instanceType=c6i.16xlarge instanceType=c6a.16xlarge}}. 모든 인스턴스 유형은 동일한 프로세서 아키텍처(x86\_64 또는 arm64)와 vCPUs 가져야 합니다. 인스턴스에 GPUs가 있는 경우 모든 인스턴스 유형에 동일한 수의 GPUs가 있어야 합니다.

```
aws pcs create-compute-node-group --region {{region}} \
    --cluster-identifier {{my-cluster}} \
    --compute-node-group-name {{my-node-group}} \
    --subnet-ids {{subnet-ExampleID1}} \
    --custom-launch-template id={{lt-ExampleID1}},version='{{launch-template-version}}' \
    --iam-instance-profile-arn={{arn:InstanceProfile}} \
    --scaling-config minInstanceCount={{min-instances}},maxInstanceCount={{max-instance}} \
    --instance-configs instanceType={{t3.large}}
```

**Example - 사용자 지정 Slurm 설정을 사용하여 컴퓨팅 노드 그룹 생성**  

```
aws pcs create-compute-node-group --region {{region}} \
    --cluster-identifier {{my-cluster}} \
    --compute-node-group-name {{my-node-group}} \
    --subnet-ids {{subnet-ExampleID1}} \
    --custom-launch-template id={{lt-ExampleID1}},version='{{launch-template-version}}' \
    --iam-instance-profile-arn={{arn:InstanceProfile}} \
    --scaling-config minInstanceCount={{min-instances}},maxInstanceCount={{max-instance}} \
    --instance-configs instanceType={{t3.large}} \
    --slurm-configuration \
    'slurmCustomSettings=[{parameterName=Features,parameterValue="{{gpu,nvme}}"}]'
```
자세한 내용은 [AWS PCS 컴퓨팅 노드 그룹에 대한 사용자 지정 Slurm 설정](slurm-custom-settings-cng.md) 단원을 참조하십시오.

`create-compute-node-group` 명령에 추가할 수 있는 몇 가지 선택적 구성 설정이 있습니다.
+ 사용자 지정 시작 템플릿에 AMI에 대한 참조가 포함되어 있지 않은`--amiId`지 또는 해당 값을 재정의하려는지 지정할 수 있습니다. 노드 그룹에 사용되는 AMI는 AWS PCS와 호환되어야 합니다. 에서 제공하는 샘플 AMI를 선택할 수도 있습니다 AWS. 이 주제에 대한 자세한 내용은 단원을 참조하십시오[AWS PCS용 Amazon Machine Image(AMIs)](working-with_ami.md).
+ `--purchase-option`를 사용하여 AWS PCS가 컴퓨팅 노드 그룹의 EC2 인스턴스를 구매하는 방법을 선택합니다. 온디맨드가 기본값입니다.
  +  `ONDEMAND` - 온디맨드 인스턴스를 사용합니다. 또한 온디맨드 용량 예약(ODCR)을 사용하려는 경우이 옵션을 선택합니다. 자세한 내용은 [AWS PCSODCRs 사용](capacity-reservations-odcr.md) 단원을 참조하십시오.
  +  `SPOT` - 스팟 인스턴스를 사용합니다. 스팟 인스턴스를 선택하는 경우 `--allocation-strategy`를 사용하여 노드 그룹에서 인스턴스를 시작할 때 AWS PCS가 스팟 용량 풀을 선택하는 방법을 정의할 수도 있습니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [스팟 인스턴스에 대한 할당 전략을 참조하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html).
  +  `CAPACITY_BLOCK` - ML 예약에 기존 Amazon EC2 용량 블록을 사용합니다. 자세한 내용은 [AWS PCS에서 ML에 Amazon EC2 용량 블록 사용](capacity-blocks.md) 단원을 참조하십시오.
+ 를 사용하여 노드 그룹의 노드에 대한 Slurm 구성 옵션을 제공할 수 있습니다`--slurm-configuration`. 가중치(예약 우선 순위)와 실제 메모리를 설정할 수 있습니다. 가중치가 낮은 노드는 우선 순위가 높고 단위는 임의입니다. 자세한 내용은 Slurm 설명서의 [가중치](https://slurm.schedmd.com/slurm.conf.html#OPT_Weight)를 참조하세요. 실제 메모리는 노드 그룹의 노드에서 실제 메모리의 크기(GB)를 설정합니다. 구성에서 AWS PCS의 클러스터에 대한 `CR_CPU_Memory` 옵션과 함께 사용하기 위한 것입니다Slurm. 자세한 내용은 Slurm 설명서의 [RealMemory](https://slurm.schedmd.com/slurm.conf.html#OPT_RealMemory)를 참조하세요.

**중요**  
컴퓨팅 노드 그룹을 생성하는 데 몇 분 정도 걸릴 수 있습니다.

다음 명령을 사용하여 노드 그룹의 상태를 쿼리할 수 있습니다. 상태가에 도달할 때까지 노드 그룹을 대기열과 연결할 수 없습니다`ACTIVE`.

```
aws pcs get-compute-node-group --region {{region}} \
    --cluster-identifier {{my-cluster}} \
    --compute-node-group-identifier {{my-node-group}}
```

------