SAA-C03弾力性に優れたアーキテクチャの設計MEDIUM単一選択

ある企業が、Amazon Kinesis Data Streams を使ってリアルタイムのイベントストリームを処理している。ストリームの処理遅延が増加しており、IteratorAgeMilliseconds メトリクスが上昇している。処理コードを変更せずにスループットを向上させる最も適切な方法はどれか。

  1. A. Kinesis Data Streams の代わりに Amazon SQS に切り替える。SQS はスループットに制限がなく、自動スケーリングが可能である。
  2. B. Kinesis Data Streams のシャード数を増加(リシャーディング)させる。各シャードの処理能力は 1MB/s(書き込み)・2MB/s(読み取り)であるため、シャードを増やすことでストリーム全体のスループットが向上する。
  3. C. Kinesis Data Firehose に切り替えてデータを S3 に保存し、バッチ処理で処理する。
  4. D. Kinesis Data Streams のデータ保持期間を 24 時間から 7 日間に延長する。
解答と解説を見る

正解: B

Kinesis Data Streams のスループットはシャード数に比例する。各シャードは書き込み 1MB/s・1,000レコード/s、読み取り 2MB/s をサポートする。IteratorAgeMilliseconds(コンシューマーが処理しているレコードの経過時間)の上昇はシャードの読み取りキャパシティ不足を示すため、シャードを増加(リシャーディング)することでスループットが向上し遅延が解消される。コードの変更は不要である。選択肢Aは既存の Kinesis ベースのアーキテクチャを全面的に変更する必要があり、「コードを変更せずに」という要件に反する。また SQS はストリーム処理ではなくメッセージキューイングのサービスであり、Kinesis の順序保証・パーティション分割などの特性が失われる。選択肢CのData Firehose はリアルタイム処理ではなくバッチ配信(バッファリング)を行うサービスで、リアルタイム処理の要件に合わない。選択肢Dの保持期間の延長はスループットやレイテンシーには影響せず、問題の解決にならない。

▸ この試験を本気で演習する(全150問・無料)