Q62 — AWS SAA-C03 第8章
第 62/65 問 | ← 第8章
Q557. ある企業が、Amazon DynamoDBをデータストアとして使用するモバイルチャットアプリケーションを運用しています。ユーザーは、新着メッセージをできるだけ低遅延で読み込みたいと考えています。ソリューションアーキテクトは、アプリケーションの変更を最小限に抑えつつ、最適なソリューションを設計する必要があります。 この要件を満たすために、ソリューションアーキテクトが選択すべき方法はどれですか?
- A. 新着メッセージ用のテーブルに対してAmazon DynamoDB Accelerator(DAX)を設定し、コードを更新してDAXエンドポイントを使用する。 ✓
- B. 増加した読み取り負荷に対応するため、DynamoDBの読み取り専用レプリカを追加し、アプリケーションを変更して読み取り専用レプリカのエンドポイントを参照するようにする。
- C. 新着メッセージ用のDynamoDBテーブルの読み取りキャパシティユニット(RCU)を2倍に増やし、既存のDynamoDBエンドポイントをそのまま使用する。
- D. アプリケーションスタックにAmazon ElastiCache for Redisキャッシュを追加し、アプリケーションを変更してDynamoDBではなくRedisキャッシュのエンドポイントを参照するようにする。
正解: A. 新着メッセージ用のテーブルに対してAmazon DynamoDB Accelerator(DAX)を設定し、コードを更新してDAXエンドポイントを使用する。
解説
DAXは、DynamoDB向けの完全マネージド型インメモリキャッシュで、ミリ秒未満の応答時間と高いスループットを実現します。特に、頻繁に読み取られるデータ(例:新着メッセージ)に対して、DAXを導入すれば、アプリケーション側の変更はDAXエンドポイントへの切り替えのみで済み、既存のDynamoDB API呼び出しをほぼそのまま活用できます。一方、オプションBの読み取り専用レプリカは、DynamoDB Global Tablesの機能であり、通常はマルチリージョン構成で利用され、単一リージョン内での低遅延読み取りにはDAXほど効果的ではありません。オプションCは、コスト増加につながりやすく、スケーラビリティと遅延改善の観点で非効率です。オプションDのElastiCache for Redisは、キャッシュ戦略としては有効ですが、アプリケーション側でキャッシュの整合性(cache invalidation)、再読み込みロジックなどを自前で実装する必要があり、「最小限のアプリケーション変更」という要件に反します。したがって、最も適切な選択肢はAです。