AWSでバッチ処理を簡単に!?AWSBatchについて概要紹介

こんにちは、たいしゅうです。

今回は、AWSでフルマネージドのバッチ処理を行うことができるサービスAWS Batchについて紹介をしたいと思います。

バッチ処理とは

そもそもバッチ処理が何なのかということで調べてみました。
コンピュータで1つの流れのプログラム群(ジョブ)を順次に実行すること。あらかじめ定めた処理を一度に行うことを示すコンピュータ用語。反対語は対話処理・インタラクティブ処理またはリアルタイム処理
つまり、データを蓄積して、蓄積したデータを定期的に一気に処理を行うということです。

概要

バッチ処理についてわかったところでAWS Batchについて概要を紹介します。
AWS BatchとはAWSが提供しているバッチ管理機能のセットです。
利用者がAWS batchを利用することで、従来のバッチ処理と違いうれしい点をまとめてみました。
・IT担当者が実行する数十万件のバッチ処理をAWS側で効率的に行うことができる
・送信されたバッチジョブの量とリソース用件に基づいて最適なコンピューティングリソースの数量とタイプをプロビジョニングしてくれる
・これまでバッチ処理のための仕組に必要だったソフトウェアやサーバークラスターなどの管理をする必要がなくなる
・EC2及びSpotインスタンスを使用してワークロードの計画、スケジュール、実行できるので、コストを抑え、スケーラブルにバッチ処理が可能

上記のような従来のバッチ処理構成が
AWSbatchを使うと、上記のような複雑な構成ではなくなり、ほぼ、AWSbatchの機能だけで完結できます。

4つの定義について

AWSBatchには4つの定義があります。ここでは、その4つの定義について紹介したいと思います。
■ジョブ
ジョブは、EC2上で動作するコンテナ化されたアプリケーションとしてAWS Batchによって実行される作業単位のこと。コンテナイメージ、コマンド、及びパラメータを参照して処理を実行する。
ジョブは、名前またはIDで他のジョブを参照することができ、他のジョブの正常終了に依存することができます。
ジョブで指定する属性の一部は以下の通りです。
・ひな形となるジョブ定義
・実行先が示されたジョブキュー
・実行するコマンド
・vCPUとメモリ要件
■ジョブ定義
ジョブ定義はジョブのひな形となるテンプレートのようなもので、ジョブの実行方法を定義するもの。
ジョブ定義の多くの仕様は、個々のジョブを委ねるときに新しい値を指定することによって無効にすることができます。
ジョブ定義で指定されている属性の一部は以下の通りです。
・ジョブに関連付けるIAMロール
・コンテナイメージ
・実行するコマンド
・vCPUとメモリ要件
・ボリュームとマウントポイント
・環境変数
■ジョブキュー
ジョブキューは投入されたジョブの待ち行列となる場所のことです。
ジョブが投入されると、ジョブキューに送信され、コンピューティングリソースにスケジュールすることができるまで、待機します。各キューには優先度の値が関連付けられています。
ジョブキューで定義する属性は以下の通りです。
・ジョブのプライオリティ(整数値=値が小さい方が優先度高)
・実行先のコンピュート環境
■コンピュート環境
コンピュート環境はジョブが実行される環境のことです。
コンピュート環境で定義する属性は以下の通りです
・IAMロール
・EC2キーペア
・EC2のオンデマンドかスポットインスタンス
・インスタンスタイプ
・vCPU(最小/最大/希望の数)
・ネットワーキング(VPC/サブネット/セキュリティグループ)
・実行先のコンピューティング環境
・EC2タグ

料金について

AWSで簡単にバッチ処理が行えるサービスなわけなので、当然金額もそこそこかかってくるのでは、と調べたところなんとAWSBatchそのものには費用が発生しません。
使ったEC2やスポットインスタンスの料金のみが課金対象となるようです。

利用可能リージョンについて

現在利用が可能なリージョンは、バージニア北部のみとなっています。

いい機能があるので、早く日本でも使えるようになったらいいですね。
今回はここまでになります。
最後まで、ご覧いただきありがとうございました。

次回もお楽しみに。

この記事を書いた人

aws-recipe-user