BFT名古屋 TECH BLOG

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

【AWS】Batch-ジョブ実行手順_第3話~ジョブの実行と実行結果確認~

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

はじめに

AWS Batchの概要紹介の記事で、AWS Batchの概要を紹介しました。
本記事は【AWS】Batch-ジョブ実行手順_第2話の続きとなる、ジョブの実行手順と結果確認手順を紹介します。
今回が連載最後の記事となります。

システム構成図

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

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

サービス一覧

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

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

前提条件

  • 使用するリージョンは、アジアパシフィック(東京)とする
  • AWS RDSがすでに構築されて接続できること

ジョブ実行手順

では、ジョブを実行する手順です。

1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブ」→「新しいジョブを送信」の順で選択する
3.ジョブ実行時間を設定する

以下のパラメータは、ジョブ送信時に設定必須の項目となります。

パラメータ 説明
名前 ジョブの一意の名前を指定する
ジョブ定義 作成したジョブ定義を指定する
ジョブキュー 作成したジョブキューを指定する

※その他のパラメータや詳細については公式を確認してください。

4.「送信」を選択し、ジョブを実行する。

ジョブ実行結果確認可能サービス

ジョブの実行結果を確認できるサービスを紹介します。

  • AWS Batch :実行したジョブのステータス確認が行える
  • AWS CloudWatch:実行したジョブのログが確認できる

AWS Batchでの結果確認手順

1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブ」を選択する
3.「ジョブキューを選択してください」でジョブを実行したジョブキューを選択する
4.表示される実行したジョブの「ステータス」列を確認する
ステータス 説明
SUBMITTED キューに送信されたジョブが他のジョブとの依存関係があるかどうかを評価している状態
依存関係がある場合はPENDING、ない場合はRUNNABLEに移行する
PENDING 他のジョブやリソースへの依存関係のために実行できない状態
依存関係が満たされるとRUNNABLEに移行する
RUNNABLE ジョブが実行される準備ができている状態
準備ができるとRUNNINGに移行するが、十分なリソースがない場合、この状態が続く
STARTING 関連するコンテナの初期化操作が進行している状態
コンテナが稼働状態になるとRUNNINGに移行する
RUNNING ジョブを実行している状態
成功するとSUCCEEDEDに移行するが、失敗するとFAILEDに移行する
SUCCEEDED ジョブが終了コード0で正常に完了した状態
この状態のジョブは24時間保持される
FAILED ジョブが終了コード0以外で失敗した状態
この状態のジョブは24時間保持される

AWS CloudWatchでの結果確認手順

1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブ」を選択する
3.「ジョブキューを選択してください」でジョブを実行したジョブキューを選択する
4.表示される実行したジョブの名前を選択する
5.「ジョブステータス」にある「ログストリーム名」を選択する
6.AWS CloudWatchに遷移するので、ログを確認する

※上記手順は、AWS Batchコンソール経由でのログを確認する手順ですが、AWS CloudWatchのロググループで/aws/batch/jobを検索することでも確認可能です。
ただし、今後この形式は変更される可能性があるようです。

まとめ

AWS Batchの構築手順を3つの記事に分けてご紹介してきました。
AWS Lambdaでは行えないような処理を実行したい場合にAWS Batchは有効であると思います。その際に、少しでもお役に立てたら幸いです。