AWSのBatchとStep FunctionsとLambdaってそれぞれ何がどう違うのか比較して

c-dustin-K-Iog-Bqf8E-unsplash.jpg

質問

AWSのBatchとStep FunctionsとLambdaってそれぞれ何がどう違うのか比較して


運命など存在しないので(1) 【電子書籍】[ 井原タクヤ ]

価格:869円
(2026/6/25 22:32時点)
感想(0件)


解答

一言でいうと

  • Lambda = 「コードを実行するサービス」

  • Batch = 「大量のバッチ処理を実行するサービス」

  • Step Functions = 「複数の処理を順番や条件分岐でオーケストレーションするサービス」

役割がそもそも違います。

Lambda

Lambdaはサーバーレスでコードを実行します。

例えば、

  • APIのリクエスト処理

  • S3アップロード時の画像変換

  • DynamoDB更新時の通知

  • 定期実行のスクリプト

などです。

S3 ↓Lambda ↓画像リサイズ

特徴

  • サーバー管理不要

  • イベント駆動

  • 自動スケール

  • 短時間処理向き

苦手

  • 数時間かかる処理

  • GPU処理

  • 大規模な科学計算

  • 大量メモリ消費

オンプレで例えると、

cronで起動する小さなスクリプトやWebアプリの処理

に近いです。


AWS Batch

Batchは大量のバッチジョブを実行するためのサービスです。

内部的にはEC2やFargateを使ってコンテナを実行します。

例えば、

  • 動画エンコード

  • 機械学習前処理

  • 数百万件のデータ集計

  • 夜間バッチ

など。

ジョブ1000個 ↓Batch ↓EC2/Fargateを自動確保 ↓並列実行

特徴

  • 長時間処理可能

  • コンテナ実行

  • ジョブキュー管理

  • 自動スケーリング

得意

  • 30分

  • 5時間

  • 20時間

みたいな重い処理。

オンプレで言うと、

ジョブスケジューラ+バッチサーバ群

です。


Step Functions

Step Functionsは処理そのものを実行するサービスではありません。

処理の流れを管理します。

例えば、

①注文受付 ↓②在庫確認 ↓③決済 ↓④配送手配 ↓⑤メール送信

のようなワークフローを定義できます。

特徴

  • 条件分岐

  • リトライ

  • タイムアウト

  • 並列処理

  • 状態管理

が得意です。

例えば、

Lambda ↓失敗再試行 ↓失敗管理者通知

みたいな制御を簡単に書けます。

実際には

Step Functionsは

  • Lambda

  • Batch

  • ECS

  • SageMaker

などを呼び出します。

つまり、

司令塔
の役割です。


関係性

よくある構成は、

Step Functions    ↓ Lambda    ↓ Batch    ↓ Lambda

です。

例えば、

Step Functions ↓Lambdaでデータチェック ↓Batchで大規模分析 ↓Lambdaで結果保存 ↓通知

のように組み合わせます。


オンプレで例えると

AWSオンプレ例
Lambdaスクリプト、常駐不要の小さなアプリ
BatchJP1、Systemwalker、Control-Mなどのジョブ実行基盤
Step Functionsワークフローエンジン、業務フロー制御

特に Step Functions は「処理を実行するもの」ではなく、LambdaやBatchなどの処理を組み合わせるオーケストレーターである点が重要です




第2版 インターネット削除請求・発信者情報開示請求の実務と書式 [ 神田知宏 ]

価格:4620円
(2025/1/3 18:57時点)
感想(0件)


Apple Gift Card(1,500円)

価格:1500円
(2024/4/6 16:48時点)
感想(886件)


 



この記事へのコメント