DVA-C02開発HARD複数選択

ある金融機関が、DynamoDB Streamsを使ったイベント駆動型の監査ログシステムを構築している。ストリームのLambdaコンシューマーが処理遅延を起こしており、IteratorAgeが増大している。根本原因を特定して対策を講じる方法を2つ選択してください。

  1. A. Lambdaのメモリサイズを増やしてCPUパフォーマンスを向上させ、1レコードの処理時間を短縮する
  2. B. Kinesis Data StreamsとKinesis拡張ファンアウトに移行し、コンシューマーごとに専用スループットを確保する
  3. C. DynamoDBテーブルのプロビジョンドキャパシティ(RCU)を増やして読み取りスループットを向上させる
  4. D. DynamoDB StreamsのシャードをKinesis Data Streamsにも連携し、Kinesis Analytics Studioでリアルタイム分析する
  5. E. Lambda関数のparallelizationFactorを1から10に増やして、シャードあたりの並列処理数を向上させる
解答と解説を見る

正解: A, E

DynamoDB StreamsのIteratorAge増大はLambdaがレコードを処理しきれていないことを示す。parallelizationFactor(1〜10)を増やすとシャードあたりのLambda同時実行数が増加し、バッチ処理のスループットが向上する。追加コードなしに設定変更のみで効果がある。またLambdaのメモリを増やすとCPU割り当ても比例して増加するため(Lambdaはメモリ比例でCPUが割り当てられる)、各レコードの処理時間を短縮できる。両者を組み合わせることで処理遅延が改善される。CのDynamoDBのRCU増加は書き込みスループット(WCU)に対してであり、Streamsのコンシューマー処理遅延はLambda側の処理能力の問題でありRCUとは無関係。Bのkinesis拡張ファンアウトへの移行はアーキテクチャ変更が大きく、DynamoDB Streamsとは別サービスへの移行となるため「最小限の変更」に反する。DのKinesis Analytics Studioへの連携は監査ログ処理の遅延解消ではなく分析用途であり、IteratorAge問題の解決にはならない。

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