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