重要な4つのコンセプト

このページではハンズオンの手順は解説していません。 必要のない方は次のページを移動してください。

AWS Batch では次の4つを定義する必要があります。

  1. ジョブ — Jobs
  2. ジョブ定義 — Job Definitions
  3. ジョブキュー — Job Queues
  4. コンピューティング環境 — Compute Environments

Jobs

  • Jobs (ジョブ) は AWS Batch によって実行される 作業単位 です。
  • Jobs は Amazon EC2 上で動作する コンテナ化されたアプリケーション です。
  • コンテナイメージ、コマンド、およびパラメータを参照して処理を実行します。
  • 各 Job は必ず後述の Job Definitions (ジョブ定義) を参照する必要がありますが、Job Definitionsに指定している多くのパラメータは オーバーライドが可能 が可能です。

Jobs で指定する属性の一部は次の通りです。 - 雛形となる Job Definitions - 実行先が示された Job Queues - 実行するコマンド - vCPUs 数とメモリ要件

AWS CLI では次のように Jobs を投げることができます。

# 例
aws batch submit-job --job-name variant-calling --job-definition gatk --job-queue genomics

Job Definitions

  • Job Definitions (ジョブ定義) はジョブの 雛形となるテンプレート で、Job の実行方法を定義します。

Jobs で指定する属性の一部は次の通りです。 - Job に関連付ける IAM ロール - コンテナイメージ - 実行するコマンド - vCPUs 数とメモリ要件 - ボリュームとマウントポイント - 環境変数

AWS CLI では次のように Job Definitions を登録することができます。

# 例
aws batch register-job-definition --job-definition-name gatk --container-properties ...

Job Queues

  • Job Queues (ジョブキュー) は投入された Jobs の待ち行列 となる場所です。
  • Job が投入されると Job Queues に送信され、 コンピューティングリソースにスケジューリングされるまで待機します

Job Queues で指定する属性は次の通りです。 - ジョブの優先度 (整数値=値が小さいほうが優先度高) - 実行先の Compute Environments (複数指定化)

AWS CLI では次のように Job Queue を作成することができます。

# 例
aws batch create-job-queue --job-queue-name genomics --priority 500 --compute-environment-order ...

Compute Environments

  • Compute Environments (コンピューティング環境) は Jobs が実行される環境です。

Compute Environments で指定する属性は次の通りです。 - IAM ロール - EC2 キーペア - Provisioning Model (オンデマンド or スポットインスタンスの選択) - Instance type - vCPUs 数 (最小・最大・希望数) - Networking (VPC/Subnet/security group) - 実行先の実際のコンピュート環境 (複数指定可) - EC2 タグ

Compute Environments の補足

  • Job Queues は 1つ以上 の Compute Environments にマッピングされる
  • Compute Environment type が Managed のものはリソース要件を指定することができ、ジョブのリクエスト状況によりリソースの立ち上げと拡張を行う。
  • Compute Environment type が Unmanaged のものはユーザ独自のリソースを起動して管理する。
    • EC2 インスタンスには ECS エージェント が含まれている必要がある。
    • Linux および Docker のそれぞれのサポートされているバージョンを実行する必要がある。