AWS Batchとは
AWS Batchは、大規模計算ができるバッチコンピューティングを利用できるマネージド型のサービスです。
AWS Batchを利用することで、スーパーコンピュータ等で行うような大規模科学計算や、大量のデータ分析を行うことができます。
常に起動する必要がないが、大量の処理が必要な場合にAWS Batchを利用します。
また、夜間バッチなどの一定の間隔で定期的に実行することもバッチ処理をいいますが、AWS Batchとは関係ないため注意が必要です。
AWS Batchの構成
AWS BatchはAWS Lambda等から実行され、様々な処理を行って、結果をAmazon S3等のストレージに保存します。
AWS Batchの中に格納されたデータは実行終了後に削除されてしまうため、他のストレージに格納する必要があります。
AWS Batchの構成イメージは以下の通りです。
AWS Batchのコンポーネントの概要は以下の通りです。
(1) ジョブ
ジョブとは、AWS Batchによって実行される作業単位(シェルスクリプト、Linuxの実行ファイル等)です。
(2) ジョブ定義
ジョブ定義とは、ジョブの実行方法を設定したものです。
vCPU、メモリ、GPUなどを設定します。
(3) ジョブキュー
ジョブキューとは、コンピューティング環境で実行されるまでの間のジョブを格納するキュー(待ち行列)です。
(4) コンピューティング環境
実際の処理を行うコンピューティングリソースです。
AWS Batchの実行ステータス(ジョブの状態)
AWS Batchは本記事作成時点(2021年5月3日)で以下のアプリケーションを選択することができます。
(1) SUBMITTED
ジョブをキューに送信して、スケジューラによってジョブの依存関係を確認している状態です。
(2) PENDING
別のジョブまたはリソースへの依存関係があるため、実行待ちの状態です。
(3) RUNNABLE
未処理の依存関係がないため、実行できる状態です。
コンピューティング環境のリソースが空いたら実行します。
(4) STARTING
コンピューティング環境の初期化をしている状態です。
(5) RUNNING
コンピューティング環境内でジョブを実行している状態です。
(6) SUCCEEDED
ジョブが正常に完了した状態です。
(7) FAILED
ジョブが失敗した状態です。
それぞれステータスは以下の流れで遷移します。
AWS Batchの料金
AWS Batchは無料で使用できます。
しかし、AWS Batchを実行するためのコンピューティング環境(Amazon EC2インスタンス等)を使用するための費用は別途かかります。
AWSに関する記事
AWSについての関連記事は以下の通りです。
必要に応じて、ご確認ください。