S3 Vector と Bedrock ナレッジベースによるお手軽 RAG アプリを作ってみる
はじめに
業務で PoC のために RAG システムを作成する機会があったので
今後サクッと RAG の検証を行いたいときのための備忘録として記事にした。
今回作る構成
追加予定
ナレッジベースを用いた RAG の実装
データソースの作成
S3 Vecotor が 2025/09/03 時点で米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、アジアパシフィック (シドニー)、欧州 (フランクフルト) リージョンに対応していたため、それに合わせてバケットはシドニーに作成した。
今回は検証として令和4年度 移住・定住施策 優良事例集の PDF をデータソースとして利用した。

ナレッジベースの作成
Amazon Bedorock にてナレッジベースを選択し、作成を始める。
「ベクトルストアを含むナレッジベース」を押下して作成を進める。

ナレッジベースの詳細を入力し、データソースは「Amazon S3」にする。


次の画面では「データソース」を入力する画面になるので
さきほど作成した S3 を選択する。

次の画面では「埋め込みモデル」を選択する。
今回は「Titan Text Embeddings V2」を選択している。


続いて「ベクトルデータベース」を選択する。
ここが今回の S3 Vector の登場ポイントである。
画面に従って S3 Vector を選択する。


確認画面を経て、ナレッジベースを作成する

ナレッジベースとデータソースとの同期
データソース一覧に表示されたデータソースを押下し、データソースの詳細画面へ進む。

「同期」を押下し、データを同期させる


検証してみる
ナレッジベースの画面に行き、「ナレッジベースをテスト」を押下する。

今回は検証用として使用したPDFに記載されている北海道の上士幌町の事例についてを聞いてみる。
画像は PDF 内より。

なんかエラーでた。
調査をしてみると、画像内では会話生成モデルとして "Titan Text G1 - Lite" を選択しているが
このモデルでは会話生成モデルとして対応していない。このことによるエラーらしい。

会話生成モデルを「Cloude 3 Sonet v1」に変更してプロンプトを打つと
しっかり回答生成をしてくれた。

おわりに
今回は業務で RAG を用いたシステムの PoC を実施する機会があったので、簡単に RAG の実装をしてみました。安く環境が構築できるので、軽い検証レベルとしては十分だと感じました。
実際のシステムに組み込むなどを考えるとカスタマイズ性としては制限があるので、API形式で呼び出して利用する形にしたり、別途 RAG システムを自前で作ることも必要に応じて選択すればよいのではないかと思います。
参考文献
ベクトルの保存とクエリをネイティブにサポートする最初のクラウドオブジェクトストレージ、Amazon S3 Vectors (プレビュー版) を発表 - AWS 背景・目的 以前、下記でBedrockを試してみました。今回はBedrockでRAGを試してみます。 Amazon Bedrockを整理してみた Amazon Bedrockを試してみた まとめ 下記に特徴をまとめます。 特徴 説明 ナレッジベースとは... Amazon S3 Vectorsを使って簡単にRAGを実装してみた - MBS Tech Nexus Blog
Discussion