当ブログの内容は筆者の経験と知識に基づいていますが、AWSのサービスおよび認定試験は定期的にアップデートされています。もし記事に誤りや古い情報がある場合、お手数ですが「コメント」や「お問い合わせ」からお知らせいただければ幸いです。読者の皆様からの貴重なフィードバックを歓迎しており、正確かつ有益な情報を提供できるよう努めてまいります。
どうぞよろしくお願いいたします。
AWS Batchとは
AWS Batchとは、その名の通りバッチ処理の実行環境を提供するフルマネージドサービスです。
ここでのバッチ処理とは、予め定義した定型処理をジョブスケジューラによって実行していく「夜間バッチ」のようなものではなく、膨大な量のコンピューティングリソースを使用する負荷の高い「大規模バッチ」というイメージです。よって、AWS Batchは主にスーパーコンピュータ等で行う大規模科学計算や、高負荷なシミュレーション、画像処理、CGレンダリングといった用途でよく利用されます。
AWS Batchを利用したアーキテクチャの例
AWS Batchの活用例として、「ゲノム配列の分析基盤」のアーキテクチャを挙げます。
ユーザー(生物学者)がS3バケットにアップロードした生ファイルをAWS Batchで解析し、その結果を別のS3バケットに格納しています。
①ユーザーが生ファイルをS3バケットへアップロードします。
②S3の「イベント通知」によりLambdaまたはEventBridgeを起動し、AWS Batchをトリガーします。
※S3から直接AWS Batchを呼び出すことはできないため、サービスを間に挟みます。
③AWS Batchがコンピューティング環境(Amazon ECS)を構築し、EC2インスタンスまたはFargateで生ファイルの解析を実行します。
※コンピューティングリソースは自動でスケールされます。
④解析結果を別のS3バケットへ格納します。
AWS Lambdaとの違い
改めてAWS Batchとは、バッチ処理や大規模な計算作業を行うためのサービスです。主に、長時間かかる計算タスクやデータ処理など、高負荷のジョブを実行する際に使用されます。
一方でAWS Lambdaとは、イベント駆動型のコンピューティングサービスであり、特定のトリガーに応じてコードを実行します。例えば、API呼び出し、データの変更、メッセージキューからのメッセージなどがトリガーとして使用されます。主に、短時間で実行されるイベント駆動型のアプリケーションやマイクロサービスに利用されます。
AWS BatchとAWS Lambdaの最大の違いは、「実行時間」にあります。
AWS Lambdaは関数のタイムアウト値が「15分」となっており、その時間を過ぎれば強制的に処理が停止します。よって、長時間の処理には適しません。15分を超えることが想定される処理がある場合には、AWS Batchを採用します。
認定試験でこれらのサービスを選択させる際には、問題文中に処理時間が必ず記載されているので、長時間とあれば「AWS Batch」、短時間とあれば「AWS Lambda」を選択するようにしましょう。
AWS Batchとは一言で
AWS Batchとは、「大規模バッチ処理の環境を提供するマネージドサービス」です。
参考
・AWS公式ガイド
https://docs.aws.amazon.com/ja_jp/batch/latest/userguide/Batch_GetStarted.html
・AWS Batch 入門編(PDF/AWS Black Belt Online Seminar)
https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AWS-Batch_0929_v1.pdf
【おすすめの参考書】
リンク先からご購入いただき、サイト運営をご支援いただけますと幸いです…
コメント