Amazon EventBridge Pipes によるイベント統合 - ソースとターゲットの接続パターン

SQS・DynamoDB Streams・Kinesis などのイベントソースとターゲットを直接接続し、フィルタリングとエンリッチメントを挟む設計パターンを紹介します。

Pipes の接続パターン

EventBridge Pipes はイベントソースとターゲットをポイントツーポイントで接続するサービスです。従来は SQS キューのメッセージを Step Functions に渡すために Lambda 関数を作成する必要がありましたが、Pipes ではソースとターゲットを直接接続できます。サポートされるソースは SQS、Kinesis Data Streams、DynamoDB Streams、Amazon MSK、セルフマネージド Kafka で、ターゲットは EventBridge バス、Step Functions、Lambda、API GatewaySNS、SQS など多数のサービスに対応しています。バッチサイズや並行性の設定でスループットを制御します。

フィルタリングとエンリッチメント

フィルタリングでは EventBridge のイベントパターン構文を使い、特定の条件に合致するイベントのみをパイプラインに通します。DynamoDB Streams から INSERT イベントのみを抽出する、SQS メッセージの特定フィールドが閾値を超えるものだけを処理するといった制御が可能です。エンリッチメントステップではフィルタリング後のイベントを Lambda 関数や API Gateway エンドポイントに送信し、外部データの付加や形式変換を行います。入力トランスフォーマーはイベントの JSON パスを指定してターゲットが期待する構造にマッピングし、コード不要のデータ変換を実現します。

ソースとターゲットの組み合わせ

Pipes のソースは SQS 、 Kinesis Data Streams 、 DynamoDB Streams 、 MSK 、 MQ 、セルフマネージド Kafka をサポートします。ターゲットは Step Functions 、 Lambda 、 ECS タスク、 EventBridge バス、 API Gateway 、 SNS 、 SQS など 15 以上のサービスに対応します。エンリッチメントステップで Lambda や API Gateway を呼び出し、イベントデータに外部情報を付加してからターゲットに配信します。入力トランスフォーマーでイベントの構造を変換し、ターゲットが期待する形式に整形します。 イベント統合のアーキテクチャを網羅的に学ぶなら、技術書 (Amazon)を参照してください。

Pipes の料金

EventBridge Pipes の料金はリクエスト数で課金され、64 KB チャンクあたり約 0.40 ドル/100 万リクエストです。フィルタリングでターゲットに配信するイベントを絞り込むと、ターゲット側の処理コスト (Lambda の実行回数、Step Functions の状態遷移) を削減できます。エンリッチメントの Lambda 呼び出しは Lambda の標準料金が別途発生します。Pipes を使わずに Lambda でグルーコードを書く場合と比較して、Lambda の実行コストとメンテナンスコストを削減できます。

まとめ

EventBridge Pipes はイベントソースとターゲットの直接接続により、グルーコードの Lambda を削減します。SQS、Kinesis、DynamoDB Streams など 6 種類のソースから 15 以上のターゲットに接続し、フィルタリングとエンリッチメントでイベントの選別と加工を実行します。入力トランスフォーマーでターゲットが期待する形式に変換し、統合コードの保守コストを大幅に削減します。