ある金融サービス会社が、リアルタイムの不正取引検知システムを AWS 上に構築しています。毎秒 50,000 件の取引データがストリームとして流れ込み、各取引に対して機械学習モデルで 100ms 以内にスコアリングを完了する必要があります。スコアが閾値を超えた場合は即座にアラートを送信し、全データを 90 日間保持して後の分析に使用します。最も適切なアーキテクチャはどれですか?
- A. Amazon Kinesis Data Streams で取引データを受信し、Kinesis Data Analytics(Apache Flink)でリアルタイム処理を行い、SageMaker のリアルタイム推論エンドポイントで不正スコアリングを実施する。アラートは SNS で送信し、データは S3 に Kinesis Data Firehose で保存する
- B. AWS IoT Core でデータを受信し、IoT ルールで Lambda を起動して ML 推論を実行する
- C. Amazon MSK(Kafka)でデータを受信し、ECS Fargate のコンシューマーアプリで処理し、RDS Aurora で結果を保存する
- D. Amazon SQS でメッセージを受信し、Lambda 関数で ML 推論を呼び出す。DynamoDB に結果を保存し、Lambda から SNS でアラートを送信する
解答と解説を見る
正解: A
Kinesis Data Streams は毎秒数万件のストリームデータ取り込みに最適化されています。Kinesis Data Analytics(Flink)でリアルタイムのウィンドウ処理と前処理を行い、SageMaker リアルタイム推論で P99 100ms のスコアリングが実現できます。Kinesis Data Firehose で S3 への自動保存と 90 日保持が実現でき、SNS でアラートを即時送信できます。 D: SQS + Lambda は高スループットのリアルタイムストリーミングよりもキューベースの非同期処理に向いており、毎秒 50,000 件の処理と 100ms レイテンシーの達成が困難です。Lambda のコールドスタートもレイテンシーに影響します。 B: IoT Core は IoT デバイスからのデータ収集を主目的としており、金融取引データの高スループット処理には Kinesis が適しています。 C: MSK + ECS Fargate + Aurora の構成は機能しますが、インフラの管理負荷が高く、100ms のレイテンシー要件の達成にはチューニングが必要です。Kinesis のフルマネージドな解決策より運用負荷が増します。
📚 関連サービスの解説: Amazon Kinesis ・ Amazon SageMaker