自動化されたラボ作成によってすぐに利用開始できましたが、さまざまなユースケースに応じて環境を最適化できる多数の柔軟性が背後にあることに気付くことでしょう。このセクションでは、この柔軟性を活用して、クラスターの動的な更新に適用する方法について学びます。

対象とするテーマ
  • ソフトウェアとアプリケーションのインストール
  • HPC ワークロードのために、適切な EC2 インスタンスタイプを選択する方法
  • Auto Scaling の理解と制御

ソフトウェアアプリケーションは、SSH を使用してヘッドノードにロギングすることによってインストールできます。CfnCluster は、 openMPI、言語、およびコンパイラなどの HPC アプリケーションをサポートするさまざまなソフトウェアパッケージを提供します。アプリケーションをインストールする方法は複数ありますが、アプリケーションの特性と管理者の選択に応じて設定できます。/efs/apps または /shared フォルダの下で、一般的な方法でそれらをインストールすることができます。これは、すべてのノードにNFS shares としてマウントされます。

アプリケーションがインストールされる (およびライセンスされる) と、EnginFrame Service エディタを使って、このラーニングパスの最初の章で行ったように、ユーザーコミュニティに公開することができます。


AWS は、多彩なワークロードタイプに対応できるように、さまざまな EC2 インスタンスファミリータイプ、世代、およびサイジングを提供しており、1 時間当たり数セントから数ドルの多様なオンデマンド価格が設定されています。

インスタンスタイプを選択するには、まずアプリケーションの具体的なニーズを考慮します。アプリケーションの要件は多種多様です。コンピューティングコアの数、プロセッサ速度、メモリ要件、ストレージニーズ、ネットワーキングの仕様、コストなどに左右されます。

ファミリーは、プロセッサのタイプ、メモリー容量、ストレージ、およびネットワーク接続の可用性に応じて分類されます。HPC ワークロードでは、c ファミリーまたは「コンピューティング」ファミリーがよく推奨されます。ファミリー内のインスタンスタイプでは、メモリーと vCPU の比率が通常は同じです。vCPU は、ハイパースレッドプロセッサです。通常、2 つのハイパースレッドコアが 1 つの物理コアのように機能します。各ファミリー内に複数の世代が存在する場合があります。たとえば、c ファミリーのインスタンスタイプには、c3、および c4 のインスタンスが含まれています。後半の数字は、インスタンスタイプの世代を示しています。

c4.8 xlarge(haswell) インスタンスは並列 HPC アプリケーションで非常に人気があります。これには、 ~60GiB のメモリーと、18 のコアが装備されています。各ファミリーには、複数のサイズがあります。例えば、c4.8 xlarge の半分のサイズのコンピューティングのインスタンスは、c4.4xlarge です。時間料金も約半分です。

インスタンスはいつでも停止して、異なるインスタンスタイプを使用して再起動できます。この機能によって、HPC ワークロードのために最適なインスタンスタイプを選択することは容易になっています。

HPC ワークロードのための他の一般的なインスタンスタイプは以下の表に詳しく述べられています:

インスタンスタイプ

vCPU

メモリー

(GiB)

 ストレージ

(GB)

ネットワーキングパフォーマンス

物理プロセッサ

クロック速度 (GHz)

EBS

Opt

c4.8xlarge

36

60

EBS のみ

10 ギガビット

Intel Xeon E5-2666 v3

2.9

c3.8xlarge

32

60

2 x 320 SSD

10 ギガビット

Intel Xeon E5-2680 v2

2.8

無し

m4.10xlarge

40

160

EBS のみ

10 ギガビット

Intel Xeon E5-2676 v3

2.4

m4.16xlarge

64

256

EBS のみ

20 ギガビット

Intel Xeon E5-2686 v4

2.3

p2.16xlarge

64

732

EBS のみ

20 ギガビット

Intel Xeon E5-2686 v4

2.3

x1.32xlarge

128

1,952

2 x 1,920 SSD

20 ギガビット

Intel Xeon E7-8880 v3

2.3

r3.8xlarge

32

244

