stackbook

← 辞書(分野別)

§4

データベース・データ層

最終確認:2026年9月

4-1. DB本体とホスティング

RDB
  • MySQL既存システムとの互換が必要なときのみ
本番ホスティング(AWS)
  • Aurora PostgreSQL読み取り負荷が高くレプリカを多用する、または高可用性の要件が厳しいとき
本番ホスティング(PaaS)
Neon(ブランチ機能でPRごとにDBを複製できる)
  • Supabase認証・ストレージ・リアルタイムも一緒に欲しいとき

NeonはDatabricksの傘下に入った

小規模・個人
SQLite(Railsの単一サーバー構成、Cloudflare D1)
コネクションプール
RDS Proxy(AWS)/ PgBouncer(自前)

Neon・Supabaseは組み込みのプーラーを使う

バックアップ
マネージドの自動バックアップ+ポイントインタイムリカバリ有効化
バックアップ(SQLite)
Litestream(S3/R2へ継続的にレプリケーション)

4-2. 周辺ツール

GUIクライアント
  • DBeaver無償で多機能なものが必要なとき
マイグレーションの安全性チェック
Squawk(ロックを取る危険なALTERを検出)
スキーマ可視化
tbls(スキーマからドキュメントとER図を生成)
テストデータ
各言語のファクトリ/シード
本番データの匿名化
pg_dump後にスクリプトで置換

4-3. Postgresで済ませる範囲

ジョブキュー

Postgresでの手段River(Go)、Solid Queue(Rails)、pg-boss(TS)

専用ツールへの乗り換え条件§23-1 の目安を超える(Goは秒間数千件、Rails・TSは秒間数百件) → Redis系/SQS

全文検索(日本語)

Postgresでの手段pg_bigm(2文字単位の部分一致、日本語に強い)

専用ツールへの乗り換え条件表記揺れ・ファセット・高速サジェストが必要 → Meilisearch

ベクトル検索

Postgresでの手段pgvector

専用ツールへの乗り換え条件数千万件以上・専用のフィルタリング要件 → Qdrant

キャッシュ

Postgresでの手段Solid Cache(Rails)

専用ツールへの乗り換え条件低レイテンシ必須 → Valkey/Redis

Pub/Sub

Postgresでの手段LISTEN/NOTIFY

専用ツールへの乗り換え条件大量配信 → 専用基盤

4-4. キャッシュ・キュー・ストリーム

インメモリKVS
Valkey(Redis互換のOSS。AWSではElastiCache for Valkey)
マネージドキュー(AWS)
イベント配信(AWS)
  • SNS単純なファンアウトだけのとき
ストリーム
基本的に不要
  • Kafka(MSK)/Redpanda大量のイベントを複数サービスで再処理する要件があるとき
ワークフロー
Temporal(長時間・複雑なもの)