

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# PCS AWS でのコンピューティングノードグループの作成
<a name="working-with_cng_create"></a>

このトピックでは、使用可能なオプションの概要と、 AWS Parallel Computing Service (AWS PCS) でコンピューティングノードグループを作成するときに考慮すべき点について説明します。PCS でコンピューティングノードグループを初めて作成する場合は、 AWS 「」のチュートリアルに従うことをお勧めします[AWS Parallel Computing Service の使用を開始する](getting-started.md)。このチュートリアルは、使用可能なすべてのオプションとシステムアーキテクチャを拡張することなく、動作する HPC システムを作成するのに役立ちます。

**注記**  
コンピューティングノードグループのカスタム Slurm 設定を設定して、リソース使用率とノードレベルの動作を制御できます。詳細については、「[PCS でのカスタム Slurm AWS 設定の設定](slurm-custom-settings.md)」を参照してください。

**重要**  
AWS 現在、PCS では、IPv6 専用ネットワークで PCS を使用している場合でも、ローカルノード通信に IPv4 IPv6-only をサポートするカーネルが必要です。 AWS 詳細については、「[PCS のカスタム Amazon AWS マシンイメージ (AMIs)](working-with_ami_custom.md)」を参照してください。

## 前提条件
<a name="working-with_cng_create_prereq"></a>
+ で必要な数の EC2 インスタンスを起動するのに十分なサービスクォータ AWS リージョン。を使用して[AWS マネジメントコンソール](https://console.aws.amazon.com/servicequotas)、サービスクォータの引き上げを確認およびリクエストできます。
+ PCS ネットワーク要件を満たす既存の VPC AWS とサブネット (複数可）。本番環境用にクラスターをデプロイする前に、これらの要件を十分に理解することをお勧めします。詳細については、「[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)」を参照してください。
+ PCS `RegisterComputeNodeGroupInstance` API AWS アクションを呼び出すアクセス許可と、ノードグループインスタンスに必要な他の AWS リソースへのアクセス許可を持つ IAM インスタンスプロファイル。詳細については、「[AWS Parallel Computing Service の IAM インスタンスプロファイル](security-instance-profiles.md)」を参照してください。
+ ノードグループインスタンスの起動テンプレート。詳細については、「[PCS での Amazon EC2 AWS 起動テンプレートの使用](working-with_launch-templates.md)」を参照してください。
+  Amazon EC2 **スポット**インスタンスを使用するコンピューティングノードグループを作成するには、 に **AWSServiceRoleForEC2Spot** サービスにリンクされたロールが必要です AWS アカウント。詳細については、「[PCS AWS の Amazon EC2 スポットロール](spot-role.md)」を参照してください。

## PCS AWS でコンピューティングノードグループを作成する
<a name="working-with_cng_create_steps"></a>

コンピューティングノードグループは、 AWS マネジメントコンソール または を使用して作成できます AWS CLI。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用してコンピューティングノードグループを作成するには**

1. [AWS PCS コンソール](https://console.aws.amazon.com/pcs/home#/clusters)を開きます。

1. コンピューティングノードグループを作成するクラスターを選択します。**Compute ノードグループ**に移動し、**作成**を選択します。

1. **Compute ノードグループのセットアップ**セクションで、ノードグループの名前を指定します。名前には、大文字と小文字を区別する英数字とハイフンのみを含めることができます。アルファベット文字で始まり、25 文字を超えることはできません。名前はクラスター内で一意である必要があります。

1. **コンピューティング設定**で、次の値を入力または選択します。

   1. **EC2 起動テンプレート** – このノードグループに使用するカスタム起動テンプレートを選択します。起動テンプレートを使用して、サブネット、セキュリティグループ、モニタリング設定、インスタンスレベルのストレージなどのネットワーク設定をカスタマイズできます。起動テンプレートを準備していない場合は、[PCS での Amazon EC2 AWS 起動テンプレートの使用](working-with_launch-templates.md)「」を参照して作成方法を確認してください。
**重要**  
AWS PCS は、コンピューティングノードグループごとにマネージド起動テンプレートを作成します。これらは という名前です`pcs-{{identifier}}-do-not-delete`。コンピューティングノードグループを作成または更新するときにこれらを選択しないでください。そうしないと、ノードグループが正しく機能しません。

   1. **EC2 起動テンプレートのバージョン ** – カスタム起動テンプレートのバージョンを選択する必要があります。後でバージョンを変更する場合は、コンピューティングノードグループを更新して、起動テンプレートの変更を検出する必要があります。詳細については、「[PCS AWS コンピューティングノードグループの更新](working-with_cng_update.md)」を参照してください。

   1. **AMI ID** – 起動テンプレートに AMI ID が含まれていない場合、または起動テンプレートの値を上書きする場合は、ここで AMI ID を指定します。ノードグループに使用される AMI は PCS AWS と互換性がある必要があることに注意してください。が提供するサンプル AMI を選択することもできます AWS。このトピックの詳細については、「」を参照してください[PCS 用の Amazon AWS マシンイメージ (AMIs)](working-with_ami.md)。

   1. **IAM インスタンスプロファイル** – ノードグループのインスタンスプロファイルを選択します。インスタンスプロファイルは、リソースとサービスに安全にアクセスする AWS アクセス許可をインスタンスに付与します。準備が整っていない場合は、**基本プロファイルの作成**を選択して、最小ポリシーで PCS AWS に作成させるか、「」を参照してください[AWS Parallel Computing Service の IAM インスタンスプロファイル](security-instance-profiles.md)。

   1. **サブネット** – PCS クラスターがデプロイされている VPC 内の 1 AWS つ以上のサブネットを選択します。複数のサブネットを選択すると、ノード間で EFA 通信が利用できなくなり、異なるサブネット内のノード間の通信のレイテンシーが増加する可能性があります。ここで指定するサブネットが、EC2 起動テンプレートで定義したサブネットと一致することを確認します。

   1. **インスタンス** – ノードグループ内のスケーリングリクエストを満たすインスタンスタイプを 1 つ以上選択します。すべてのインスタンスタイプには、同じプロセッサアーキテクチャ (x86\_64 または arm64) と vCPUs の数が必要です。インスタンスに GPUs がある場合、すべてのインスタンスタイプに同じ数の GPUsが必要です。

   1. **スケーリング設定** – ノードグループのインスタンスの最小数と最大数を指定します。実行中のノード数が一定である静的設定、またはノードの最大数まで実行できる動的設定のいずれかを定義できます。静的設定の場合は、最小値と最大値をゼロより大きい同じに設定します。動的設定の場合、最小インスタンスを 0 に設定し、最大インスタンスを 0 より大きい数に設定します。 AWS PCS は、静的インスタンスと動的インスタンスが混在するコンピューティングノードグループをサポートしていません。

1. (オプション) **追加設定**で、以下を指定します。

   1. **購入オプション** – オンデマンドインスタンス、スポットインスタンス、または既存のキャパシティブロックを選択します。**オンデマンド**キャパシティ予約 (ODCR) を使用する場合は、オンデマンド も選択します。詳細については、「[PCS での ODCRs AWS の使用](capacity-reservations-odcr.md)」を参照してください。**キャパシティブロック**を選択して、ML 予約に既存の Amazon EC2 キャパシティブロックを使用します。詳細については、「[PCS での ML での Amazon EC2 AWS キャパシティブロックの使用](capacity-blocks.md)」を参照してください。

   1. **配分戦略** – スポット購入オプションを選択した場合、ノードグループでインスタンスを起動するときにスポットキャパシティプールを選択する方法を指定できます。詳細については、*「Amazon Elastic Compute Cloud ユーザーガイド*」の[「スポットインスタンスの配分戦略](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html)」を参照してください。このオプションは、オンデマンド購入オプションを選択した場合は効果がありません。

1. (オプション) **Slurmカスタム設定**セクションで、パラメータ名と値のペアを追加して、追加の Slurm 設定を設定できます。サポートされているパラメータの完全なリストについては、「」を参照してください[PCS コンピューティングノードグループのカスタム Slurm AWS 設定](slurm-custom-settings-cng.md)。

1. (オプション) **タグ** で、コンピューティングノードグループにタグを追加します。

1. **コンピューティングノードグループの作成** を選択します。Status ****フィールドは、PCS AWS がノードグループをプロビジョニング`Creating`している間に表示されます。これには数分間かかる場合があります。

**推奨される次のステップ**
+ PCS AWS のキューにノードグループを追加して、ジョブを処理できるようにします。

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

**を使用してコンピューティングノードグループを作成するには AWS CLI**

次のコマンドを使用してキューを作成します。コマンドを実行する前に、次の置き換えを行います：

1. {{region}} を、 などのクラスター AWS リージョン を作成する の ID に置き換えます`us-east-1`。

1. {{my-cluster}} をクラスターの名前またはに置き換え`clusterId`ます。

1. {{my-node-group}} をコンピューティングノードグループの名前に置き換えます。この名前には英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。アルファベット文字で始まり、25 文字を超えることはできません。名前はクラスター内で一意である必要があります。

1. {{subnet-ExampleID1}} をクラスター VPC の 1 つ以上のサブネット IDsに置き換えます。

1. {{lt-ExampleID1}} をカスタム起動テンプレートの ID に置き換えます。準備が整っていない場合は、[PCS での Amazon EC2 AWS 起動テンプレートの使用](working-with_launch-templates.md)「」を参照して作成方法を確認してください。
**重要**  
AWS PCS は、コンピューティングノードグループごとにマネージド起動テンプレートを作成します。これらは という名前です`pcs-{{identifier}}-do-not-delete`。コンピューティングノードグループを作成または更新するときにこれらを選択しないでください。そうしないと、ノードグループが正しく機能しません。

1. {{launch-template-version}} を特定の起動テンプレートバージョンに置き換えます。 AWS PCS は、ノードグループをその特定のバージョンの起動テンプレートに関連付けます。

1. {{arn:InstanceProfile}} を IAM インスタンスプロファイルの ARN に置き換えます。準備が整っていない場合は、[PCS での Amazon EC2 AWS 起動テンプレートの使用](working-with_launch-templates.md)「」のガイダンスを参照してください。

1. {{min-instances}} と {{max-instances}} を整数値に置き換えます。実行中のノード数が一定である静的設定、またはノードの最大数まで実行できる動的設定のいずれかを定義できます。静的設定の場合は、最小値と最大値をゼロより大きい同じに設定します。動的設定の場合は、最小インスタンスを 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}}"}]'
```
詳細については、「[PCS コンピューティングノードグループのカスタム Slurm AWS 設定](slurm-custom-settings-cng.md)」を参照してください。

`create-compute-node-group` コマンドに追加できるオプションの設定がいくつかあります。
+ カスタム起動テンプレートに AMI への参照が含まれていない`--amiId`か、その値を上書きするかを指定できます。ノードグループに使用される AMI は PCS AWS と互換性がある必要があることに注意してください。が提供するサンプル AMI を選択することもできます AWS。このトピックの詳細については、「」を参照してください[PCS 用の Amazon AWS マシンイメージ (AMIs)](working-with_ami.md)。
+ を使用して`--purchase-option`、PCS AWS がコンピューティングノードグループの EC2 インスタンスを購入する方法を選択します。オンデマンドがデフォルトです。
  +  `ONDEMAND` – オンデマンドインスタンスを使用します。オンデマンドキャパシティ予約 (ODCR) を使用する場合は、このオプションも選択します。詳細については、「[PCS での ODCRs AWS の使用](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 キャパシティブロックを使用します。詳細については、「[PCS での ML での Amazon EC2 AWS キャパシティブロックの使用](capacity-blocks.md)」を参照してください。
+ を使用して、ノードグループ内のノードSlurmの設定オプションを指定できます`--slurm-configuration`。重み (スケジューリングの優先度) と実際のメモリを設定できます。重みの低いノードは優先度が高く、単位は任意です。詳細については、 Slurmドキュメントの[「重](https://slurm.schedmd.com/slurm.conf.html#OPT_Weight)み」を参照してください。実メモリは、ノードグループ内のノードの実メモリのサイズ (GB 単位) を設定します。これは、Slurm設定の PCS AWS のクラスター`CR_CPU_Memory`のオプションと組み合わせて使用することを目的としています。詳細については、 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}}
```

------