DVAトラブルシューティングと最適化

Amazon Kinesis Data Streamsを使用してリアルタイムのクリックストリームデータを収集しています。最近、アプリケーションの利用ユーザーが急増したため、データを読み取るコンシューマーアプリケーションのログに `ProvisionedThroughputExceededException` エラーが頻発するようになりました。コンシューマー側の処理コードには問題がないことが確認されています。このエラーを解決するために取るべき最も適切なアクションはどれですか。

A
UpdateShardCount APIを呼び出して、データストリーム内のシャード数を増やす(リシャーディングを行う)。
✓ 正解
シャードの数を増やすことで、ストリーム全体の読み取り/書き込みキャパシティが増加し、スループット超過エラーを解決できます。
B
コンシューマーアプリケーションがデータを取得する際のポーリング間隔を極限まで短くする。
ポーリング間隔を短く(高頻度に)すると、1秒あたりの読み取りAPIコール数が増加し、かえってスロットリング制限に抵触しやすくなります。
C
Kinesis Data Streamsのデータ保持期間(RetentionPeriod)をデフォルトの24時間から7日間に延長する。
データ保持期間の延長はデータがストリーム内に残る時間を延ばすだけであり、スループットのキャパシティ制限の引き上げには寄与しません。
D
ストリームに送信されるデータのパーティションキーを全て単一の固定値(例: 'Partition1')に変更する。
パーティションキーを単一の固定値にすると、すべてのデータが1つの特定のシャードに集中(ホットシャード化)し、さらにスループットエラーを悪化させます。

解説

Kinesis Data Streamsの `ProvisionedThroughputExceededException` は、シャードごとの読み取り/書き込みキャパシティ上限(例:読み取りは1シャードあたり最大2MB/秒または5トランザクション/秒)を超過した際に発生します。全体的なトラフィック増大によってこのエラーが頻発している場合、ストリームのシャード数を増やす(スプリット・リシャーディング)ことで、全体の処理スループット能力を拡張するのが正しい解決策です。

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

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

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