まとめ — 選び方フローチャート&比較早見表

📖 このページのゴール:ここまで出てきた RDB(SQLite/自前/RDS/Aurora)・NoSQL(DynamoDB/MongoDB/Firestore)・キャッシュ(Redis)・オブジェクトストレージ(S3) を、1枚のフローチャート1枚の早見表にまとめて、「自分の場合はどれ?」をその場で選べるようにします。この文書の総決算です。迷ったら、まずこのページに戻ってきてください。 ← 目次・はじめにへもどる


ここまでお疲れさまでした。製品名がたくさん出てきましたが、選び方の芯は最初から1つでした。

🟢 「そのデータ、形は? 量は? どう使う? → 置き場所が決まる」。

このページでは、その芯を ①フローチャート(質問に答えていくだけ)②早見表(横一列で比べる)③ペルソナ別おすすめ(立場で選ぶ) の3つにまとめます。最後に 「とにかく迷ったら」の一手も置いておきます。


🧭 選び方フローチャート(質問に答えるだけ)

製品から選ぶと混乱します。上から順に質問に答えていくと、自然に置き場所が決まります。図のかわりに、ネストした質問分岐で進みます(深いほど枝の先)。

Q1. このデータ、形は?(いちばん大事な分かれ道)

Q1. データの「形」は?
├─ 関係のある「表」にきれいに収まる
│   (ユーザー・投稿・注文・フォロー関係…/きっちり整理したい)
│        → 🗄 RDB(SQL)   …… Q2へ
│
└─ ゆるい/中身がバラバラ/超大量・高速・特定の取り方
    (プロフィールのまとまり・イベントログ・リアルタイム同期…)
         → 🧺 NoSQL        …… Q3へ

🟢 迷ったら、まず左(RDB)。 SQLは普遍的で移行もしやすく、「とりあえず間違いない」最初の一手です。NoSQLは「特定の理由(超スケール・特定のアクセスパターン・リアルタイム)がある」ときに選びます。

Q2. RDBに決めた → どう動かす?(運用をどこまで任せる?)

Q2. RDBを「どう動かす」?  ← 自分でやる ↔ 任せる の階段
├─ ローカル/組み込み・1台・読み中心・とにかく手軽に
│        → 📄 SQLite(+エッジ版 Turso / Cloudflare D1)
│
├─ 運用(バックアップ・パッチ・障害対応)を任せたい
│   ├─ 普通に任せたい・コスト素直・PostgreSQL/MySQLそのまま
│   │        → 🛠 RDS(同類:Supabase / Neon / Cloud SQL)
│   │
│   └─ 高負荷・高可用・自動スケールが要る(割高でもOK)
│            → ⚡ Aurora(Serverless v2 なら負荷で自動スケール)
│
└─ 中身を全部いじる自由が要る・特殊要件・オンプレ必須
         → 🔧 自前(オンプレ)DB(MySQL/PostgreSQL を自分で)

🟢 個人・スタートアップは SQLite で素早く試す → 本番は RDS 系(Supabase/Neon)、が王道。Aurora や自前は「理由ができてから」で十分です。

Q3. NoSQLに決めた → どれ?

Q3. NoSQL なら、どれ?
├─ AWS中心・運用ゼロ・莫大なスケール・キー中心の出し入れ
│        → 🟧 DynamoDB(KV/ドキュメント・従量・自動スケール)
│
├─ 文書(JSON)を柔軟に・複雑な検索もそこそこしたい
│        → 🍃 MongoDB(ドキュメント/Atlas でマネージド)
│
└─ モバイル/Web・リアルタイム同期・Firebase で素早く
         → 🔥 Firestore(ドキュメント・リアルタイム)

➕ どの場合も「別腹」で足す2つ

RDB/NoSQL を決めたあとに、横から足すのがこの2つです。質問はシンプル。

速くしたい?(同じ問い合わせが多い・表示を軽く・DB負荷を下げたい)
   → はい:🏃 DBの「手前」にキャッシュ(Redis)を足す
            ※真実の源はDB。キャッシュは消えてOKな“控え”

大きいファイルを置く?(画像・動画・PDF・添付・バックアップ)
   → はい:📦 S3系(S3 / R2 / GCS …)へ。
            DBには「倉庫の場所=URL」だけ書く(ファイル本体はDBに入れない)

🟢 この2つは「あとから足せる」のが大事。最初から完璧に用意しなくても、速さが要るようになってからキャッシュファイルが出てきたらS3、で間に合います。


📊 比較早見表(この1枚で全部見比べる)

ここまでの登場人物を、§6の評価軸で横一列に並べます。この1枚が、このページの心臓部です。記号は 🟢=基礎としてまず押さえる/🔧=応用。

  データの形 得意なクエリ(取り出し方) 整合性 スケール 運用の任せ方 コスト 代表例
