0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントやFastAPIの案件でPostgreSQLをよく見かけたので、DynamoDBとの違いを調べてみた

0
Last updated at Posted at 2026-08-03

はじめに

これまで、AIエージェントやFastAPIについて調べた記事を書いてきました。

技術記事や案件情報を見ていると、以下のような構成をよく見かけます。

  • FE:Next.js
  • BE:FastAPI
  • DB:PostgreSQL
  • LLM:OpenAI API
  • クラウド:AWS

一方で、私はこれまでAWSを利用した開発の中で、DynamoDBを利用する機会がありました。

そのため、

「PostgreSQLとDynamoDBって何が違うんだろう?」

「AI案件ではなぜPostgreSQLが採用されることが多いんだろう?」

という疑問を持ちました。

そこで今回は、PostgreSQLとDynamoDBの違いについて、自分なりに調べてみたことをまとめてみます。

この記事はこんな人向け

この記事は、以下のような方を対象としています。

  • PostgreSQLとDynamoDBの違いがよく分からない方
  • RDBとNoSQLの違いを知りたい方
  • AWSを利用した開発に携わっている方
  • AI案件でなぜPostgreSQLが利用されるのか気になっている方
  • データベース選定の考え方を知りたい方

PostgreSQLとは?

PostgreSQLは、リレーショナルデータベース(RDB)の1つです。

簡単に言うと、

「表(テーブル)同士を関連付けてデータを管理するデータベース」

です。

例えば、以下のような構成です。

usersテーブル

id name
1 山田
2 佐藤

ordersテーブル

id user_id product
1 1 PC
2 2 マウス

user_idによって、ユーザーと注文情報を紐づけることができます。

users
  ↓
user_id
  ↓
orders

また、SQLを利用して柔軟な検索を行えることも特徴です。

SELECT
    u.name,
    o.product
FROM users u
JOIN orders o
ON u.id = o.user_id;

DynamoDBとは?

一方、DynamoDBはAWSが提供するNoSQLデータベースです。

簡単に言うと、

「高速でスケーラブルなキー・バリュー型のデータベース」

です。

例えば、

{
  "user_id": "1",
  "name": "山田",
  "orders": [
    {
      "product": "PC"
    }
  ]
}

のように、1つのデータにまとめて保存します。

DynamoDBではJOINの概念がないため、必要なデータをまとめて持つ設計が基本になります。

PostgreSQLとDynamoDBの違い

調べてみると、大きな違いは以下のようでした。

項目 PostgreSQL DynamoDB
種類 RDB NoSQL
検索 SQL PK/SK
JOIN 可能 不可
スケール 垂直・水平 水平
運用 必要 AWS管理
得意分野 複雑な検索 高速アクセス
トランザクション ○(制限あり)

個人的には、

PostgreSQL = 柔軟性重視

DynamoDB = パフォーマンス重視

というイメージを持ちました。

AI案件でPostgreSQLが多い理由

調べてみて、「なるほど」と思ったのがここでした。

例えば、法務エージェントの場合、

  • ユーザー
  • 契約書
  • レビュー履歴
  • コメント
  • 権限

など、多くのデータが関連しています。

User
 ↓
Contract
 ↓
Review
 ↓
Comment

このようなケースでは、JOINが利用できるPostgreSQLの方が扱いやすそうです。

また、

SELECT *
FROM review
WHERE user_id = 1
AND created_at >= '2026-07-01'
ORDER BY created_at DESC;

のような検索も簡単に実現できます。

AI案件では、

  • ユーザー管理
  • 履歴管理
  • 権限制御
  • ログ管理

などが必要になるため、RDBとの相性が良いのだと思いました。

DynamoDBが活躍するケース

逆に、DynamoDBは以下のようなケースで強みを発揮します。

  • 高トラフィックなシステム
  • セッション管理
  • キャッシュ
  • IoT
  • ゲーム
  • リアルタイム処理

例えば、

user_id
  ↓
プロフィール取得
  ↓
10ms以下で返却

のように、単純なキー検索を大量に行うケースでは非常に強力です。

以前、DynamoDBについて調べた際にも、

  • TTL
  • PITR
  • Auto Scaling
  • On-Demand

など、運用面で便利な機能が多いことが印象的でした。

どちらを選ぶべき?

調べてみて感じたのは、

「どちらが優れているか」ではなく、「どちらが適しているか」が重要

ということです。

PostgreSQLが向いている

  • AIシステム
  • 業務システム
  • ECサイト
  • 履歴管理
  • 複雑な検索

DynamoDBが向いている

  • 高速アクセス
  • IoT
  • セッション管理
  • リアルタイムシステム
  • 大量アクセス

案件によっては、

Aurora PostgreSQL
       ↓
メインDB

DynamoDB
       ↓
キャッシュ・高速アクセス

のように、両方を利用するケースもあるようです。

調べてみた感想

正直、調べる前は、

「DynamoDBの方が新しいし、全部置き換えられるのでは?」

と思っていました。

しかし、実際には用途がかなり異なることが分かりました。

特にAI案件では、

  • FastAPI
  • PostgreSQL
  • OpenAI API
  • AWS

という組み合わせをよく見かけるため、今後はPostgreSQLについても理解を深めていきたいと思っています。

一方で、AWSを利用したシステムではDynamoDBが採用されるケースも多く、両方を理解しておくことが重要だと感じました。

まとめ

PostgreSQLとDynamoDBについて調べてみて、以下のことが分かりました。

  • PostgreSQLはRDBで、複雑な検索やJOINが得意
  • DynamoDBはNoSQLで、高速アクセスが得意
  • AI案件ではPostgreSQLが採用されることが多い
  • DynamoDBはリアルタイム処理との相性が良い
  • 重要なのは「どちらが優れているか」ではなく、「どちらが適しているか」

AIエージェントやFastAPIについて調べていく中で、バックエンドの技術スタックについても少しずつ理解が深まってきました。

次は、Aurora PostgreSQLについて調べて、Auroraと通常のPostgreSQLの違いについても学んでみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?