ひとことで言うと
マネージドのリレーショナルDBです。GenAI文脈での顔はpgvector拡張によるベクトル類似検索——ただし、Bedrock Knowledge Basesの正式なベクトルストアとして選べるのはAuroraだけで、単体のRDS for PostgreSQLは選べません。
要するに、同じPostgreSQLでも「本店」と「支店」の違いです。pgvectorという同じ道具は両方の店に置いてありますが、Bedrock Knowledge Basesという配達サービスは本店(Aurora)としか正式契約していません。支店(RDS for PostgreSQL)でpgvectorを使うこと自体はできても、それは自分でRAGを組む場合の話です。
なぜ生まれたか
pgvectorはPostgreSQL向けのオープンソース拡張で、既存のリレーショナルデータと同じDBにベクトルを共存させられます。新しい専用ベクトルDBを立てずに、既存のPostgreSQL資産の上でベクトル検索を足したいというニーズに応えるものです。
| 起きる不便 | pgvectorでの解決 |
|---|---|
| ベクトル検索のためだけに別のデータベースを増やしたくない | 既存のPostgreSQLにpgvector拡張を追加するだけで済む |
| ベクトル検索と通常のSQL条件検索を同時にかけたい | 同一テーブル内でベクトル列と通常列を一緒にクエリできる |
| インデックス方式を選びたい | IVFFlatとHNSWの両方に対応 |
何に使うか
| 用途 | 使い方 | 関連ドメイン |
|---|---|---|
| 自前RAGのベクトルストア | RDS for PostgreSQL+pgvectorで類似検索を自分のアプリから呼ぶ | D1 |
| Bedrock Knowledge Basesのベクトルストア | 不可。この用途はAuroraを使う | — |
| メタデータ付きベクトル検索 | 通常のWHERE句とベクトル距離検索を組み合わせる | D1 |
試験でどう問われるか
| 問われ方 | 正解に寄る条件 | 引っかけの選択肢 |
|---|---|---|
| Bedrock Knowledge BasesのベクトルストアにPostgreSQLを使いたい | Amazon Aurora PostgreSQLを選ぶ | 「RDS for PostgreSQLでpgvectorを使えばよい」という選択肢(KBの正式サポート外) |
| 既存のRDS資産の上で自前のベクトル検索を組みたい | RDS for PostgreSQL+pgvectorでも技術的には可能 | 「pgvectorが使えないから専用ベクトルDBが必須」という誤った前提 |
| ハイブリッド検索(キーワード+ベクトル)が要る | AuroraをKBのベクトルストアに選び、GINインデックスを併用 | RDS for PostgreSQLを直接KBに接続しようとする案 |
「pgvectorが使えるから、RDSもBedrock Knowledge Basesのベクトルストアになる」は誤りです。KBの公式なカスタマー管理ベクトルストア一覧はOpenSearch Serverless/OpenSearch Managed Clusters/S3 Vectors/Amazon Aurora/Neptune Analytics/Pinecone/Redis Enterprise Cloud/MongoDB Atlasで、単体のAmazon RDSは含まれません。同じPostgreSQLでもエンジンの違いが正誤を分けます。
実務でどう使うか
- KB用にAuroraのテーブルを作るときは列とインデックスの指定が細かい。 ベクトル列・テキスト列にインデックスが必須で、メタデータフィルタリングを使うならJSONB列にGINインデックスも要ります
- メタデータフィルタで結果が想定より少なくなることがある。 HNSWインデックス走査後にフィルタが適用される仕様のため、選択性の高いフィルタでは反復スキャン(
hnsw.iterative_scan、pgvector 0.8.0以降)の有効化が推奨されています - 自前でRDS+pgvectorのRAGを組む場合は、埋め込み生成・チャンク分割・同期を自分で書く必要があります。 KBのようにマネージドで面倒を見てくれる範囲ではありません
ハマりどころ: Aurora PostgreSQL Serverlessを使う場合、DBクラスタはBedrock Knowledge Baseと同じAWSアカウントに存在しなければなりません。クロスアカウント構成のまま接続しようとすると失敗します。
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| Amazon Aurora(PostgreSQL互換) | KBの正式なベクトルストアはこちら限定。試験で「PostgreSQLでKBを組む」と出たら、選ぶべきは常にAurora側 |
| Amazon DocumentDB | RDSはリレーショナル(SQL)。DocumentDBはドキュメント(MongoDB互換)。データの構造がすでにJSON中心ならDocumentDB側が候補になる |
| OpenSearch Service | pgvectorは「既存のリレーショナル資産にベクトルを足す」路線。OpenSearchは「検索専用にゼロから最適化する」路線。既存資産の有無で分かれる |
想起チェック
Q1. 「PostgreSQLでpgvectorを使っているから、そのままBedrock Knowledge Basesのベクトルストアに指定できる」は正しいですか?
エンジンがRDS for PostgreSQL単体なら誤りです。Bedrock Knowledge Basesが公式サポートするのはAmazon Auroraのみで、単体のAmazon RDSはベクトルストアの選択肢に含まれません。
Q2. RDS for PostgreSQLでベクトル検索を使いたいが、Knowledge Basesには組み込めない場合、どういう構成になりますか?
自前のRAGパイプラインとして組みます。埋め込み生成・チャンク分割・同期処理をアプリ側で実装し、pgvectorはあくまで類似検索のためのDB拡張として使います。