📄 SQLite 🟢 表(RDB) SQL(結合・集計OK)。ただし1台・少人数向け 強い(ACID) 垂直(基本1台) 組み込み(サーバー不要) ほぼ0円 SQLite/Turso/Cloudflare D1
🔧 自前(オンプレ)DB 表(RDB) SQL(フル機能) 強い(ACID) 自分で頑張る(垂直+複製) 全部自分(自由だが重い) 固定(サーバー+人手) MySQL/PostgreSQL を自前VMに
🛠 RDS 🟢 表(RDB) SQL(フル機能) 強い(ACID) 主に垂直(読みは複製で拡張) マネージド(AWSが世話) 固定寄り(起動分) RDS/Supabase/Neon/Cloud SQL
Aurora 🔧 表(RDB) SQL(フル機能・高速) 強い(ACID) 高可用・自動拡張(Serverless v2で自動) クラウドネイティブ(ほぼ任せ) 高め(割高・ロックイン強) Aurora(MySQL/PostgreSQL互換)
🟧 DynamoDB 🔧 カゴ(KV/文書) キー中心は超高速。複雑な結合は苦手 結果整合(強整合も選択可) 水平(ほぼ無限) サーバーレス(運用ゼロ) 従量(使った分) DynamoDB
🍃 MongoDB 🔧 カゴ(文書/JSON) 文書の柔軟検索。結合は限定的 既定はやや緩め(設定可) 水平(シャーディング) 自前〜マネージド(Atlas) 固定〜従量 MongoDB/Atlas
🔥 Firestore 🔧 カゴ(文書) キー/簡単な条件+リアルタイム同期 結果整合(一部強整合) 水平(自動) サーバーレス(運用ゼロ) 従量(読み書き回数) Firestore(Firebase)
🏃 Redis(キャッシュ) 🟢 カゴ(KV・メモリ上) キーで一瞬。検索DBではない 控え扱い(消えてOK) 水平/レプリカ マネージド多数 従量〜固定 Redis/ElastiCache/Upstash
📦 S3(オブジェクト) 🟢 ファイル(ブロブ) キーで put/get。中身検索はしない 高耐久(事実上消えない) ほぼ無限 フルマネージド 従量(容量+転送) S3/R2/GCS/Azure Blob

読み解きのコツを3つだけ。

  • 🟢 上4つ(SQLite〜Aurora)は全部「同じRDB」。 違うのは運用の任せ方だけ。形(表)も言葉(SQL)も整合性(強い)もほぼ共通です。
  • 🟢 NoSQL3つ(DynamoDB/MongoDB/Firestore)は「特定の強み」で選ぶ。 スケール・柔軟さ・リアルタイム——どれが欲しいかで決まります。
  • 🟢 Redis と S3 は別カテゴリ。 Redis は「速さの控え」、S3 は「大きいファイルの倉庫」。DBの代わりではなく、DBに足すものです。

🏢 ペルソナ別おすすめ(自分の立場で選ぶ)

「結局、自分はどれ?」を立場別に。まずこの行のとおりに始めれば外しません。

立場 まずこれ(RDB/NoSQL) キャッシュ ファイル ひとこと
👤 個人・スタートアップ 🟢 マネージドPostgres(Supabase / Neon)。用途次第で Firestore 必要になったら Upstash(サーバーレスRedis) 🟢 S3 / R2 / Supabase Storage 「まずRDBで素直に」。速さもファイルも後から足す
🏭 中堅ベンチャー 🟢 RDS / Aurora + 用途別に DynamoDB 🟢 ElastiCache(Redis) 🟢 S3 コスト最適化が効いてくる。用途ごとに使い分け
🏢 大企業 Aurora / オンプレRDB + 各種NoSQL Redis(ElastiCache等) S3(+マルチリージョン) 監査・コンプラ・データ所在地・マルチリージョンまで設計

🟢 共通して言えるのは、スタートはみんな「マネージドPostgres + S3」でOKということ。規模が上がるにつれ、NoSQL・キャッシュ・Aurora・マルチリージョンが必要に応じて足されていく——この順番が安全です。


🆘 とにかく迷ったら(3行で)

考える時間がないとき、これだけ守れば大きく外しません。

迷い こうする
🗄 DB、どれ? まず PostgreSQL 系のマネージド(Supabase / Neon / RDS)。SQLは普遍で移行もラク
📦 ファイルは? S3系(S3 / R2 など)へ。DBには URLだけファイル本体をDBに入れない
🏃 遅い気がする 後からキャッシュ(Redis / Upstash)を手前に足す。真実の源はいつもDB

🔧 NoSQL に行きたくなったら、いったん深呼吸。「それ、PostgreSQL では本当にダメ?」と一度だけ自問してください。超スケール・特定アクセスパターン・リアルタイム同期——はっきりした理由があるならGO。なんとなく流行りで、ならまずRDBで十分なことがほとんどです。


🟢 ひとことで言うと

選び方の芯は1つ——①形は?(表→RDB/ゆるい・超大量→NoSQL)→ ②RDBならどう動かす?(手軽→SQLite/任せる→RDS/高負荷→Aurora/自由→自前)→ ③速さは後からキャッシュ/大きいファイルはS3(DBにはURLだけ)。立場を問わずスタートは 「マネージドPostgres + S3」。迷ったら PostgreSQL 系マネージド、これで最初の一手はまず間違いません。

➡️ 次へ

次のページ:用語ミニ辞典(ふりがな付き) → ← 目次・はじめにへもどる