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

IOTデバイスからの毎秒数万件の小さなログデータをAmazon Kinesis Data Streamsに送信するプロデューサーアプリケーションを開発しています。現在、PutRecord API呼び出しの回数が非常に多く、コストとネットワークオーバーヘッドが増加しています。API呼び出し回数を減らし、プロデューサーの書き込みスループットを最大化するための最適なアプローチはどれですか。

A
Kinesis Producer Library (KPL) を導入し、レコードのバッチ化と集約機能を有効にする
✓ 正解
Kinesis Producer Library (KPL) を使用してレコードのバッチ化と集約(複数の論理レコードを1つのKinesisレコードに結合)を有効にすることで、API呼び出し回数を劇的に削減しスループットを最大化できます。
B
AWS SDKのPutRecords API呼び出しに切り替え、同時実行スレッド数を無制限に設定する
AWS SDKのPutRecords APIは一括送信をサポートしていますが、KPLが提供する「複数の論理レコードを単一のペイロードにパッキングする集約機能」を独自に実装しない限り、同等のネットワーク効率とスループット向上は得られません。
C
Amazon API Gatewayをプロデューサーの前に配置して、ペイロードの圧縮とキャッシュを行う
Amazon API Gatewayをストリームの前に配置すると、HTTPリクエストのオーバーヘッドが追加され、システム全体のレイテンシとコストが上昇するため、高スループットなプロデューサーの書き込み最適化としては不適切なアーキテクチャです。
D
Kinesis Client Library (KCL) を使用して、書き込みリクエストの分散キューイングを実装する
Kinesis Client Library (KCL) は、ストリームからデータを読み取って処理するコンシューマーアプリケーションを構築するためのライブラリであり、プロデューサー側の書き込み最適化やバッチ化に使用するものではありません。

解説

高スループットのデータ取り込みシナリオにおいて、Amazon Kinesis Producer Library (KPL) を使用すると、複数の論理レコードを1つのKinesisレコード内に結合(集約・Aggregation)し、複数のAPI呼び出しを単一のHTTPリクエストにグループ化(バッチ化・Collection)することができます。これにより、PutRecord/PutRecordsのAPI呼び出し回数が劇的に減少し、スループットの向上とコストの削減が実現します。AWS SDKのPutRecords APIもバッチ処理をサポートしますが、KPLのようなペイロードの「集約」機能は自動提供されません。API Gatewayの追加はレイテンシとコストを悪化させ、KCLは読み取り(コンシューマー)用のライブラリであるためプロデューサー側の改善には寄与しません。

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

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

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