2 x 320 SSD

10 ギガビット

Intel Xeon E5-2670 v2

2.5

無し

使用可能なすべてのインスタンスタイプのリストについは、「Amazon EC2 インスタンスタイプ」を参照してください。ツアーのワークロードに最適なインスタンスタイプを特定したら、オンデマンドと現在のスポット料金表の違いを確認してください。ワークロードの種類が、予想されるインスタンスの再利用に容易に対応できる場合、スポットの使用は、通常 HPC 予算を減らす非常に効果的な方法となる可能性があります。

クラスターの特性を変更する場合、動的にそれを行う簡単な方法は、CloudFormation コンソールで提供されている「Update Stack」機能を使用することです。一部の変更は、一時的にクラスターの機能を中断させることがあることにご注意ください。結果に自信がある場合を除き、クラスターにワークロードがないときにのみ、スタックパラメータを再設定するようにしてください。

この機能は、以下の手順に従って、DefaultCluster Stackで試してください:

  • 説明:現在のクラスターで、インスタンスタイプを変更する

    1. ここをクリックして、CloudFormation コンソールを開きます。
    2. [EnginFrame-DefaultCluster-##yourValues##] で右クリックします。[Update Stack (スタックを更新)] をクリックします。
    3. [Use current template (現在のテンプレートを使用)] を選択し、[Next (次へ)] を選択します。
      • 注意:[Use current template (現在のテンプレートを使用) ]を選択することによって、CloudFormation ウィザードは、メインスタックと比べてより多い数のパラメータを変更する機能を提供し、より広範な CfnCluster の柔軟性にアクセスできるようになります。
    4. 設定に次の編集を行います:
      • compute_instance_type:任意のインスタンスタイプを選択し、コンピューティングノードを更新します。
      • cluster_type:スポットへの選択を編集します。次に、現在の市場価格に基づいて納得のいく入札価格にspot_priceを設定します。
    5. [Next (次へ)] を選択します。
    6. 変更のプレビューが表示されるまでウィザードの次のステップに進み、[Update (更新)] を選択してスタックを更新します。変更が行われた範囲によっては、更新が反映されるまで数分かかることがあります。

Auto Scaling は、アプリケーションの可用性を維持できると同時に、お客様が定義する条件に応じて EC2 の能力を自動的に縮小あるいは拡張することができるAmazon EC2の機能です。必要な数の Amazon EC2 インスタンスを確実に実行するのを支援するために、Auto Scaling を使用することができます。 

このラボのクラスターのサイズは、継続的に監視され、EC2 Auto Scaling 機能によって変更されます。ワークロードに最適なクラスタサイズがわかっている場合 (例えば、複数ノード MPI ジョブ)、クラスターを徐々に増やすのではなく、適切なノードの数を事前にプロビジョニングするほうがより速く効率的な場合があります。

以下の手順に従ってAuto Scaling クラスターサイズを設定することができます:

  • 説明:クラスターの Auto Scaling パラメータを変更する

    1. ここをクリックして、Amazon EC2 Auto Scaling Group コンソールを開きます。
    2. デフォルトのクラスターが、コンピューティングフリートのために 1 つの Auto Scaling グループを作成したことが表示されます。コンソールは、グループ内のインスタンスの現在の数、下限と上限、および希望するインスタンスの数に関する情報を表示します。 
    3. 希望するインスタンスの数は、クラスターでアクティブなスケーリングポリシーによる影響を自動的に受けますが、手動でその値を変更することもできます。必要なサイズまたはその他の Auto Scaling パラメータを変更するには、Auto Scaling グループを右クリックし、[Edit (編集)] を選択します。
    4. 下のパネルには、Auto Scaling の詳細情報が更新されます。ロードバランサーの数、希望するインスタンス、インスタンス (ノード) の最小数と最大数などを編集することができます。完了したら、[Save (保存)] を選択します。
      • 注意:現在のインスタンスの数が、必要なインスタンスの数と異なる場合、CloudFormation は、必要な数に達するようにインスタンスを作成または削除します。

    (クリックして拡大)