
AWS ParallelClusterのクラスターサイズ設定とAuto Scalingグループの関係を調べてみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
AWS ParallelClusterで slurm/sge/torque のような伝統的なジョブスケジューラーを用いると、コンピューティングフリートはAuto Scalingグループで管理されます。 フリートサイズをジョブの需要に連動させることで、elasticにクラスターサイズをスケールアウト・インさせ、TCO を抑制することができます。
本記事では、コンピューティングフリートサイズに絞って、ParallelClusterの設定とAuto Scalingグループの関係を紹介します。
AWS ParallelClusterとAuto Scalingグループの対応表
AWS ParallelCluster では、設定ファイルの[Cluster]セクションでコンピューティングフリートのサイズを定義します。
Auto Scaling グループとの関係は次の表の通りです。
| ParallelCluster | 意味 | デフォルト | Auto Scalingグループ | 備考 |
|---|---|---|---|---|
| initial_queue_size | クラスターでコンピューティングノードとして起動する Amazon EC2 インスタンスの最初の数を設定します。 | 2 | 希望する容量(desired capacity) | maintain_initial_size=trueの場合は1以上の値を設定 |
| max_queue_size | クラスターで起動可能な最大数の Amazon EC2 インスタンスの最大数を設定します。 | 10 | 最大キャパシティ(maximum) | |
| maintain_initial_size | 従来のスケジューラ (SGE、Slurm、および Torque) の Auto Scaling グループの最初のサイズを維持します。 | false | 最小キャパシティ(minimum) | maintain_initial_size = trueの場合は initial_queue_size の値、falseの場合は0 |
フリート起動後、Auto Scaling グループの「希望する容量(desired capacity)」は、ジョブの需要によって「最小キャパシティ(minimum)」から「最大キャパシティ(maximum) 」の間の値を動的に動きます。
参考 : AWS ParallelCluster Auto Scaling - AWS ParallelCluster
具体例
例1:未入力の場合
ParallelCluster側の設定値は入力必須ではありません。指定しなかった場合はデフォルト値が設定されます。
| ParallelCluster | 設定値 | ASG | 設定値 |
|---|---|---|---|
| initial_queue_size | ブランク | desired capacity | 2 |
| max_queue_size | ブランク | maximum | 10 |
| maintain_initial_size | ブランク | minimum | 0 |
例2:maintain_initial_size = false の場合
ParallelCluster側で何か値を設定すると、Auto Scaling グループの対応する値が設定されます。
maintain_initial_size = falseのため、「最小キャパシティ(minimum)」は0です。
| ParallelCluster | 設定値 | ASG | 設定値 |
|---|---|---|---|
| initial_queue_size | 4 | desired capacity | 4 |
| max_queue_size | 8 | maximum | 8 |
| maintain_initial_size | false | minimum | 0 |
例3: maintain_initial_size = true の場合
maintain_initial_size = true にすると、initial_queue_size で指定した値が Auto Scalingグループの「最小キャパシティ(minimum)」に設定されます。
| ParallelCluster | 設定値 | ASG | 設定値 |
|---|---|---|---|
| initial_queue_size | 4 | desired capacity | 4 |
| max_queue_size | 8 | maximum | 8 |
| maintain_initial_size | true | minimum | 4 |
例4:固定台数を起動する場合
オンプレのように固定台数を起動したい場合、initial_queue_size と max_queue_size に同じ値を設定し、maintain_initial_size = true にし、Auto Scalingグループの設定で desired capacity = maximum = minimum となるようにします。
| ParallelCluster | 設定値 | ASG | 設定値 |
|---|---|---|---|
| initial_queue_size | 4 | desired capacity | 4 |
| max_queue_size | 4 | maximum | 4 |
| maintain_initial_size | true | minimum | 4 |
コンピューティングフリートを一時停止する場合
$ pcluster stop CLUSTER_NAME を実行すると、コンピューティングフリートを停止し、マスターノードを実行中のままにします。
この時、Auto Scaling グループの desired capacity/maximum/minimum はすべて 0 になります。
| ASG | 設定値 |
|---|---|
| desired capacity | 0 |
| maximum | 0 |
| minimum | 0 |
$ pcluster start CLUSTER_NAMEをすると、ParallelCluster の設定に従って Auto Scaling グループが更新され、コンピューティングフリートが再構築されます。
夜間・週末はクラスターを使わないような場合は、クラスターを一時的に stop/start することもご検討ください。
$ pcluster update でフリートのサイズ変更は可能
ParallelCluster の更新処理は注意が必要です。
設定値によっては
- クラスターの再作成
- 一度コンピューティングフリートの停止
といった運用が求められるものがあります。
今回紹介した、コンピューティングフリートのサイズに関連する3つの値に関しては、クラスターを起動させたままオンラインで変更可能です(Update policy: This setting can be changed during an update.)。
まとめ
AWS ParallelClusterのクラスターサイズ設定とAuto Scalingグループの関係について紹介しました。
ポイントは次の通りです。
- ジョブスケジューラーにslurm/sge/torqueを使用する場合、コンピューティングフリートはAuto Scalingグループで管理されます
- フリートサイズ(Auto Scalingグループのキャパシティ)は設定ファイル
[cluster]セクションの次の3つの値で定義しますinitial_queue_sizemax_queue_sizemaintain_initial_size
- これら値は
$ pcluster updateでオンライン変更可能です
それでは。










