ジョブ定義の作成 - AWS Batch

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

ジョブ定義の作成

AWS Batch でジョブを実行する前に、ジョブ定義を作成する必要があります。このプロセスは、単一ノードと複数ノード並列ジョブでは若干異なります。このトピックでは、AWS Batchジョブで、マルチノードの並列ジョブではないジョブです。

複数ノードの並列ジョブ定義を作成するには、「マルチノードの並列ジョブ定義の作成」を参照してください。マルチノードの並列ジョブの詳細については、「マルチノードの並列ジョブ」を参照してください。

新しいジョブ定義を作成するには

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

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

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

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

  5. を使用する場合プラットフォーム] で、[EC2、ジョブが EC2 インスタンスで実行されている場合はFargateでジョブが実行されている場合AWSFargate 容量。詳細については、「AWS BatchでのAWSFargate」を参照してください。

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

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

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

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

  8. を使用する場合マルチノードの並列化[] で、ボックスをオフのままにします。複数ノードの並列ジョブ定義を代わりに作成するには、「マルチノードの並列ジョブ定義の作成」を参照してください。

  9. 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. を使用する場合実行ロール[] で、Amazon ECS コンテナと Fargate エージェントにAWSユーザーに代わって API を呼び出します。この機能では、タスク用の Amazon ECS IAM ロールを使用します。この機能の詳細 (設定の前提条件など) については、「」を参照してください。Amazon ECS タスク実行 IAM ロール()Amazon Elastic Container Service

        注記

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

      3. (オプション、Fargate リソースで実行されているジョブの場合のみ) [パブリック IP の割り当てセクションで、Enable (Gems の有効化)ジョブにパブリック IP アドレスを割り当てます。プライベートサブネットで実行されているジョブが、アウトバウンドトラフィックをインターネットに送信する場合、プライベートサブネットでは NAT ゲートウェイをインターネットへのルートリクエストに接続する必要があります。コンテナイメージをプルできるように、この操作を行うことをお勧めします。詳細については、「」を参照してください。Amazon ECS タスクネットワーキング()Amazon Elastic Container Service

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

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

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

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

      5. (オプション、EC2 リソースで実行されているジョブの場合のみ) [Ulimitsセクションでは、ulimitジョブのコンテナに使用する値を指定します。

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

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

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

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

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

        重要

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

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

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

          注記

          環境変数はAWS_BATCH。この命名規則は、AWS Batchサービス。

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

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

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

        2. (オプション) Amazon EFS ファイルシステムを使用するには、EFS を有効にする

          1. を使用する場合ファイルシステム ID[] に、ファイルシステム ID を入力します。

          2. (オプション) 用ルートディレクトリ[] に、ホスト内にルートディレクトリとしてマウントする Amazon EFS ファイルシステム内のディレクトリを入力します。このパラメータを省略すると、Amazon EFS ボリュームのルートが使用されます。/ を指定すると、このパラメータを省略した場合と同じ結果になります。

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

        4. (オプション)トランジット暗号化を使用するには、転送時の暗号化を有効にする。転送中の暗号化では、転送中の Amazon EFS データの暗号化をAWS Batchホストと Amazon EFS サーバーを使用します。Amazon EFS IAM 認証を使用する場合は、転送中の暗号化を有効にする必要があります。詳細については、「」を参照してください。転送時のデータの暗号化()Amazon Elastic File System ユーザーガイド

          1. (オプション) 用転送暗号化ポート[C#] で、暗号化されたデータを送信するときに使用するポートをAWS Batchホストと Amazon EFS サーバーを使用します。転送中の暗号化ポートを指定しないと、Amazon EFS マウントヘルパーが使用するポート選択方法が使用されます。値には、0 ~ 65,535 の範囲の値にする必要があります。詳細については、「」を参照してください。EFS マウントヘルパー()Amazon Elastic File System ユーザーガイド

          2. (オプション) 用アクセスポイント ID[] に、使用するアクセスポイント ID を入力します。アクセスポイントを指定する場合は、ルートディレクトリ値を省略するか、/。詳細については、「」を参照してください。Amazon EFS アクセスポイントを使用する()Amazon Elastic File System ユーザーガイド

          3. (オプション)Amazon EFS ファイルシステムをマウントするときに実行ロールを使用するには、選択したジョブロールを使用。詳細については、「AWS BatchIAM ロールの実行」を参照してください。

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

        1. ジョブのコンテナにホストインスタンスに対する昇格されたアクセス権限 (rootユーザー) で、特権モードの有効化。このパラメータは、のマッピング先ですPrivileged()コンテナを作成するの セクションドッカーリモートAPI--privilegedオプションをに追加するにはdocker run

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

      9. (オプション) []Linux パラメータセクションで、ジョブのコンテナに使用するデバイスマッピングを設定できます。これにより、コンテナはホストインスタンス上のデバイスにアクセスできるようになります。

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

          1. (オプション) []デバイスセクションに追加します。デバイスを追加するには選択するデバイスの追加

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

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

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

        2. (オプション) []共有メモリサイズ[] セクションに、[] のサイズを MiB で入力します。/dev/shmボリューム。

        3. (オプション) []最大スワップサイズセクションで、コンテナが使用できるスワップメモリの合計容量 (MiB 単位) を入力します。

        4. (オプション) []Swappinessセクションで、コンテナのスワップ動作を示す 0 ~ 100 の値を入力します。指定がなければ、スワップが有効な場合、デフォルト値は 60 になります。詳細については、「」を参照してください。SwappinessJob 定義パラメータ

        5. (オプション) []Tmpfsセクションで、tmpfs マウントを追加するには、tmpfs の追加

          1. コンテナパスフィールドに、コンテナ内の絶対ファイルパスを入力します。tmpfsボリュームがマウントされます。

          2. サイズフィールドに、Tmpfs ボリュームのサイズ (MiB) を入力します。

          3. (オプション) []マウントオプションフィールドに、マウントオプションを入力します。使用可能なマウントオプションの一覧を含め、詳細については、「」を参照してください。mountOptionsJob 定義パラメータ

      10. (オプション) []ログ設定セクションで、ジョブのコンテナに使用するログドライバーを設定できます。デフォルトでは、awslogsログドライバが使用されます。

        1. ログドライバ[] セクションで、使用するログドライバーを選択します。使用可能なログドライバの詳細については、「」を参照してください。ログドライバJob 定義パラメータ

        2. (オプション) []Optionsセクションで、オプションの追加をクリックしてオプションを追加します。

          1. 名前[] フィールドに、オプションの名前を入力します。使用できるオプションはログドライバによって異なります。詳細については、ログドライバのマニュアルを参照してください。

          2. [] フィールドに、オプションの値を入力します。

        3. (オプション) []Secretsセクションで、シークレットの追加シークレットを追加します。

          1. 名前[] フィールドに、シークレットの名前を入力します。詳細については、「」を参照してください。SecretOptionsJob 定義パラメータ

          2. [] フィールドに、シークレットの ARN を入力します。

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

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

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

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

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

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