Dynamo01

「一瞬で探せる魔法の本棚」|特別編 DynamoDB入門

著者: 管理者 / 2025-08-07 (更新: 2025-08-07)

user01 Calm
先生、特別編でLambdaを学んでから、サーバーレスの世界がとても面白くなってきましたわ✨
その中で「DynamoDB」というサーバーレスのデータベースが出てきましたけれど……いったいどんな本棚なのか、もっと詳しく知りたいですわ!📚
user02 Calm
良い質問ですね。
DynamoDBは、AWSが提供する NoSQL型のサーバーレスデータベース です。
まるで「魔法の本棚」のように、必要な本(データ)を一瞬で取り出せるのが特徴です。
今日はその魅力を、特別編として学んでいきましょう。

📝 DynamoDBとは?

  • 完全マネージド型のNoSQLデータベース
  • サーバー管理不要(スケーリングも自動)
  • データを「テーブル」として保存するが、SQLのように複雑な表構造は不要

イメージ

  • 通常のSQLデータベース → 図書館(きっちり整理された棚、厳格なルール)
  • DynamoDB → 魔法の本棚(どんな形の本でも置ける、呼べばすぐ出てくる)

📝 DynamoDBの基本構造

  1. テーブル(Table)
    • データを入れる箱
    • 例:Users テーブル
  2. 項目(Item)
    • テーブルに入る1つのデータ(SQLでいう「行」)
    • 例:1人のユーザー情報
  3. 属性(Attribute)
    • 項目の中のフィールド(SQLでいう「列」)
    • 例:userId, name, age
  4. 主キー(Primary Key)
    • データを一意に識別するための鍵
    • パーティションキー または パーティションキー+ソートキー の組み合わせ

📝 簡単なデータ例

{
  "userId": "001",
  "name": "Alice",
  "age": 17,
  "hobby": ["piano", "tennis"]
}

`` 同じテーブルに、別の人のデータを自由な形で追加できます。

{
  "userId": "002",
  "name": "Bob",
  "favorite_color": "blue"
}

👉 SQLなら列をそろえないといけませんが、DynamoDBは柔軟に保存できます。


📝 DynamoDBの強み

  • スピードが速い:ミリ秒単位でデータを取得できる
  • スケーラブル:アクセスが増えても自動で対応
  • サーバーレス:利用者は「本を取り出す」ことだけ考えれば良い
  • 柔軟なデータ構造:列がそろっていなくても保存可能

user01 Surprised
まあ!同じ本棚に「Aliceのプロフィール帳」と「Bobの青好きノート」が一緒に置けるなんて、不思議ですわね✨
しかも呼べば一瞬で取り出せるなんて、本当に魔法の本棚ですわ!
user02 Happy
その通りです。
特にゲームのユーザーデータや、SNSのプロフィール情報のように「人によって持っている情報が違う」ケースでは大活躍します。
従来のSQL型だと列をそろえるのが大変ですが、DynamoDBなら気軽に追加できますからね。

📝 DynamoDBの注意点

  • 複雑な検索は苦手

    • SQLのように「結合」や「高度な分析」はできない
  • 設計が重要

    • 主キーの選び方でパフォーマンスが変わる
  • 無料枠はあるが制限付き

    • 読み書きの回数や容量によって課金が発生

user01 Calm
ふむふむ……自由度が高いけれど、その分「本棚の並べ方(キー設計)」に工夫が必要なのですわね✨
でもSNSやゲームのように柔軟さが大事な場合は、とても向いていそうですわ!
user02 Serious
まさにその通りです。
DynamoDBは「自由とスピードを重視する街」に向いています。
逆に、会計システムや在庫管理のように「正確で複雑な検索」が必要な場面では、RDSのようなSQL型が適しています。
使い分けがポイントですね。

📝 まとめ

  • DynamoDB = 魔法の本棚
  • NoSQL型で柔軟にデータを保存できる
  • サーバーレスなのでスケーリングも管理も不要
  • 得意:スピード・柔軟性
  • 苦手:複雑な検索・結合

user01 Happy
まあ〜!これでDynamoDBという魔法の本棚の秘密が分かりましたわ✨
Lambdaの小人さんと組み合わせたら、すぐに便利なアプリが作れそうですのね!
user02 Calm
その通りです。
次に進むときは「サーバーレスアーキテクチャ実践編」として、LambdaとDynamoDBを組み合わせたアプリ例を学んでみましょう。
街の小人と本棚が力を合わせると、とても面白い仕組みができますよ。

「未来都市の設計図」|第10回 AWSで学ぶモダンWebアプリ設計入門「未来都市の設計図」|第10回 AWSで学ぶモダンWebアプリ設計入門

関連記事 「街のホテルに泊まる」|特別編 EC2入門「街のホテルに泊まる」|特別編 EC2入門

「魔法の小人が代わりに働く?」|特別編 AWS Lambda入門「魔法の小人が代わりに働く?」|特別編 AWS Lambda入門