マルチノードの並列ジョブ定義の作成 - AWS Batch

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

マルチノードの並列ジョブ定義の作成

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

注記

AWSFargate は、マルチノードの並列ジョブをサポートしていません。

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

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

  1. を開くAWS Batchコンソールhttps://console.aws.amazon.com/batch/

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

  3. ナビゲーションペインで [ジョブ定義]、[作成] を選択します。

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

  5. を使用する場合プラットフォーム] で、EC2

  6. 再試行戦略セクションに、ジョブを再試行する回数を指定できます。また、失敗したジョブを再試行するかどうかを決定する条件を作成することもできます。これは、エラーコードの文字列マッチングと、ジョブ試行のためにリストされた理由に基づいています。詳細については、「ジョブの再試行の自動化」を参照してください。

    1. を使用する場合Job 試行[] で、ジョブが失敗した場合に再試行する回数を指定します。この数字は、1 ~ 10 の範囲でなければなりません。

    2. (オプション終了時に評価を追加を使用して最大 5 つの条件を追加し、ジョブ試行で返される終了コード、ステータス理由、および理由と文字列パターンを一致させます。条件セットごとに、アクションをに設定する必要があります。再試行(ジョブの試行回数に達するまで再試行する)、またはExitをクリックして、ジョブの再試行を停止します。

  7. (オプション) [Execution Timeout] (実行のタイムアウト) で、ジョブの試行で実行を許可する最大秒数を指定します。試行時間がこの秒数を超過すると、ジョブは停止し、ステータスは FAILED に変わります。詳細については、「ジョブのタイムアウト」を参照してください。

  8. を使用する場合マルチノードの並列ノード[] で、マルチノードの並列を有効にする[] をクリックし、次のサブステップを実行します。単一ノードの並列ジョブ定義を代わりに作成するには、「ジョブ定義の作成」を参照してください。

    1. [Number of nodes (ノード数)] にmジョブで使用するノードの合計数を入力します。

    2. [Main node (主要なノード)] で、主要なノードに使用するノードインデックスを入力します。デフォルトの主要なノードインデックスは、0 です。

    3. Selectノード範囲を追加する。これにより、ノード範囲セクションに追加します。

      1. [Target nodes (ターゲットノード)] で、range_start:range_end 表記を使用してノードグループの範囲を指定します。

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

      2. Eclipseコンテナプロパティノード範囲のノードに対して Docker デーモンに渡すプロパティを指定できます。

        1. を使用する場合イメージ[] で、ジョブに使用する Docker イメージを選択します。Docker Hub レジストリのイメージはデフォルトで使用できます。repository-url/image:tag で他のリポジトリを指定することもできます。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。このパラメータは、のマッピングを行います。Image()コンテナの作成の セクションドッカーリモートAPIIMAGEパラメータdocker run

          注記

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

          • Amazon ECR リポジトリ内のイメージには、registry/repository:tag命名規則。例: aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

          • Docker ハブの公式リポジトリのイメージでは、1 つの名前 (例: ubuntumongo) を使用します。

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

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

        2. [コマンド] で、コンテナに渡すコマンドを指定します。シンプルなコマンドの場合は、コマンドプロンプトに入力するように [スペース区切り] タブにコマンドを入力します。さらに、JSON の結果 (実際に Docker デーモンに渡される形式) が正しいことを確認します。より複雑なコマンド (特殊文字を含むものなど) の場合は、[JSON] タブに切り替えて同等の文字列配列を入力できます。

          このパラメータは、のマッピングを行います。Cmd()コンテナの作成の セクションドッカーリモートAPICOMMANDパラメータをに設定するdocker run。Docker CMD パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#cmd を参照してください。

          注記

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

        3. [vCPU] で、コンテナ用に予約する vCPU の数を指定します。このパラメータは、のマッピングを行います。CpuShares()コンテナの作成の セクションドッカーリモートAPI--cpu-sharesオプションをdocker run。各 vCPU は 1,024 個の CPU 配分に相当します。少なくとも 1 つの vCPU を指定する必要があります。

        4. [メモリ] で、ジョブのコンテナに適用されるメモリのハード制限 (MiB 単位) を指定します。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。このパラメータは、のマッピングを行います。Memory()コンテナの作成の セクションドッカーリモートAPI--memoryオプションをdocker run。ジョブに対して少なくとも 4 MiB のメモリを指定する必要があります。

          注記

          特定のインスタンスタイプに可能な限り多くのメモリをジョブに割り当ててリソース使用率を最大化する場合は、「」を参照してください。コンピューティングリソースメモリ管理

        5. (オプションGPU 数[] に、ジョブで使用される GPU の数を指定します。

          ジョブは、指定された数の GPU が固定されているコンテナで実行されます。

        6. 追加設定セクションでは、コンテナで使用する追加のパラメータを指定できます。

          1. (オプションJob の役割[] で、ジョブのコンテナに権限を付与する IAM ロールを指定できます。このロールは、AWSAPI. この機能では、タスク用の Amazon ECS IAM ロールを使用します。構成の前提条件などの詳細については、「」を参照してください。タスク用の IAM ロール()Amazon Elastic Container Service

            注記

            ジョブのロールは、Fargate リソースで実行されているジョブに必要です。

            注記

            ロールのみAmazon Elastic Container Service タスクロールここには、[] 信頼関係が表示されます。用の IAM ロールの作成の詳細については、AWS Batchジョブについては、タスク用の IAM ロールとポリシーの作成()Amazon Elastic Container Service

          2. (オプション) [Volumes (ボリューム)] セクションで、ジョブのコンテナに渡すジョブのデータボリュームを指定できます。

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

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

          3. (オプション) [マウントポイント] セクションで、アクセスするジョブのコンテナのマウントポイントを設定できます。

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

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

            3. コンテナに対してボリュームを読み取り専用にするには、[読み取り専用] を選択します。

          4. (オプション) [uLimit] セクションで、ジョブのコンテナに使用する ulimit 値を設定できます。

            1. [制限の追加] を選択します。

            2. [制限の名前] で適用する ulimit を選択します。

            3. [ソフト制限] で、ulimit タイプに適用するソフト制限を選択します。

            4. [ハード制限] で、ulimit タイプに適用するハード制限を選択します。

          5. (オプション) [環境変数] セクションで、ジョブのコンテナに渡す環境変数を指定できます。このパラメータは、のマッピングを行います。Env()コンテナの作成の セクションドッカーリモートAPI--envオプションをdocker run

            重要

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

            1. [環境変数の追加] を選択します

            2. [キー] で、環境変数のキーを指定します。

              注記

              環境変数名を AWS_BATCH で始めることはできません。この命名規則は、AWS Batch サービスで設定される変数用に予約されています。

            3. [] で、環境変数の値を指定します。

          6. (オプション) [セキュリティ] セクションで、ジョブのコンテナのセキュリティオプションを設定できます。

            1. ホストインスタンスに対する昇格されたアクセス権限 (root ユーザーと同様) をジョブのコンテナに付与するには、[特権] を選択します。このパラメータは、のマッピングを行います。Privileged()コンテナの作成の セクションドッカーリモートAPI--privilegedオプションをdocker run

            2. [ユーザー] に、コンテナ内で使用するユーザー名を入力します。このパラメータは、のマッピングを行います。User()コンテナの作成の セクションドッカーリモートAPI--userオプションをdocker run

          7. (オプション) [Linux Parameters (Linux パラメータ)] セクションで、ジョブのコンテナに使用するデバイスマッピングを設定して、コンテナがホストインスタンス上のデバイスにアクセスできるようにすることが可能です。

            1. [デバイス] セクションで、[デバイスの追加] を選択します。

            2. [Host path (ホストパス)] で、ホストインスタンスでのデバイスのパスを指定します。

            3. [コンテナパス] で、コンテナインスタンスでのデバイスのパスを指定します。このパスは、ホストインスタンスにマッピングされたデバイスを公開するために使用されます。空白のままにすると、ホストパスがコンテナで使用されます。

            4. [Permissions (アクセス許可)] で、コンテナでデバイスに適用する 1 つ以上のアクセス許可を選択します。使用可能なアクセス許可は READWRITEMKNOD です。

  9. ステップ 1 に戻り、各ノードグループごとに繰り返してジョブを設定します。

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

    1. [パラメータの追加] を選択します。

    2. [キー] で、パラメータのキーを指定します。

    3. [] で、パラメータの値を指定します。

  11. (オプションタグセクションでは、ジョブ定義に関連付ける各タグのキーと値を指定できます。詳細については、「AWS Batch リソースのタグ付け」を参照してください。

  12. [ジョブ定義の作成] を選択します。