無限ノック › DVA 練習問題一覧 › 問題
DVAトラブルシューティングと最適化

LambdaとDynamoDBを使用するサーバーレスアプリケーションで高レイテンシが問題となっています。AWS X-Rayのサービスマップ分析により、DynamoDBのGetItem呼び出しが平均200〜500msかかっていることが判明しました。DynamoDBテーブルのプロビジョニング済みRCU(読み取りキャパシティユニット)は100で、CloudWatchではスロットリングは一切発生していません。このテーブルは読み取り重視で、限られた同じアイテムへの頻繁なアクセスパターンがあります。レイテンシを最も効果的に削減する解決策はどれですか?

A
DynamoDBテーブルのプロビジョニング済みRCUを100から500に増加させる
プロビジョニング済みRCUの増加はスループット上限を引き上げますが、CloudWatchでスロットリングが発生していない以上キャパシティは不足しておらず、200〜500msのレイテンシ改善には寄与しません。
B
Amazon DAXクラスターをDynamoDBの前段に配置し、Lambda関数がDAXエンドポイントを使用するよう更新する
✓ 正解
DAXはDynamoDB専用のインメモリキャッシュで、読み取りレイテンシをミリ秒からマイクロ秒へ削減します。同一アイテムへの頻繁な読み取りはキャッシュヒット率が最大化される典型例で、最も効果的にレイテンシを削減できます。
C
DynamoDBテーブルをオンデマンドキャパシティモードに切り替えてスループットを自動スケールさせる
オンデマンドモードはキャパシティを自動スケールさせる容量・課金管理の仕組みであり、個々のGetItemの応答速度は変わりません。スロットリングも発生していないため、レイテンシ改善には繋がりません。
D
Lambda関数のメモリサイズを増加させてネットワーク帯域幅とCPUパフォーマンスを改善する
メモリ増加に伴いLambdaのCPUやネットワーク帯域は向上しますが、ボトルネックはDynamoDB側のGetItem処理時間にあるため、Lambdaのリソースを増やしてもレイテンシは改善されません。

解説

DAX(DynamoDB Accelerator)はDynamoDB専用のインメモリキャッシュで、読み取りレイテンシをミリ秒からマイクロ秒レベルに削減します。スロットリングが発生していないためRCU増加は効果なく、オンデマンドモードへの切り替えもキャパシティの自動調整でありレイテンシ改善にはなりません。Lambdaのメモリサイズを増加させるとネットワーク帯域幅やCPUは向上しますが、200〜500msのレイテンシはDynamoDB側の処理時間に起因しており、Lambda側のリソース増加では解決できません。同じアイテムへの繰り返しアクセスはDAXのキャッシュヒット率が最大化される典型的なユースケースです。 選択肢AのDynamoDBテーブルのプロビジョニング済みRCU増加は、スロットリングが発生していないためレイテンシ改善に効果がありません。 選択肢CのDynamoDBテーブルをオンデマンドキャパシティモードへの切り替えは、スループットを自動スケールさせますがレイテンシ改善にはなりません。 選択肢DのLambda関数のメモリサイズ増加は、ネットワーク帯域幅とCPUパフォーマンスを改善しますが、DynamoDB側の処理時間には影響しません。

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

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

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