BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】Batch-ジョブ実行手順_第2話~ジョブキューとジョブ定義~

コンニチハ、BFT名古屋支店のヤタテです!。

はじめに

AWS Batchの概要紹介の記事で、AWS Batchの概要を紹介しました。
本記事は【AWS】Batch-ジョブ実行手順_第1話の続きとなる、ジョブキューとジョブ定義などの構築手順を紹介します。

システム構成図

AWS Batchのシステム構成図イメージとなります。

f:id:bftnagoya:20210513105517p:plain
システム構成図

サービス一覧

太文字がシステム構成図の赤枠と対応しており、今回の記事の対象となります。

  • AWS Batch:本システムでのメインで、以下の4つのコンポーネントがある。
    • コンピューティング環境
    • ジョブキュー
    • ジョブ定義
    • ジョブ送信
  • AWS ECS:Dockerコンテナを起動するサービス。
  • AWS ECR:Dockerイメージを保存するレジストリ
          自作のDockerイメージをpushする。
  • AWS S3:AWS ECRに登録したDockerイメージが保存される。
         Bucketの作成などを行う必要はない。
  • AWS EC2:AutoScallingによりインスタンスが立ち上がる。
  • AWS RDS:データベース(今回はPostgreSQL)。
  • AWS CloudWatch:ログの確認が可能。
  • AWS IAM:ジョブの実行に当たって必要なポリシーを割り当てる。

前提条件

・使用するリージョンは、アジアパシフィック(東京)とする ・Dockerイメージが作成済みであること

ジョブキューの構築手順

では、ジョブキューを構築します。

1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブキュー」→「作成」の順で選択する
3.ジョブキューの設定を設定する
パラメータ 説明
ジョブキュー名 ジョブキューの一意の名前を指定する
優先度 ジョブキューの優先度を整数値で指定する
整数値が大きいほうが優先される
状態 有効または無効を選択可能
有効にすることでジョブの送信を受け入れることができる
4.タグを設定する

リソースに関連付けられたタグを設定可能です。
最大50個のタグを任意で追加してください。

5.接続されたコンピューティング環境を設定する
パラメータ 説明
コンピューティング環境を選択 作成したコンピューティング環境を選択可能

1つのジョブキューに対して、最大で3つのコンピューティング環境を選択できますが、異なるアーキテクチャ(EC2とFargate)を混在させることはできません。

6.「作成」を選択する

AWS ECRにコンテナイメージをアップロードする手順

ジョブ定義を構築する前に、処理を実行するコンテナをAWS ECRのリポジトリにアップロードします。
この手順については、【AWS】Lambda/Batchへのコンテナ利用 -03_Batch用コンテナ-をご参考ください。

ジョブ定義の構築手順

続いて、ジョブ定義を構築します。

1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブ定義」→「作成」の順で選択する
3.ジョブ定義を設定する

以下のパラメータは、プラットフォームにEC2を選択した場合で、私が設定を変更したものを抜粋して記載します。

パラメータ 説明
名前 ジョブ定義の一意の名前を指定する
プラットフォーム EC2またはFargateを選択可能
実行タイムアウト ジョブ試行の実行を許可する最大秒数を指定する
最小は60秒
イメージ ジョブで使用するDockerイメージを指定する
AWS ECRリポジトリにアップロードしたDockerイメージのURIも指定可能
コマンド コンテナに渡すコマンドを指定する
コンテナにコマンドを渡す必要がない場合(Dockerイメージで既に指定しているときなど)は、空欄でよい
vCPU コンテナ用に予約するvCPU数を指定する
メモリ コンテナに渡すメモリのハード制限を指定する
ジョブロール コンテナにAWS APIを使用するための権限を付与するIAMロールを指定する
AWS ECSのIAMロールを使用する
実行ロール AWS ECSコンテナにAWS APIコールを行う権限を付与するIAMロールを指定する
AWS ECSのIAMロールを使用する

※その他のパラメータや詳細については公式を確認してください。
※Fargateについてはこちらもご参考ください。
【AWS】Fargate・Lambda・Batchの使い分け

4.「作成」を選択する

まとめ

コンピューティング環境の構築に続き、ジョブキューとジョブ定義の手順を紹介しました。
次回は、ジョブの実行手順と結果確認手順を紹介します。