ある証券会社は、株式取引データをAmazon Kinesis Data Streamsにリアルタイムで送信しています。以下の処理要件があります。
・複数の銘柄ストリームをリアルタイムに結合(JOIN)して異常取引パターンを検出したい
・過去5分間のタンブリングウィンドウ(Tumbling Window)で各銘柄の取引統計を集計したい
・処理の状態(ステート)をチェックポイントとして保存し、障害発生時に途中から再開できるようにしたい
この要件を満たすために最も適切なサービスはどれですか?
A
Amazon Data Firehose と AWS Lambda を組み合わせて変換処理を行う
Amazon Data Firehose + Lambda はシンプルなレコード単位の変換には適していますが、ストリーム間 JOIN やウィンドウ集計、ステート管理には対応していません。
B
Amazon Managed Service for Apache Flink を使用してステートフルなストリーム処理を実装する
✓ 正解
Amazon Managed Service for Apache Flink(旧称 Kinesis Data Analytics for Apache Flink)は、複数ストリーム間の JOIN、タンブリング/スライディングウィンドウ集計、ステートフル処理とチェックポイントをネイティブサポートしており、今回の要件をすべて満たします。サーバーレスで自動スケーリングも可能です。