コンニチハ、BFT名古屋支店のヤタテです。
はじめに
AWS Batchの概要紹介の記事で、AWS Batchの概要を紹介しました。
本記事は【AWS】Batch-ジョブ実行手順_第2話の続きとなる、ジョブの実行手順と結果確認手順を紹介します。
今回が連載最後の記事となります。
システム構成図
AWS Batchのシステム構成図イメージとなります。
サービス一覧
太文字がシステム構成図の赤枠と対応しており、今回の記事の対象となります。
- 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:ジョブの実行に当たって必要なポリシーを割り当てる。
前提条件
- 使用するリージョンは、アジアパシフィック(東京)とする
- AWS RDSがすでに構築されて接続できること
ジョブ実行手順
では、ジョブを実行する手順です。
1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブ」→「新しいジョブを送信」の順で選択する
3.ジョブ実行時間を設定する
以下のパラメータは、ジョブ送信時に設定必須の項目となります。
パラメータ | 説明 |
---|---|
名前 | ジョブの一意の名前を指定する |
ジョブ定義 | 作成したジョブ定義を指定する |
ジョブキュー | 作成したジョブキューを指定する |
※その他のパラメータや詳細については公式を確認してください。
4.「送信」を選択し、ジョブを実行する。
ジョブ実行結果確認可能サービス
ジョブの実行結果を確認できるサービスを紹介します。
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は有効であると思います。その際に、少しでもお役に立てたら幸いです。