【だいなもでぃーびー】

DynamoDB とは?

最終更新:
💡 キーで見つける、AWSに管理を任せるDB

AWSが提供する、キーバリュー型とドキュメント型に対応したマネージドNoSQLデータベース。サーバーの保守はAWSが担い、利用者はキーや検索の設計、容量モード、権限、料金などを考える。

📌 このページのポイント
DynamoDB:キーでデータを見つけるアプリキー:u001DynamoDBu001 のプロフィール取得結果利用者が考えるキー・検索・容量権限・利用料金AWSが管理するサーバーと保守マネージドサービスキーと検索の設計は自分で考えよう
架空のユーザーIDからプロフィールを取得する例です。サーバー管理を任せられても、検索・整合性・容量モード・料金の検討は必要です。
ひよこ ひよこ
DynamoDBは、何を管理してくれるの?
ペンギン先生 ペンギン先生
AWSがサーバーやソフトウェアの保守などを担うNoSQLデータベースだよ。データはテーブルの項目に保存し、キーバリュー型とドキュメント型を扱える。サーバーの台数を自分で決める必要はないけれど、アプリがどう読むか、キー、容量の方式、権限などは考える必要があるんだ。
ひよこ ひよこ
キーを指定して取るって、どんな感じ?
ペンギン先生 ペンギン先生
たとえば架空のユーザーID u001から、その人のプロフィールを取る使い方だよ。主キーはパーティションキーだけの場合と、ソートキーも組み合わせる場合がある。Queryではパーティションキーの等しい値を指定し、ソートキーの条件を加えられる。使いたい検索からキーや索引を設計するんだ。SQLのJOINのような機能は提供しないよ。
ひよこ ひよこ
どんなアクセスでも、必ずミリ秒で返る?
ペンギン先生 ペンギン先生
AWSは1桁ミリ秒の性能を特徴として案内しているけれど、アプリの処理時間全部を保証する意味ではないよ。通信、読み出す量、リトライなども影響するし、特定のキーに負荷が偏ると制限に達することがある。キー指定で効率よく取得できるアクセスを設計し、自分の条件で確認しよう。
ひよこ ひよこ
自動で増えるなら、料金も気にしなくていい?
ペンギン先生 ペンギン先生
料金と容量の方式を確認しよう。オンデマンドは読み書きの要求に応じた課金、プロビジョンドは設定した読み書き容量に応じた課金が基本だよ。保存容量などの料金もあるので、使わなければ全部無料とは限らない。容量の上限、監視、必要なら自動スケーリングの設定も、選んだ方式に合わせて考えるんだ。
ひよこ ひよこ
保存した直後は、最新の値を読める?
ペンギン先生 ペンギン先生
既定の結果整合性の読み取りでは、直前の更新がまだ反映されていない場合があるよ。テーブルやローカルセカンダリインデックスは、強い整合性の読み取りを選べる。一方、グローバルセカンダリインデックスの読み取りは結果整合性だよ。アプリが必要とする整合性と、利用できる読み取り方法を区別しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DynamoDB」って出てきたら「キーでデータを扱う、AWSのマネージドNoSQLデータベース」と思えばだいたいOK!
📖 おまけ:英語の意味
「Amazon DynamoDB」 = AWSのNoSQLデータベースサービス名
💬 DBはDatabase(データベース)。DynamoDBはAWSのサービスの名称として覚えよう。

参考資料

← 用語集にもどる