AWS Batch の使用の開始 - AWS Batch

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

AWS Batch の使用の開始

AWS Batch初回起動ウィザードを使用すると、すぐに使い始めることができますAWS Batch。前提条件を満たしたら、AWS Batch初回実行ウィザードを使用してコンピューティング環境を作成し、ジョブ定義とジョブキューを数ステップで作成できます。

AWS Batch初回実行ウィザードでサンプル「Hello World」ジョブを送信して、設定をテストすることもできます。で起動する Docker イメージが既にある場合はAWS Batch、そのイメージを使用してジョブ定義を作成できます。

ステップ 1: 前提条件

AWS Batch初回実行ウィザードを開始する前に、次の操作を行います。

ステップ 2: コンピューティング環境を作成する

コンピューティング環境とは、Amazon EC2 インスタンスを参照するものです。コンピューティング環境の設定と制約は、Amazon EC2AWS Batch インスタンスを設定して自動的に起動する方法を示しています。

コンピューティング環境を作成するには:

注記

現在、初回実行ウィザードでのみ管理コンピューティング環境を作成できます。アンマネージド型のコンピューティング環境を作成するには、「コンピューティング環境の作成」を参照してください。

  1. AWS Batchコンソールの初回実行ウィザードを開きます

  2. コンピュート環境設定セクションでは

    1. コンピュート環境名には、カスタム名を入力します。

    2. サービスロールには、AWS のサービスあなたに代わって他の人に電話をかける権限を持つサービスロールを選択します。他のサービスを呼び出すことができるサービスロールがない場合はAWS のサービス、ユーザーに代わってロールが作成されます。

  3. インスタンス設定セクションでは

    1. プロビジョニングモデルにはFargate、Fargate スポットオンデマンドまたはスポットを選択します

    2. (スポットのみ) [最大オンデマンド料金 (%)] に、スポットリソースに支払うオンデマンド料金の最大パーセンテージを入力します。

    3. (スポットおよびオンデマンドのみ) [最小 vCPUs] には、インスタンスが使用する vCPUs の最小数を入力します。

      ヒント

      Minimum vCPUs をに設定すると0、処理できないときにはインスタンス時間は使用されません。

    4. (すべてのプロビジョニングモデル) [最大 vCPUs] に、インスタンスが使用する vCPUs の最大数を入力します。

    5. (オプション、スポットおよびオンデマンドのみ)「必要な vCPUs」に、インスタンスが使用する vCPUs の数を入力します。

    6. (スポットおよびオンデマンドのみ) [許可されたインスタンスタイプ] で、インスタンスが使用するインスタンスタイプを選択します。

      重要

      デフォルトでは、「最適」が選択されています。最適な設定では、で使用できる M4、C4、R4 インスタンスタイプの中から最適なものが選択されますAWS リージョン。インスタンスタイプのカスタムセットを使用するには、最適な設定を削除してから、必要なインスタンスタイプを選択します。

    7. (スポットおよびオンデマンドのみ) 割り当て戦略については、オンデマンドの場合は BEST_FIT_PROGRESSIVE を、スポットには SPOT_CAPACITY_OPTIMIZED を選択します。

  4. ネットワーク」セクションでは、

    1. VPC_ID には、アマゾン VPC を選択します。

    2. サブネットの場合、AWS アカウント自分のサブネットがデフォルトで一覧表示されます。サブネットのカスタムセットを作成する場合は、[サブネットをクリア] を選択し、必要なサブネットを選択します。

      重要

      コンピューティングリソースは、VPC エンドポイントまたは複数のパブリック IP アドレスを介して Amazon ECS VPC エンドポイントと通信する必要があります。詳細については、「Amazon ECS インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。インスタンスに VPC エンドポイントが設定されていない場合やパブリック IP アドレスが設定されていない場合は、ネットワークアドレス変換 (NAT) を使用できます。NAT の詳細については、「NAT ゲートウェイ」を参照してください仮想プライベートクラウドを作成する

    3. (オプション) [Additional settings:] (追加設定:セキュリティグループ、プレイスメントグループ:

      1. [Security group] (セキュリティグループ) には、インスタンスに関連付けるAmazon EC2 セキュリティグループを選択します。セキュリティグループのカスタムセットを作成する場合は、[セキュリティグループをクリア] を選択します。次に、目的のセキュリティグループを選択します。

      2. (オプション、オンデマンドスポットのみ) マルチノードのparallel ジョブを作成する場合は、「配置グループ」に配置グループ名を入力します。

  5. [Next] (次へ) を選択します。

ステップ 3: ジョブキューを作成する

ジョブキューは、AWS Batchスケジューラによってコンピューティング環境内のリソースで実行されるまで、送信されたジョブキューに格納されます。ジョブキューを作成するには:

  1. Job キュー設定セクションでは

    1. [Job キュー名] には、カスタム名を入力します。

    2. [Priority] (優先度) には、ジョブキューの 0 ~ 100 の整数を入力します。

      重要

      整数値が大きいほど、AWS Batchスケジューラにより高い優先順位が割り当てられます。

    3. (オプション)AWS ジョブキューに適用するスケジューリングポリシーがある場合:

      1. スケジューリングポリシーの ARN をオンにします。

      2. 使用する Amazon リソースネーム (ARN) を選択します。

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

      状態」で、ジョブキューの状態を選択します。

  2. (オプション)「タグ」セクションでは、

    1. [Add tag] (タグを追加) を選択します。キーの名前と値のペアを入力し、[タグを追加] を選択します。

      重要

      [タグを追加] を選択した場合は、キーと値のペアを入力して [タグを追加] を再度選択するか、[タグを削除] を選択する必要があります。

  3. [Next] (次へ) を選択します。

ステップ 4: ジョブ定義を作成する

ジョブ定義を作成するには:

  1. 一般設定」セクションでは、

    1. [名前] に、カスタムジョブ定義名を入力します。

    2. [実行タイムアウト] (実行タイムアウト) には、未完了のジョブが終了するまでの時間 (秒単位) を入力します。

      重要

      タイムアウトの最短時間は 60 秒です。

    3. (オプション) [Additional tag] (追加タグ設定) を展開します。

    4. タグとは、リソースに割り当てられるラベルです。タグを追加するには、[タグの追加] を選択します。キーと値のペアを入力し、[タグを追加] をもう一度選択します。

      重要

      [タグを追加] を選択した場合は、キーと値のペアを入力して [タグを追加] を再度選択するか、[タグを削除] を選択する必要があります。

    5. (オプション)「タグの伝達」をオンにすると、Amazon Elastic Container Service タスクにタグが伝達されます。

  2. プラットフォーム互換性」セクションでは、

    1. 実行ロールには、Amazon Elastic Container Service (Amazon ECS)AWS エージェントがお客様に代わって呼び出しを行うことができるタスク実行ロールを選択します。たとえば、「ecsTaskExecutionロール」を選択できます。

  3. Job 設定セクションでは

    1. [イメージ] には、コンテナの起動に使用されるイメージの名前を入力します。デフォルトでは、Docker Hub レジストリのすべてのイメージを使用できます。他のリポジトリを repository-url/image: tag 形式で指定することもできます。パラメータの最大長は 255 文字です。大文字、小文字、数字、ハイフン (-)、アンダースコア (_)、コロン (:)、ピリオド (.)、スラッシュ (/)、および数字 (#) を含めることができます。このパラメータは、Docker Remote APIコンテナの作成セクションの Image にマッピングされ、IMAGE パラメータは docker run にマッピングされます。

      注記

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

      • Amazon ECR パブリックリポジトリ内のイメージには、完全な、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 ハブの公式リポジトリのイメージでは、1 つの名前 (例: ubuntumongo) を使用します。

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

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

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

    3. [Command] (コマンド) で、コンテナに渡すコマンドを指定します。このパラメータは、Docker Remote APIコンテナの作成セクションの Cmd にマッピングされ、COMMAND パラメータは docker run にマッピングされます。Docker CMD パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#cmd を参照してください。

      注記

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

      ヒント

      情報」を選択して、Bash と JSON のコード例を確認してください。

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

    5. [Memory] (メモリ) で、ジョブコンテナに適用されるメモリのハード制限 (MiB 単位) を指定します。コンテナは、ここで指定したメモリを超えようとすると、停止されます。このパラメータは、Docker Remote API コンテナの作成セクションの Memory にマップされ、--memory オプションは docker run にマップされます。

    6. (オプション) 環境変数設定をオンにして、コンテナに渡される環境変数を追加します。このパラメータは、Docker Remote APIコンテナの作成セクションの Env にマップされ、--env オプションは docker run にマップされます。

    7. (オプション) Job ロール設定を有効にして、AWS API へのアクセス権限を持つ IAM ロールを追加します。この機能では、タスク用の Amazon ECS IAM ロールを使用します。詳細については、Amazon Elastic Container Service デベロッパーガイドの「タスク用の IAM ロール」を参照してください。

      注記

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

      注記

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

    8. (オプション) セキュリティ設定を有効にして、コンテナで使用するユーザー名を追加します。

      ホストインスタンスに対する昇格されたアクセス許可 (rootユーザーと同様) をジョブコンテナに付与するには、[Privileged] (特権) を有効にします。このパラメータは、Docker Remote API コンテナの作成セクションの Privileged にマップされ、--privileged オプションは docker run にマップされます。

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

    9. (オプション) シークレットをオンにすると、シークレットを名前と値のペアとして追加できます。これらのシークレットはコンテナに公開されます。詳細については、ジョブ定義のパラメータ の「secretOptions」を参照してください。

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

    11. (オプション) マウントポイント設定を有効にして、データボリュームのマウントポイントを追加します。ソースボリュームとコンテナパスを指定する必要があります。これらのマウントポイントは、コンテナインスタンスの Docker デーモンに渡されます。

    12. (オプション、オンデマンドスポットのみ) Ulimit 設定を有効にして ulimit 値のリストを設定します。名前、ソフトリミット、ハードリミットを入力して、[Add ulimit] を選択します。

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

    14. (オプション)Linuxパラメータ設定をオンにしてデバイスを追加するかInit process EnabledなどのLinux固有の設定をオンにします

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

      2. (オプション、スポットとオンデマンドのみ)「デバイス」で、「デバイスを追加」を選択します。

        1. (オプション、スポットおよびオンデマンドのみ)「デバイス」で、「デバイスを追加」を選択してデバイスを追加します。

        2. (オプション、スポットおよびオンデマンドのみContainer path には、コンテナインスタンス内のパスを指定して、ホストインスタンスにマッピングされたデバイスを公開します。空白のままにすると、ホストパスがコンテナで使用されます。

        3. (オプション、スポットおよびオンデマンドのみホストパスには、ホストインスタンス内のデバイスのパスを指定します。

        4. (オプション、スポットおよびオンデマンドのみ)[権限] で、コンテナ内のデバイスに適用する権限を 1 つ以上選択します。使用可能なアクセス許可は READWRITEMKNOD です。

      3. (オプション、スポットおよびオンデマンドのみ) [共有メモリサイズ] には、/dev/shmボリュームのサイズ (MiB 単位) を入力します。

      4. (オプション、スポットおよびオンデマンドのみ) I 最大スワップサイズには、コンテナが使用できるスワップメモリの合計容量 (MiB 単位) を入力します。

      5. (オプション、スポットおよびオンデマンドのみ) スワップ動作を示す [Swappiness] (スワップ動作) には、コンテナのスワップ動作を示す 0 ~ 100 の値を入力します。指定せず、スワップが有効になっている場合、デフォルト値は 60 です。詳細については、ジョブ定義のパラメータ の「スワップ動作」を参照してください。

      6. (オプション、スポットおよびオンデマンドのみTmpfs の場合は、「Add tmpfstmpfs を選択してマウントを追加します。

      7. (オプション、スポットおよびオンデマンドのみ) [コンテナパス] には、tmpfsボリュームがマウントされているコンテナ内の絶対ファイルパスを入力します。

      8. (オプション、スポットおよびオンデマンドのみ)「サイズ」フィールドに、tmpfsボリュームのサイズ(MiB 単位)を入力します。

      9. (オプション) [Mount options] (マウントオプション) には、マウントオプションを入力します。使用可能なマウントオプションのリストを含む詳細については、の「mountOptions」を参照してくださいジョブ定義のパラメータ

    15. (オプション) ログ設定を有効にして、カスタムログドライバーをコンテナに追加します。

      注記

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

      1. (オプション)「ログドライバー」で、使用するログドライバーを選択します。使用できるログドライバーの詳細については、ジョブ定義のパラメータ の「logDriver」を参照してください。

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

      3. (オプション) シークレットをオンにします。名前と値のペアを入力し、[追加] を選択してシークレットを追加します。

        ヒント

        詳細については、の「secretOptions」を参照してくださいジョブ定義のパラメータ

  4. (オプション) パラメータをキーと値のマッピングとしてジョブ定義に追加して、ジョブ定義のデフォルトを上書きできます。パラメータを追加するには:

    1. [パラメータ] で、[パラメータを追加] を選択します。キーと値のペアを入力して、もう一度 [パラメータを追加] を選択します。

      重要

      [パラメータを追加] を選択した場合は、少なくとも 1 つのパラメータを設定するか、[パラメータの削除] を選択する必要があります。

  5. (オプション)「再試行戦略」セクションでは、失敗したジョブを再送信する回数を設定できます。障害が発生したインスタンスのトラブルシューティングに役立つ終了コードとステータス理由を設定することもできます。再試行戦略を設定するには:

    1. [Job 試行] には、失敗したジョブを再送信する回数を入力します。

    2. (オプション)「終了時に評価を追加」を選択します。少なくとも 1 つのパラメータ値を入力してから、アクションを選択します

      重要

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

  6. [Next] (次へ) を選択します。

ステップ 5: ジョブを作成する

ジョブは、AWS Batchによって実行される作業の単位です。ジョブは、Amazon ECS クラスターの Amazon エラスティックコンテナサービスコンテナインスタンスで、コンテナ化されたアプリケーションとして起動されます。

ジョブを作成するには:

  1. 一般設定」セクションでは、

    1. [名前] に、カスタム名を入力します。

    2. [実行タイムアウト] に、未完了のジョブが終了するまでの時間 (秒単位) を入力します。タイムアウトの最短時間は 60 秒です。

    3. (オプション) Array job をオンにすると、ジョブが複数のホストに分散されます。[アレイサイズ] にホストの数を入力します。

    4. (オプション) Job に依存関係がある場合は、ジョブの依存関係をオンにします。次に、依存関係のJob ID を入力し、[追加] を選択します。

    5. (オプション) [Additional tag] (追加タグ設定) を展開します。[タグ] から [タグを追加] を選択してタグを追加します。タグキーとオプションの値を入力してから、[Add tag] をもう一度選択します。

      重要

      [タグを追加] を選択した場合は、キーと値のペアを入力して [タグを追加] を再度選択するか、[タグを削除] を選択する必要があります。

    6. (オプション) タグを ECS タスクに伝達するには、「タグの伝達」をオンにします。

  2. Job 設定セクションでは

    1. コマンド構文には、「Bash」または「JSON」を選択します。

    2. [Command] (コマンド) で、コンテナに渡すコマンドを指定します。このパラメータは、Docker Remote APIコンテナの作成セクションの Cmd にマッピングされ、COMMAND パラメータは docker run にマッピングされます。Docker CMD パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#cmd を参照してください。

      注記

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

      ヒント

      情報」を選択して、Bash と JSON のコード例を確認してください。

    3. [vCPUs] で、コンテナ用に予約する vCPUs の数を入力します。

    4. [メモリ] に、コンテナのメモリクォータを入力します。

    5. [GPU の数] に、コンテナー用に予約するグラフィカルプロセッシングユニット (GPU) の数を入力します。

    6. (オプション) 環境変数設定を有効にして、追加の環境変数をコンテナに渡します。名前と値を入力して、[追加] を選択します。

  3. パラメータセクションでは、ジョブに渡されるパラメータを追加できます。これらのパラメータは、ジョブ定義のパラメータ値の代わりになります。[Parameters] セクションで、以下の操作を行います。

    1. (オプション)「パラメータ」で、「パラメータを追加」を選択します。

    2. パラメーターの [名前] と [] を入力し、[パラメーターを追加] を選択します。

    重要

    [パラメータを追加] を選択した場合は、名前と値のペアを入力して [パラメータを追加] を選択するか、[パラメータを削除] を選択する必要があります。

  4. 再試行戦略」セクションでは、失敗したジョブを再送信する回数を設定できます。障害が発生したインスタンスのトラブルシューティングに役立つ終了コードとステータス理由を設定することもできます。再試行戦略を設定するには:

    1. [Job 試行] には、失敗したジョブを再送信する回数を入力します。

    2. (オプション)「終了時に評価を追加」を選択します。終了コードステータス理由理由を入力します。次に、アクションを選択します

      重要

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

  5. [Next] (次へ) を選択します。

ステップ 6: 確認して作成する

確認と作成については、構成手順を確認してください。変更する必要がある場合は、[Edit] (編集) を選択します。完了したら、[作成] を選択します。