無限ノック › DEA 練習問題一覧 › 問題
DEAデータの取り込みと変換

ある広告テクノロジー企業は、リアルタイムの広告インプレッションデータをAmazon Kinesis Data Streamsに毎秒100万件送信しています。5分間のタンブリングウィンドウで広告ごとのクリック率(CTR)をリアルタイムに集計し、閾値を超えた広告IDをAmazon DynamoDBに即時書き込む必要があります。さらに、ストリーム処理においてexactly-onceセマンティクスによる重複排除も必須です。最適なアーキテクチャはどれですか?

A
Amazon Managed Service for Apache FlinkでFlinkアプリケーションを実行し、タンブリングウィンドウ集計とexactly-onceセマンティクスをネイティブ機能で実装してDynamoDBに出力する
✓ 正解
Amazon Managed Service for Apache Flinkはタンブリングウィンドウ集計とexactly-onceセマンティクスをネイティブにサポートし、Kinesis Data StreamsおよびDynamoDBとのネイティブ統合で低レイテンシのリアルタイム処理が実現できます。
B
AWS Lambda関数をKinesis Data Streamsトリガーとして設定し、ElastiCacheで状態を管理してウィンドウ集計ロジックを実装しDynamoDBに書き込む
AWS LambdaはKinesisトリガーで処理できますが、5分間のタンブリングウィンドウ状態をElastiCache等で外部管理する必要があり、exactly-onceの保証も複雑な実装が必要でこのユースケースには適していません。
C
Amazon Data FirehoseでKinesis Data Streamsからデータを受信してS3に書き込み、Athenaで5分ごとにCTRをクエリしてDynamoDBに書き込むLambdaを実行する
Amazon Data Firehose + S3 + Athena経由はバッチ分析向けのアーキテクチャであり、リアルタイムのウィンドウ集計と閾値超過時の即時DynamoDB書き込みには遅延が大きく要件を満たせません。
D
Amazon EMR上でApache Spark Streamingジョブをマイクロバッチ実行し、ウィンドウ集計後にDynamoDBに出力するクラスターを常時稼働させる
EMR上のSpark StreamingはApache Flinkよりもマイクロバッチに近い処理モデルであり、真のリアルタイムウィンドウ集計には向かず、常時稼働するEMRクラスターの管理・コスト負担も増大します.

解説

Amazon Managed Service for Apache Flink(旧Kinesis Data Analytics for Apache Flink)は、Apache Flinkベースのストリーム処理エンジンをフルマネージドで提供します。タンブリングウィンドウ・スライディングウィンドウなどの時間ベースのウィンドウ集計をネイティブにサポートし、チェックポイントメカニズムによるexactly-onceセマンティクスも標準機能として提供されます。Kinesis Data Streamsとのネイティブ統合により低レイテンシの処理が実現でき、DynamoDBへの書き込みコネクタも利用可能です。 選択肢BのAWS Lambdaはイベント単位の処理が得意ですが、タンブリングウィンドウの時間ベース状態管理にElastiCacheの追加管理が必要で、exactly-onceの保証の実装も複雑になります。 選択肢CのKinesis Data Firehose + S3 + Athena経由のアーキテクチャは分析バッチ処理向けであり、リアルタイムのウィンドウ集計と即時DynamoDB書き込みには遅延が大きく適していません。 選択肢DのEMR上のSpark Streamingはマイクロバッチ処理モデルであり、真のリアルタイムウィンドウ集計にはFlinkより不向きで、常時稼働クラスターの管理コストも増大します。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DEA の問題一覧に戻る