DynamoDBとは?RDSとの使い分けとキー設計の考え方

DynamoDBとは?AWSのNoSQLデータベースを新社会人向けにやさしく解説

配属先で「そこはダイナモでいいんじゃない?」「RDSじゃなくてDynamoDBにしよう」といった会話が飛び交い、ついていけないと感じていませんか?DynamoDBは、AWSでアプリを作るときに必ずといっていいほど選択肢に上がるデータベースです。

この記事では、そのDynamoDBを「札(ふだ)を渡せば一発で取り出せる超高速ロッカー」というたとえ話を軸に、仕組みから現場での使いどころ、RDSとの使い分け、料金の考え方までまとめて解説します。

結論から言うと、DynamoDBとは決まった札を渡すと、データがどれだけ増えても同じ速さで目的の1件を取り出せるデータベースです。

この記事でわかること

  • DynamoDBがどんなサービスか(たとえ話つき)
  • DynamoDBがデータを出し入れする流れと、現場で出会う場面
  • RDSとの使い分け、DynamoDBの料金と無料枠
目次

DynamoDBとは?一言でいうと「札で一発で取り出せるロッカー」

DynamoDB(ダイナモディービー)とは、AWSが提供するデータベースサービスです。正式には「Amazon DynamoDB」といいます。

AWS公式は、DynamoDBを「あらゆる規模で1桁ミリ秒のパフォーマンスを実現する、サーバーレスでフルマネージド型の分散型NoSQLデータベース」だと説明しています。言葉が固いので、ひとつずつほどいていきます。

  • 1桁ミリ秒 — 頼んでから返ってくるまでが、1000分の1秒を数個ぶんという速さ
  • サーバーレス — 自分でサーバーを立てたり止めたりしなくてよい
  • フルマネージド — バックアップや監視といった世話をAWSがやってくれる
  • NoSQL — 表と表をつないで検索する形とは別の作りのデータベース

ここで、駅のコインロッカーを思いうかべてみてください。番号札を持っていけば、荷物は一瞬で出てきます。ロッカーが100個あっても、100万個あっても、出すのにかかる時間はほとんど変わりません。番号がそのまま置き場所だからです。

DynamoDBもこれと同じ発想です。あらかじめ決めた「キー」を渡せば、中に何億件たまっていても、目的の1件がすぐ返ってきます。

裏を返すと、苦手なこともあります。「中身が赤い荷物を全部出して」と言われたら、ロッカーを片っぱしから開けるしかありません。DynamoDBも、キー以外の条件で全体をさがす操作は苦手です。ここが後で効いてくる大事な性質です。

DynamoDBの全体イメージ:札(キー)で一発で取り出す
図: DynamoDBの全体イメージ:札(キー)で一発で取り出す(筆者作成)

DynamoDBの仕組みと使いどころ

DynamoDBがデータを出し入れする流れ

DynamoDBを理解する近道は、登場する言葉を3つだけ覚えることです。

  • テーブル — データを入れる大きな入れもの。ロッカーの並び全体
  • 項目(アイテム) — データ1件ぶん。ロッカー1つに入った荷物
  • 属性(アトリビュート) — 項目が持つ中身。名前や値段といった1つ1つの情報

そして取り出しの札にあたるのがパーティションキーです。会員IDや注文番号のように、1件を言いあてられるものを選びます。

これにソートキーを足すと、「この会員の、新しい順に10件」といった取り出し方ができます。同じロッカーの中を、日付順に並べておくイメージです。

表計算ソフトとの大きな違いは、列をそろえなくてよい点です。ある項目には備考があって、となりの項目には無い、ということが許されます。仕様が変わっても作りなおさずにすむので、変化の速いサービスと相性がよいわけです。

DynamoDBが活躍する場面

公式ページでは、代表的な使いどころとして次のようなものが挙げられています。

  • 買い物カゴと在庫の管理 — アクセスが急に増えても止まりにくい
  • ゲームのプレイヤーデータとランキング — 大量の読み書きに耐える
  • 動画や記事のメタデータ置き場 — タイトルや再生数などの情報を持つ
  • 金融の不正検出や支払い処理 — 速さと安定が求められる場面

規模の感覚もつかんでおきましょう。公式によると、1秒あたり100万件を超えるリクエストを受けているお客様が何百といます。さらにグローバルテーブルという機能を使うと、可用性は最大99.999%とされています。

可用性とは、サービスが使える状態でいられる割合のことです。99.999%は、1年で止まってよい時間が5分ほど、という水準になります。

新社会人がDynamoDBに出会う場面

入社1〜3年目でありがちなのは、「ログイン情報はダイナモに入れておいて」と軽く指示される場面です。

