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

読み取りが大半を占めるアプリケーションが、DynamoDBテーブルに対して同じ項目を繰り返し読み取っています。読み取りにはミリ秒未満のレイテンシが求められ、結果整合性で問題ありません。アプリケーションのコード変更を最小限にしつつ、DynamoDBの読み取り負荷とレイテンシを削減する最も適切な方法はどれですか。

A
DynamoDB Accelerator (DAX) クラスターを導入し、DAX SDKクライアント経由で読み取る
✓ 正解
DAXはDynamoDB専用のインメモリキャッシュで、マイクロ秒単位のレイテンシを提供する。DynamoDB互換APIを持つDAXクライアントへ差し替えるだけで導入でき、キャッシュロジックの実装が不要なためコード変更が最小限で済む。
B
ElastiCache for Redisを導入し、キャッシュ参照と書き込みロジックをアプリケーションに実装する
ElastiCache for Redisはキャッシュヒット判定やキャッシュへの書き込み・無効化のロジックを自前で実装する必要があり、コード変更が大きくなる。最小限のコード変更という要件に反する。
C
DynamoDB Streamsを有効化し、変更を別テーブルに複製して読み取りを分散する
DynamoDB Streamsと別テーブルへの複製はレプリケーション用途であり、項目読み取りのレイテンシをマイクロ秒に下げるキャッシュ機能ではない。構成も複雑化し要件を満たさない。
D
テーブルのRCUを大幅に増やし、強い整合性のある読み取りに切り替える
RCU増加はスロットリングを緩和するがレイテンシは依然ミリ秒単位で、ミリ秒未満は実現できない。強い整合性読み取りはRCU消費が倍になりコストも増えるため不適切。

解説

DAXはDynamoDB専用のフルマネージドなインメモリキャッシュで、キャッシュヒット時にマイクロ秒単位のレイテンシを提供する。 DynamoDBと互換のAPIを持つDAXクライアントに差し替えるだけで導入でき、キャッシュの参照・無効化ロジックを自前で実装する必要がないため、コード変更が最小限で済む。 選択肢Bはコード変更が大きい。 選択肢Cはキャッシュ機能ではない。 選択肢Dはミリ秒未満を実現できずコストも増える。

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

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

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