■ 問題
ある企業は、オンプレミス環境にある動画配信アプリケーションをAWSに移行しています。その際は、動画コンテンツのメタデータをAmazon DynamoDBテーブルに保存して、メタデータの処理を高速に実行することが必要です。しかしながら、既存のDynamoDBテーブルによるデータ処理に対して読み取り処理量が多すぎて、パフォーマンスが十分に発揮できませんでした。あなたはソリューションアーキテクトとして、アプリケーションの構成を変更することなく、DynamoDBのパフォーマンス効率を向上させる必要があります。
要件を満たすことができる最適なソリューションはどれでしょうか。
■ 選択肢
- Amazon ElastiCache For Redisを利用して、DynamoDBテーブルにキャッシュレイヤーを追加して高速処理を実施する。
- Amazon DynamoDB Accelerator(DAX)を利用して、DynamoDBテーブルにキャッシュレイヤーを追加して高速処理を実施する。
- DynamoDBグローバルテーブルを使用して、DynamoDBテーブルを複数リージョンに展開して、ユーザーが近いロケーションからのアクセスを可能にする。
- DynamoDBテーブルのストリーム処理を有効化して、ユーザーに対する高速処理を可能にする。
これより先は正解と解説です。
■ 正解
✅
Amazon DynamoDB Accelerator(DAX)を利用して、DynamoDBテーブルにキャッシュレイヤーを追加して高速処理を実施する。
■ 構成イメージ
アプリケーション(変更なし)
│
▼
DAX(インメモリキャッシュ)
│
▼
DynamoDB■ 全体的な説明
✔ オプション2(正解)
この問題の最大のポイント👇
・読み取りが多い
・既存構成を変更しない■ DAXとは
DynamoDB専用キャッシュ👉 特徴
・インメモリキャッシュ
・ミリ秒 → マイクロ秒
・アプリ変更不要■ 効果
読み取り負荷軽減
+
レスポンス高速化■ 不正解の理由
❌ オプション1(Redis)
ElastiCache(Redis)
👉 NG理由
アプリ改修が必要
👉 問題の条件違反
❌ オプション3(グローバルテーブル)
リージョン分散
👉 NG理由
読み取り性能改善ではない
❌ オプション4(ストリーム)
変更通知機能
👉 NG理由
パフォーマンス改善には無関係
■ 試験ポイントまとめ
① DynamoDB専用キャッシュ = DAX
② アプリ変更なし → DAX一択
③ 読み取り性能改善 → キャッシュ■ 一発で覚える
DynamoDB高速化 = DAX■ まとめ
| 要件 | 解決策 |
|---|---|
| 読み取り性能向上 | DAX |
| アプリ変更なし | DAX |
| キャッシュ | DAX |
■ 最重要パターン
DynamoDB + 高速化 + 改修なし
→ DAX
■ 結論
DynamoDBの読み取り性能をアプリ変更なしで向上させるには
DAXを利用するのが最適解
必要なら👇
👉 DAX vs ElastiCache vs CloudFrontキャッシュの違い(試験頻出)
も同じ形式で出せます 👍
ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。
- 選考ではありません
- 履歴書不要
- 技術の話が中心
- 所要時間30分程度
- オンラインOK