チュートリアル: Amazon EC2 リソースにシングルノードのジョブ定義を作成する - AWS Batch

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

チュートリアル: Amazon EC2 リソースにシングルノードのジョブ定義を作成する

Amazon Elastic Compute Cloud (Amazon EC2) リソースにシングルノードのジョブ定義を作成するには、次の手順を実行します。

Amazon EC2 リソースに新しいジョブ定義を作成するには:
  1. https://console.aws.amazon.com/batch/ で AWS Batch コンソールを開きます。

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

  3. 左側のナビゲーションペインで ジョブ定義 を選択します。

  4. [作成] を選択します。

  5. オーケストレーションタイプ には、Amazon Elastic Compute Cloud (Amazon EC2) を選択します。

  6. EC2 プラットフォームの設定で、マルチノード並列を有効にする をオフにします。

  7. 名前] に、一意のジョブ定義名を入力します。名前の最大長は 128 文字です。大文字、小文字、数字、ハイフン(-)、アンダースコア(_) を含めることができます。

  8. (オプション) 実行タイムアウト で、タイムアウト値 (秒単位) を入力します。実行タイムアウトは、未完了のジョブが終了するまでの時間です。試行時間がこの秒数を超過すると、試行は停止し、FAILED ステータスに移行します。詳細については、ジョブのタイムアウトを参照してください。最小値は 60 秒です。

  9. (オプション) スケジューリング優先度 をオンにします。0 ~ 100 の値でスケジューリング優先度を入力します。値が大きいほど優先度が高くなります。

  10. (オプション) ジョブの試行回数 には、AWS Batch ジョブを RUNNABLE ステータスに移行する最大回数を入力します。1 ~ 10 の整数を入力します。

  11. (オプション) 再試行戦略の条件 では、終了時に評価を追加 を選択します。少なくとも 1 つのパラメータ値を入力し、アクション を選択します。条件セットごとに、アクション再試行 または 終了 に設定する必要があります。これらのアクションは、以下のことを意味します。

    • 再試行 — AWS Batch は、指定したジョブ試行回数に達するまで再試行します。

    • 終了 — AWS Batch は、ジョブの再試行を停止します。

    重要

    終了時に評価を追加 を選択した場合は、少なくとも 1 つのパラメータを設定して アクション] を選択するか、終了時に評価を削除] を選択します。

  12. (オプション) タグ を展開し、タグを追加 を選択してリソースにタグを追加します。キーとオプショナル値を入力し、新しいタグを追加を選択します。

  13. (オプション) タグを伝播 をオンにして、タグをジョブとジョブ定義から Amazon ECS タスクに伝達することができます。

  14. 次のページ を選択します。

  15. コンテナ設定 セクションで次の操作を行います。

    1. イメージ で、ジョブに使用する Docker イメージを選択します。デフォルトでは、Docker Hub レジストリのイメージを使用できます。repository-url/image:tag で他のリポジトリを指定することもできます。名前の最大長は 225 文字です。大文字、小文字、数字、ハイフン (-)、アンダースコア (_)、コロン (:)、スラッシュ (/)、およびシャープ (#) を含めることができます。このパラメータは、Docker Remote APIコンテナの作成 セクションにある Image および docker runIMAGE パラメータにマッピングされます。

      注記

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

      • Amazon ECR Public リポジトリ内のイメージには、完全な registry/repository[:tag] または registry/repository[@digest] 命名規則が使用されます (例えば、public.ecr.aws/registry_alias/my-web-app:latest)。

      • Amazon ECR リポジトリ内のイメージには、完全な registry/repository[:tag] 命名規則が使用されます (例えば、aws_account_id.dkr.ecr.region.amazonaws.com /my-web-app:latest)。

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

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

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

    2. [コマンド構文] には、[Bash] または [JSON] を選択します。

    3. コマンド] では、コンテナに渡すコマンドを指定します。より単純なコマンドの場合は、コマンドプロンプトの場合と同じようにコマンドを入力します。次に、JSON 結果が正しく、Docker daemon に渡されることを確認します。より複雑なコマンド (特殊文字など) には、JSON 構文を使用してください。

      ヒント

      情報 を選択して、Bash と JSON のサンプルコードを参照することができます。

      このパラメータは、Docker Remote APIコンテナの作成 セクションにある Cmd にマッピングされ、COMMAND パラメータは docker run にマッピングされます。DockerCMD パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#cmdを参照してください。

      注記

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

    4. (オプション) 実行ロール で、ユーザーに代わって AWS API コールを実行するためのアクセス許可を Amazon ECS コンテナエージェントに付与する IAM ロールを指定できます。この機能では、タスク用の Amazon ECS IAM ロールを使用します。詳細については、Amazon Elastic Container Service デベロッパーガイドAmazon ECS タスク実行 IAM ロールを参照してください。

    5. ジョブロール設定 で、AWS API へのアクセス権限を持つ IAM ロールを選択します。この機能では、タスク用の Amazon ECS IAM ロールを使用します。詳細については、Amazon Elastic Container Service デベロッパーガイドタスク用の IAM ロールを参照してください。

      注記

      ここには、Amazon Elastic Container Service Task Role] 信頼関係があるロールのみが表示されます。AWS Batch ジョブの IAM ロールの作成に関する詳細については、Amazon Elastic Container Service デベロッパーガイドタスク用の IAM ロールとポリシーの作成を参照してください。

  16. パラメータパラメータを追加 を選択し、パラメータ代替プレースホルダーをキーとオプションののペアとして追加します。

  17. 環境設定 セクションで:

    1. vCPU では、コンテナ用に予約する vCPU の数を指定します。このパラメータは、Docker Remote API コンテナの作成セクションの CpuShares にマップされ、--cpu-shares オプションは docker run にマップされます。各 vCPU は 1,024 個の CPU 配分に相当します。少なくとも 1 つの vCPU を指定する必要があります。

    2. メモリ には、コンテナで使用できるメモリー制限を入力します。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。このパラメータは、Docker Remote API コンテナの作成セクションの Memory にマップされ、--memory オプションは docker run にマップされます。ジョブに対して少なくとも 4 MiB のメモリを指定する必要があります。

      注記

      特定のインスタンスタイプのジョブにメモリの優先順位を付けることで、リソース使用率を最大化できます。詳細については、コンピューティングリソースメモリの管理を参照してください。

    3. GPU の数 では、コンテナ用に予約する GPU の数を指定します。

    4. (オプション) 環境変数環境変数を追加 を選択し、環境変数を名前と値のペアとして追加します。これらの変数は、コンテナに渡されます。

    5. (オプション) シークレット で、シークレットを追加 を選択して、シークレットを名前と値のペアとして追加します。これらのシークレットはコンテナに公開されます。詳細については、「LogConfiguration:secretOptions」を参照してください。

  18. 次のページ を選択します。

  19. Linux 設定 セクションで:

    1. ユーザー] には、コンテナ内で使用するユーザー名を入力します。このパラメータは、Docker Remote API コンテナの作成セクションの User にマップされ、--user オプションは docker run にマップされます。

    2. (オプション) 特権付与 スライダーを右にドラッグすることで、ホストインスタンスに対する昇格されたアクセス許可 (root ユーザーと同様) をジョブコンテナに付与することができます。このパラメータは、Docker Remote API の 「Create a container (コンテナを作成する)」セクションの Privileged にマップされ、--privileged オプションは docker run にマップされます。

    3. (オプション)init プロセスを有効にする をオンにすると、コンテナ内で init プロセスを実行できます。このプロセスは信号を転送し、プロセスを利用します。

  20. (オプション) ファイルシステム設定 セクションで:

    1. 読み取り専用ファイルシステムを有効にする をオンにして、ボリュームへの書き込みアクセスを削除します。

    2. 共有メモリサイズ では、/dev/shm ボリュームのサイズ (MiB) を入力します。

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

    4. スワップ動作 では、コンテナのスワップ動作を示す 0 ~ 100 の値を入力します。値を指定せず、スワップが有効になっている場合、この値はデフォルトで 60 に設定されます。詳細については、「LinuxParameters:swappiness」を参照してください。

    5. (オプション) 追加設定] を展開します。

    6. (オプション) Tmpfs では、tmpfs を追加 を選択して tmpfs マウントを追加します。

    7. (オプション) デバイス では、デバイスを追加 を選択してデバイスを追加します。

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

      2. ホストパス] では、ホストインスタンスでのデバイスのパスを指定します。

      3. アクセス許可] では、デバイスに適用する 1 つ以上のアクセス許可を選択します。使用できる権限は、読み取り書き込みMKNOD です。

    8. (オプション) ボリューム設定 で、ボリュームを追加 を選択して、コンテナに渡すボリュームのリストを作成します。ボリュームの [名前][ソースパス] を入力し、[ボリュームを追加] を選択します。EFS を有効にする オプションを選択することもできます。

    9. (オプション) マウントポイント で、マウントポイント構成を追加 を選択し、データボリュームにマウントポイントを追加します。ソースボリュームとコンテナパスを指定する必要があります。これらのマウントポイントはコンテナインスタンス上の Docker daemon に渡されます。ボリュームを 読み取り専用 にすることもできます。

    10. (オプション) [Ulimit 設定] では、[ulimit を追加] を選択して、コンテナの ulimits 値を追加します。名前ソフトリミットハードリミット の値を入力し、ulimit を追加 を選択します。

  21. (オプション) ロギング設定 セクションで:

    1. [ログドライバー] で、使用するログドライバーを選択します。使用できるログドライバーの詳細については、「LogConfiguration:logDriver」を参照してください。

      注記

      デフォルトでは、awslogs ログドライバーが使用されます。

    2. [オプション] では、[オプションを追加] を選択してオプションを追加します。名前と値のペアを入力し、[オプションを追加] を選択します。

    3. [シークレット] で、[シークレットを追加] を選択します。名前と値のペアを入力し、[シークレットを追加] を選択してシークレットを追加します。

      ヒント

      詳細については、「LogConfiguration:secretOptions」を参照してください。

  22. [次のページ] を選択します。

  23. ジョブ定義のレビューについては、設定手順を確認してください。変更する必要がある場合は、編集] を選択します。完了したら、ジョブ定義の作成 を選択します。