📦 パフォーマンス:DynamoDBの使いどころ

【DynamoDBの役割(パフォーマンス最適化)】

目次

🔍 1. 結論

💎 一言でいうと Amazon DynamoDB は、データ量がGBからTB、PBに増えようと、「常に1桁ミリ秒(数ミリ秒)の超低レイテンシで応答し続ける」 ことが保証された高性能NoSQLデータベースです。

  • キャパシティ設計は「プロビジョンド」と「オンデマンド」から選べる。
  • 読み取り性能を極限まで高める(ミリ秒からマイクロ秒へ)には、専用キャッシュ DAX を使う。

📈 2. SAAで出やすいポイント

  • キャパシティモードの選択:
    • プロビジョンド: トラフィックが予測可能な場合。Auto Scalingと組み合わせてコストを最適化する。
    • オンデマンド: 突然バズるなど、トラフィックが全く読めない場合(スパイク)。事前の容量設計なしに数千〜数万リクエスト/秒まで一瞬で自動対応する。
  • DynamoDB Accelerator (DAX): DynamoDBの前に置くフルマネージドのインメモリキャッシュクラスター。これを使うと、読み取り応答速度が「1桁ミリ秒(0.00x秒)」から 「マイクロ秒(0.00000x秒)」 まで高速化されます。アプリのコードを変更せずに導入できるのが特徴。
  • パーティションキー設計: 高性能を引き出すには、特定のキーにアクセスが集中(ホットパーティション)しないよう、均等に分散されるキー設計が求められます。

🗝 3. キーワードでの判断

問題文のキーワード 疑う機能・構成
⚡ 「1桁ミリ秒のレイテンシ」「どんなにスケールしても遅延が変わらない」 Amazon DynamoDB
🚀 「DynamoDBの読み取りをさらに高速化」「マイクロ秒のレイテンシ」 DynamoDB Accelerator (DAX)
📈 「事前の容量予測が不可能なトラフィックの急増」 DynamoDB オンデマンドキャパシティモード

⚠️ 4. ひっかけポイント

🚫 よくある誤答パターン – 「DynamoDBをキャッシュするために ElastiCache for Redis を導入する」 → 間違いではありませんが、DynamoDB専用で「コード変更を最小限にしたい」という要件なら DAX が圧倒的に正解になりやすいです。 – 「複雑なJOINクエリを高速化するためにDynamoDBを使う」 → DynamoDBはNoSQLなのでJOINはできません。複雑なクエリの高速化なら、RDSのチューニングやRedshiftを検討します。


💡 5. 覚え方

🧠 暗記ショートカット – DynamoDB = 「巨大な図書館の超優秀な司書」。 – 本が何万冊に増えようが、タイトル(キー)さえ言えば「1ミリ秒」で持ってくる。 – DAX = 「司書の机の上のメモ帳」。よく聞かれる本はメモしてあるので「1マイクロ秒(ミリの1000分の1)」で答えられる。


📚 6. 関連サービス

アイコン サービス名 高性能化における違い
🚀 DynamoDB DAX DynamoDB専用。アプリのコード書き換えが不要(API互換)
⚡ Amazon ElastiCache RDSなど様々なDBのキャッシュに使える汎用インメモリDB。コード改修が必要

🗒️ 7. Obsidian管理メモ

  • 見返すタイミング: NoSQLデータベースのパフォーマンス最適化、DAXの要件学習時
  • 関連ノート候補: AWS_SAA_DynamoDB_DAX, AWS_SAA_NoSQL_vs_RDB

8. HTMLファイル名: AWS_高性能設計_DynamoDB.html

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次