View a markdown version of this page

PCS AWS でノードライフサイクルアクションを使用してカスタムスクリプトを実行する - AWS PCS

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

PCS AWS でノードライフサイクルアクションを使用してカスタムスクリプトを実行する

ノードライフサイクルアクションは、コンピューティングノードのライフサイクルの定義されたポイントでカスタムスクリプトを実行します。これらを使用して、ファイルシステムのマウント、ディレクトリサービスへの参加、ソフトウェアのインストール、モニタリングの設定を行います。コンピューティングノードグループ設定でスクリプトを定義し、コンピューティングノードグループとクラスター間で再利用します。

ノードライフサイクルアクションは、コンピューティングノードのライフサイクルの特定の時点で AWS PCS が自動的に実行するスクリプトです。コンピューティングノードグループ設定でスクリプトを定義します。各スクリプトが存在する場所 (Amazon S3 または HTTPS)、渡す引数、実行されるステージ、再起動時に再実行されるタイミング、失敗した場合の対処方法などです。 AWS PCS はスクリプトを取得し、インスタンスにキャッシュして、 として実行しroot、その出力を専用のログファイルに書き込みます。

ノードライフサイクルアクションは以下を提供します。

  • 再利用性 — 引数が異なる多くのコンピューティングノードグループの同じスクリプトを参照します。

  • スクリプトごとのエラー処理 — ノードを終了するか、シーケンスを停止するか、失敗を続行します。

  • API ネイティブ設定 — を使用してライフサイクルアクションを定義および更新しますUpdateComputeNodeGroup。設定の変更は、既存のノードをドレインして置き換えます。詳細については、「PCS AWS でノードライフサイクルアクションを設定する」を参照してください。

ライフサイクルのステージ

AWS PCS は現在 2 つのステージをサポートしています。各ステージでは、スクリプトは定義した順序で実行されます。デフォルトでは、スクリプトは最初の起動時にのみ実行されます。再起動時に再実行EVERY_BOOTするようにスクリプトexecutionPolicyを に設定します。詳細については、「PCS AWS でノードライフサイクルアクションを設定する」を参照してください。

ステージ

実行時

利用可能なサービス

一般的な使用

ノードブートストラップ (nodeBootstrapped)

PCS AWS がノードのセットアップを終了した後、 slurmdが起動する前に実行されます。

ネットワークと Amazon S3 が起動し、SSH、SSM、NTP (chrony)、および cron がデバッグのためにアクティブになっています。 AWS PCS 管理のセットアップが完了しました (Slurm 設定済み、Hyper-Threading 無効)。そのため、これを使用できます。Slurm クライアントコマンドはまだ使用できません。

共有ストレージのマウント、ネットワークの設定、ソフトウェアパッケージのインストールなど、ノードがジョブを受け入れる前に完了する必要があるタスク。

ノード対応 (nodeReady)

slurmd 起動後に実行され、ノードは Slurm コントローラーに登録されます。

nodeBootstrapped ステージ内のすべてのコマンドと Slurm クライアントコマンド (sinfoscontrol)。

Slurm の実行を必要とするタスク。

nodeReady および job-dispatch ウィンドウ

nodeReady スクリプトはslurmd起動後に実行されるため、スケジューラがnodeReadyスクリプトが終了する前にジョブをノードにディスパッチする短いウィンドウがあります。ジョブを実行する前にスクリプトを完了する必要がある場合:

  • Slurm コマンドが必要ない場合は、nodeBootstrappedステージに移動します。

  • Slurm プロログを使用します。

実行の仕組み

初回起動時:

  1. ノードが起動し、PCS AWS エージェントが を呼び出しますRegisterComputeNodeGroupInstance

  2. エージェントはライフサイクル設定をキャッシュし、スクリプトをダウンロードします。

  3. AWS PCS 設定フェーズが実行されます (Slurm は設定済み、ハイパースレッディングは無効など)。

  4. ノードブートストラップスクリプトは、定義した順序で実行されます。

  5. slurmd が起動し、ノードが Slurm コントローラーに登録されます。この時点で、ノードはジョブを受け入れることができます。

  6. ノード対応スクリプトは、定義した順序で実行されます。これらのスクリプトは、ノードがジョブを受け入れることができる後に実行されるため、スケジューラはジョブが終了する前にディスパッチする場合があります (「」を参照ライフサイクルのステージ)。

再起動時に、同じ nodeBootstrappedslurmdnodeReadyシーケンスが実行されます。EVERY_BOOT 再実行とマークされたスクリプトのみ。(デフォルト) FIRST_BOOT_ONLY に設定されたスクリプトはスキップされます。は、スクリプトを再ダウンロードするかどうかscriptCachingPolicyを制御します。詳細については、「PCS AWS でノードライフサイクルアクションを設定する」を参照してください。

ステージあたりのスクリプト数、引数とスクリプト名の長さ、および最大スクリプトサイズの制限については、AWS PCS API リファレンスUpdateComputeNodeGroup」を参照してください。