複数ノードの並列ジョブ定義を作成する - AWS Batch

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

複数ノードの並列ジョブ定義を作成する

でジョブを実行する前に AWS Batch、ジョブ定義を作成する必要があります。このプロセスは、単一ノードと複数ノード並列ジョブでは若干異なります。このトピックでは、複数ノードの AWS Batch 並列ジョブのジョブ定義の作成を対象としています。詳細については、「」を参照してください。マルチノードの並列ジョブ.

単一ノードのジョブ定義を作成するには、「」を参照してください。ジョブ定義の作成.

複数ノードの並列ジョブ定義を作成するには

  1. コンソール (AWS Batch) を開きます。https://console.aws.amazon.com/batch/.

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで、 職務の定義作成.

  4. 対象: ジョブ定義名、ジョブ定義の一意の名前を入力します。最大 128 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

  5. 対象: ジョブの試行、(失敗した場合に)ジョブを試行する最大回数を指定します。詳細については、「」を参照してください。ジョブの再試行の自動化.

  6. (オプション) 対象 実行タイムアウト、ジョブの実行を許可する最大秒数を指定します。試行がタイムアウト時間を超えた場合は停止し、ステータスは FAILED。 詳細については、以下を参照してください。 ジョブのタイムアウト.

  7. 選択 ジョブには複数のノード構成が必要 次に、以下のサブステップを完了します。単一ノードの並列ジョブ定義を代わりに作成するには、「」を参照してください。ジョブ定義の作成.

    1. 対象: ノード数、ジョブに使用するノードの合計数を入力します。

    2. 対象: メインノード、メインノードに使用するノードインデックスを入力します。デフォルトの主要なノードインデックスは、 です。0.

    3. (オプション) ノードを特定のインスタンスタイプに制限するには、ドロップダウンメニューから 1 つを選択します。インスタンスタイプを指定しない場合、AWS Batch は最も大きいノード (vCPU およびメモリ) の要件を満たす最小のインスタンスタイプをコンピューティング環境で利用可能なインスタンスタイプから選択します。

      重要

      コンピューティング環境で起動できるインスタンスタイプを選択するようにしてください。それ以外を選択すると、ジョブは RUNNABLE ステータスに止まり、後続のジョブがブロックされます。

  8. (オプション) パラメータ セクションで、ジョブのコンテナが起動時に実行するコマンドで使用するパラメータ置換デフォルト値とプレースホルダーを指定できます。詳細については、「」を参照してください。Parameters.

    1. 選択 パラメータの追加.

    2. 対象: キー、パラメータのキーを指定します。

    3. 対象: 、パラメータの値を指定します。

  9. ノードのプロパティ セクションで、ノードグループを構成します。デフォルトでは、デフォルトのノード数で 1 つのノードグループが自動的に作成されます。

  10. 対象: 対象ノード、ノード グループの範囲を指定します。 range_start:range_end 表記。

    ジョブに指定するノード数では 5 つまでのノード範囲を作成できます。ノード範囲はノードに対してインデックス値を使用し、ノードインデックスは 0 から開始します。最後のノードグループの終了インデックス範囲は、ステップ 1 で指定したノード数から 1 を引いた数にする必要があります。たとえば、10 個のノードを指定し、1 つのノードグループを使用する場合、終了範囲は 9 にする必要があります。

  11. 対象: コンテナの画像、ジョブに使用するDockerイメージを選択します。Docker Hub レジストリのイメージはデフォルトで使用できます。また、 repository-url/image:tag。 最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。 このパラメータは、 Imageコンテナを作成する セクション( Docker Remote API および IMAGE のパラメータ docker run.

    注記

    Docker イメージのアーキテクチャは、スケジュールされているコンピューティングリソースのプロセッサアーキテクチャと一致している必要があります。たとえば、ARM ベースの Docker イメージは、ARM ベースのコンピューティングリソースでのみ実行することができます。

    • の画像 Amazon ECR リポジトリは、 registry/repository:tag 命名規則。例えば、 aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

    • Docker Hub上の公式リポジトリにある画像は、単一の名前(例: ubuntu または mongo)。

    • Docker ハブの他のリポジトリのイメージは、組織名で修飾されます (例: amazon/amazon-ecs-agent).

    • 他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例: quay.io/assemblyline/ubuntu).

  12. 対象: vCPU、コンテナ用に予約する vCPU の数を指定します。このパラメータは、 CpuSharesコンテナを作成する セクション( Docker Remote API および --cpu-shares オプションから docker run。 各vCPUは1.024個のCPU共有に相当します。少なくとも 1 つの vCPU を指定する必要があります。

  13. 対象: メモリ、ジョブのコンテナに表示するメモリのハード リミット(MiB)を指定します。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。このパラメータは、 Memoryコンテナを作成する セクション( Docker Remote API および --memory オプションから docker run。 ジョブのメモリを4 MiB以上指定する必要があります。

    注記

    特定のインスタンスタイプに対してできるだけ多くのメモリを提供してリソースの使用率を最大限に高めるには、「」を参照してください。コンピューティングリソース メモリ管理.

  14. 対象: コマンド、コンテナに渡すコマンドを指定します。単純なコマンドの場合は、コマンド プロンプトでコマンドを入力します。 スペース区切り タブ。さらに、JSON の結果 (実際に Docker デーモンに渡される形式) が正しいことを確認します。より複雑なコマンド(特殊文字など)の場合は、 JSON(JSON) タブで、それに相当する文字列配列を入力します。

    このパラメータは、 Cmdコンテナを作成する セクション( Docker Remote API および COMMAND パラメータから docker run。 Dockerの詳細については、 CMD パラメータ、 へ進みます。 https://docs.docker.com/engine/reference/builder/#cmd.

    注記

    コマンドでは、パラメータ置換とプレースホルダーのデフォルト値を使用できます。詳細については、「」を参照してください。Parameters.

  15. (オプション)ホスト インスタンスでジョブのコンテナの昇格権限を与えるには( root ユーザー)、選択 特権. このパラメータは、 Privilegedコンテナを作成する セクション( Docker Remote API および --privileged オプションから docker run.

  16. (オプション) 対象 職務、 IAM コンテナに AWS API。この機能では、 Amazon ECS IAM タスク機能の役割。構成の前提条件を含む詳細については、以下を参照してください。 タスクのIAM役割Amazon Elastic Container Service Developer Guide.

    注記

    _を持つ役割のみ Amazon Elastic Container Service タスクの役割 信頼関係がここに表示されます。作成についての詳細は、 IAM 役割について AWS Batch ジョブ、参照 タスクのIAMロールとポリシーの作成Amazon Elastic Container Service Developer Guide.

  17. 対象: ユーザー、コンテナ内で使用するユーザー名を入力します。このパラメータは、 Userコンテナを作成する セクション( Docker Remote API および --user オプションから docker run.

  18. (オプション) ジョブのコンテナがアクセスするマウントポイントを指定します。

    1. 対象: コンテナパス、ホスト ボリュームをマウントするコンテナのパスを入力します。

    2. 対象: ソースボリューム、マウントするボリュームの名前を入力します。

    3. コンテナのボリュームを読み取り専用にするには、 読み取り専用.

  19. (オプション) ジョブのコンテナに渡すジョブのデータボリュームを指定できます。

    1. 対象: 名前、ボリュームの名前を入力します。 最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

    2. (オプション) 対象 ソースパス、コンテナに表示するホストインスタンスのパスを入力します。このフィールドを空のままにすると、Docker デーモンによってホストパスが割り当てられます。ソースパスを指定した場合、手動で削除するまで、データボリュームはホストコンテナインスタンス上の指定した場所に保持されます。ソースパスがホストコンテナインスタンスに存在しない場合、Docker デーモンによってそのパスが作成されます。その場所が存在する場合は、ソースパスフォルダの内容がコンテナにエクスポートされます。

  20. (オプション) ジョブのコンテナに渡す環境変数を指定できます。このパラメータは、 Envコンテナを作成する セクション( Docker Remote API および --env オプションから docker run.

    重要

    認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。

    1. 選択 環境変数の追加.

    2. 対象: キー、環境変数のキーを指定します。

      注記

      環境変数は次の値で始まることはできません: AWS_BATCHこの命名規則は、 AWS Batch サービス。

    3. 対象: 、環境変数の値を指定します。

  21. 対象: Ulimits(ユリミット)、ジョブのコンテナに使用する任意の ulimit 値を構成します。

    1. 選択 制限を追加.

    2. 対象: 制限名、適用する領域を選択してください。

    3. 対象: ソフトリミット、ユーリミットタイプに適用するソフトリミットを選択します。

    4. 対象: ハードリミット、Ulimitタイプに適用するハード リミットを選択します。

  22. に戻る ステップ 10 およびを各ノードグループに対して繰り返して、ジョブを構成します。

  23. 選択 ジョブ定義の作成.