作ること自体は簡単です。画面からテーブル名とキーを決めれば、数分でできてしまいます。むしろ怖いのは、そのキーの決め方です。

DynamoDBのパーティションキーは、後から気軽に変えられません。あとで「メールアドレスでも引きたい」と言われて、作りなおしになることがあります。

そこで身につけたいのが、作る前に「このデータは、どのキーで引きますか?」と聞く習慣です。取り出し方から先に決めるのがDynamoDBの流儀で、表を先に設計するRDSとは考える順番が逆になります。

もうひとつ、スキャンという全件を見にいく操作にも注意してください。件数が少ないうちは動きますが、増えると遅くなり、料金もかさみます。「動いたのに本番で重い」の原因はたいていこれです。

DynamoDBと関連サービスの違い・つながり

まず押さえたいのがRDSとの違いです。どちらもデータベースですが、得意分野が違います。

RDSは表と表をつないで、条件を組み合わせた検索ができます。「今月の売上を、地域ごとに集計する」といった仕事はRDSの得意分野です。

いっぽうDynamoDBは、キーで1件を取り出すことに全振りしています。決まった引き方を、とにかく速く、大量にさばきたいときに選びます。

迷ったときの目安は、引き方が決まっているかどうかです。決まっているならDynamoDB、あとから自由に集計したいならRDS、と考えると外しにくくなります。

相性がよいのがLambdaです。どちらもサーバーの世話がいらないため、組み合わせると管理するものがほとんど無い構成になります。

両者をつなぐのがDynamoDB Streamsという機能です。テーブルの中身が変わったことを記録してくれるので、「注文が入ったらメールを送る」といった処理をLambdaにつなげられます。

S3との違いも整理しておきましょう。画像や動画そのものを置くならS3、そのファイル名や投稿者といった小さな情報を出し入れするならDynamoDBです。実際の構成では、両方を組み合わせて使います。

アクセスできる人の制御はIAMが担当します。テーブル単位で権限を細かく決められるので、権限は必要な範囲だけ渡すのが基本です。

DynamoDBの料金と無料枠

DynamoDBの課金は、大きく「読み書きした量」と「ためた量」で決まります。以下は執筆時点(2026年8月)の公式料金ページの内容です。

読み書きの払い方には、2つのモードがあります。

  • オンデマンド — 使ったリクエストのぶんだけ払う。読み込みは100万リクエストあたり0.125 USD、書き込みは100万リクエストあたり0.6250 USD
  • プロビジョンド — 使う量を先に確保して時間で払う。米国東部だと読み込みは1RCU時間あたり0.00013 USD、書き込みは1WCU時間あたり0.00065 USD

アクセス量が読めないうちはオンデマンド、量が安定してきたらプロビジョンドに寄せる、という進め方が一般的です。プロビジョンドはさらに、1年の予約で最大54%、3年で最大77%まで下げられます。

無料利用枠も用意されています。支払いアカウントとリージョンごとに、毎月次の範囲が無料です。

  • データの保存 — 25GBまで(標準テーブルクラス)
  • プロビジョンドキャパシティ — 書き込み25WCU、読み込み25RCUまで
  • DynamoDB Streams — 読み込み250万回まで

個人の練習用なら、まず超えない量です。EC2やRDSのように「立てっぱなしで課金される」形ではないため、勉強用に置いておきやすいのもうれしい点です。

なお料金の形は見直されることがあります。実際に使う前には、かならず公式の料金ページで最新の内容を確認してください。

現場ノート:DynamoDBは「キー設計の相談」ができれば合格

運用の立場でDynamoDBに関わって感じるのは、RDSと違ってあとからの設計変更がきかない怖さです。パーティションキーの選び方が悪いと、特定の置き場にアクセスが集中して性能が出ない。しかも作り直し以外の解決策が乏しい。だから本文にも書いたとおり「このデータは何で引くか」を作る前に確認するのが全てです。もう1つ、費用面の現場感覚を足すと、DynamoDBは読み書きの回数で課金されるので、スキャン(全件なめる操作)を定期実行するバッチが費用と性能の両方を壊す定番です。管理画面のメトリクスで消費キャパシティを見る癖をつけてください。

DynamoDBのまとめ

ここまでの要点を整理します。

  • DynamoDBはキーを渡せば1桁ミリ秒で1件を取り出せる、サーバーレスなNoSQLデータベース
  • 引き方が決まっているならDynamoDB、自由に集計したいならRDS、と使い分ける
  • 無料枠はストレージ25GBと読み書き各25ユニットまで。立てっぱなしの課金がない

まずは検証用にテーブルを1つ作り、パーティションキーを決めて数件を出し入れしてみてください。「キーで引く」という感覚をつかんだ時点で、先輩との会話はぐっと分かるようになります。

参考リンク

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

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

目次