Lambda のワークフローとイベントの管理
Lambda を使用してサーバーレスアプリケーションを構築するときは、関数の実行をオーケストレーションし、イベントを処理するための手段が必要になることがよくあります。AWS は、Lambda 関数の調整に役立つ 2 つの主要サービスを提供しています。
-
ワークフローオーケストレーション用の AWS Step Functions
-
イベント管理用の Amazon EventBridge スケジューラと Amazon EventBridge
さらに、アプリケーション内で Step Functions と EventBridge を統合することも可能です。例えば、特定イベントの発生時に Step Functions ワークフローをトリガーするための EventBridge スケジューラを使用したり、定義された実行ポイントで EventBridge スケジューラにイベントを発行するための Step Functions ワークフローを設定したりすることができます。本セクションの以下のトピックでは、これらのサービスの使用方法をより詳しく説明します。
Step Functions を使用したワークフローのオーケストレーション
AWS Step Functions は、複数の Lambda 関数やその他の AWS サービスを構造化されたワークフローにまとめて調整するために役立つワークフローオーケストレーションサービスです。これらのワークフローは、状態の維持、高度な再試行メカニズムを用いたエラーの処理、データの処理を大規模に行えます。
Step Functions では、さまざまなオーケストレーションニーズを満たすために 2 つのワークフロータイプが提供されています。
- Standard ワークフロー
-
1 回だけの実行セマンティクスを必要とする、実行時間が長い監査可能なワークフローに最適です。Standard ワークフローは最大 1 年間実行でき、詳しい実行履歴を提供するとともに、ビジュアルデバッグをサポートします。受注処理、データ処理パイプライン、マルチステップ分析ジョブといったプロセスに適しています。
- Express ワークフロー
-
1 回以上の実行セマンティクスを使用する、イベントレートが高い短期間のワークロード向けに設計されています。Express ワークフローは最大 5 分間実行でき、大量のイベント処理、ストリーミングデータ変換、または IoT データインジェストのシナリオに最適です。Standard ワークフローよりも高いスループットを提供し、コストが低くなる可能性もあります。
注記
Step Functions ワークフロータイプの詳細については、「Choosing workflow type in Step Functions」を参照してください。
これらのワークフロー内では、Step Functions が並列処理用に 2 つのマップ状態タイプを提供します。
- インラインマップ
-
親ワークフローの実行履歴内にある JSON 配列からの項目を処理します。インラインマップは最大 40 個の同時イテレーションをサポートしており、小規模なデータセットや、すべての処理を単一の実行内で行う必要がある場合に適しています。詳細については、「Using Map state in Inline mode」を参照してください。
- 分散マップ
-
256 KiB を超えるデータセット、または 40 個以上の同時イテレーションを必要とするデータセットでイテレーションを行うことにより、大規模な並列ワークロードの処理を可能にします。最大 10,000 件の並列子ワークフローの実行をサポートする分散マップは、Amazon S3 に保存されている半構造化データ (JSON ファイルや CSV ファイルなど) の処理に優れているため、バッチ処理や ETL 操作に最適です。詳細については、「Using Map state in Distributed mode」を参照してください。
Step Functions は、これらのワークフロータイプとマップ状態を組み合わせることによって、小規模な操作から大規模なデータ処理パイプラインにおよぶ複雑なサーバーレスアプリケーションをオーケストレーションするための、柔軟かつ強力なツールセットを実現します。
Step Functions での Lambda の使用を開始するには、「Orchestrating Lambda functions with Step Functions」を参照してください。
EventBridge と EventBridge スケジューラを使用したイベントの管理
Amazon EventBridge は、イベント駆動型アーキテクチャの構築に役立つイベントバスサービスで、AWS サービス、統合アプリケーション、および Software as a Service (SaaS) アプリケーション間でイベントをルーティングします。EventBridge スケジューラは、1 つの中央サービスからタスクを作成、実行、管理できるようにするサーバーレススケジューラで、cron 式や rate 式を使用してスケジュールに基づく Lambda 関数の呼び出しを行ったり、1 回限りの呼び出しを設定したりできます。
Amazon EventBridge と EventBridge スケジューラは、Lambda を使用したイベント駆動型アーキテクチャの構築に役立ちます。EventBridge は AWS サービス、統合アプリケーション、SaaS アプリケーション間でイベントをルーティングし、EventBridge スケジューラは Lambda 関数を反復的または単発で呼び出すための特定のスケジュール作成機能を提供します。
これらのサービスは、Lambda 関数を使用するための主要機能をいくつか提供します。
-
EventBridge を使用して、イベントのマッチングと Lambda 関数へのルーティングを行うルールを作成
-
EventBridge スケジューラを使用して、cron 式と rate 式を用いた反復的な関数呼び出しを設定
-
特定の日付と時間での 1 回限りの関数呼び出しを設定
-
スケジュールされた呼び出しに対する柔軟な時間枠や再試行ポリシーを定義
詳細については、「スケジュールに従って Lambda 関数を呼び出す」を参照してください。