現役のITエンジニアが、 システム開発の現場で求められる知識を発信
記事検索
公開

Amazon Bedrock Knowledge Base × S3 VectorsでRAGを作ってみた

生成AI関連

はじめに

生成AIを業務で活用する文脈において、RAG(検索拡張生成: Retrieval-Augmented Generation)はもはや定番の構成になりつつあります。一方で、実際にRAGを構築しようとすると、次のような悩みに直面することも多いのではないでしょうか。

  • ベクトルデータベースの選定・運用が大変
  • ドキュメントの前処理やEmbedding(埋め込み)生成が面倒
  • PoC段階なのに設計・実装コストが高い

こうした課題に対して、「かなり割り切ってRAGを簡単に作れる選択肢」として登場したのがAmazon Web Services が提供するAmazon Bedrock Knowledge Baseです。さらに近年S3 Vectorsが登場したことで、従来のベクトルDBを利用する構成と比べ、比較的低コストで検証できるようになりました。

本記事では、どこまでAWSに任せるだけでRAGが成立するのかを確認するために、実際に構築してみた内容をまとめていきます。
※ 本記事は精度検証やチューニングを目的としたものではなく、PoCや検証用途を想定した内容です。

全体構成イメージ

Knowledge Baseの構成は、下記のよう非常にシンプルです(下記は最低限の構成で、もちろん色々なリソースと連携できます)。

Knowledge Baseの構成図

Knowledge Baseのシンプルな構成図
  1. S3にドキュメントを配置
  2. Knowledge Baseが

    ・ドキュメントを分割(Chunking)
    ・Embeddingを生成
    ・S3 Vectorsにベクトルを保存
  3. ユーザーの質問に対して

    ・類似検索
    ・LLMによる回答生成

ベクトルDBのスキーマ設計などを意識する必要がなく、RAG構築の初期工程をほとんどAWS側に任せられるのが特徴です。

実際に作ってみる

1. S3バケットを作成する

まずはKnowledge BaseのデータソースとなるS3バケットを作成します。なお、S3は2つ作成する必要があります。

  • データソース用バケット:実際にRAGで取得したいデータを配置するバケットです
  • マルチモーダルストレージの保存用バケット:ドキュメントから抽出された画像やデータソースから抽出された画像などが格納されます。ユーザークエリに基づいて取得され、応答の生成時に引用されます。なお、テキストのみを扱う場合でも、Knowledge Base作成時点では指定が必要です。

これはGeneral purpose buckets(汎用バケット)で、デフォルト値で問題ありません。
今回のバケット名は、下記としました。

  • knowledge-base-data-source-20260123(データソース用)
  • knowledge-base-multimodal-data-source-20260123 (マルチモーダル用)

2. Knowledge Baseを作成する

次に、Amazon Bedrockの管理画面からKnowledge Baseを作成します。Amazon Bedrock > ナレッジベース > 作成 > ベクトルストアを含むナレッジベースと進みます。

Knowledge Baseの構成図

Knowledge Baseの作成開始方法

主な設定項目は以下の通りです。

※ 設定項目は、2026年1月23日のものです。AWSのバージョンアップ等により、設定項目、設定値が変更となる場合があります。

ステップ1: ナレッジベースの詳細を指定
項目名 設定値 備考
ナレッジベース名 デフォルト
ナレッジ デフォルト
IAM 許可 新しいサービスロールを作成して使用
データソースを選択 Amazon S3
タグ なし
ログ配信 なし
ステップ2: データソースを設定
項目名 設定値 備考
データソース名 任意 今回はS3バケットと同じ名前とした
データソースの場所 この AWS アカウント
S3のURI 「1. S3バケットを作成する」で作成したデータソース用のバケットを選択
解析戦略 パーサーとしての基盤モデル
解析用の基盤モデルを選択 Nova 2 Lite v1 GLOBAL Amazon Nova 2 Lite
パーサー向けの指示 デフォルト
チャンキング戦略 固定サイズのチャンキング
最大トークン 3,072 使用予定のエンベディングモデルの最大値とした ※
チャンク間のオーバーラップの割合 10 テストなので、最低限とした
変換関数 なし
詳細設定 デフォルト

※ Amazon Nova Multimodal Embeddingsは実際には8,172 tokens入力できると記載があるが、ここでは3,072までしか設定できなかった。

ステップ3: データストレージと処理を設定する
項目名 設定値 備考
埋め込みモデル Amazon Nova Multimodal Embeddings 1.0 オンデマンドを選択
ベクトルデータベース 新しいベクトルストアをクイック作成
ベクトルストア Amazon S3 Vectors
マルチモーダルストレージの保存先 「1. S3バケットを作成する」で作成したマルチモーダル用のバケットを選択
ステップ4: 確認して作成

今までの設定値が間違ってないか確認しましょう。参考までに、弊社で作成したときの設定値はこちらになります。

ナレッジベースの設定値

ナレッジベースの設定値(弊社作成時の例)

これで「ナレッジベースを作成」をすると、数分でナレッジベースが完成します。

デモ:実際にデータを入れて質問してみる

ここから、実際にRAGとして機能するかを確認します。

1. S3にドキュメントを配置する

Knowledge Base作成後、データソース用S3バケットにドキュメントを配置します。
今回は検証用として、以下のような簡単なデータを用意しました。

  • 社内ポータルのドキュメント(マークダウン)

約70ファイルです。カテゴリごとにフォルダ分け等されていますが、気にせずそのままS3にアップロードしました。

2. データを同期(インデックス作成)

S3にデータを配置した後、Knowledge BaseのSync(同期)を実行する必要があります。下記画像の同期ボタンを押して下さい。
なお、S3にドキュメントを追加しただけでは利用できないので、注意が必要です。

データソースの同期方法

データソースの同期方法

数分待つとステータスがAvailable(利用可能)に変更されます。ここで同期ボタンを押すと裏では、ドキュメントの分割やEmbedding(埋め込み)生成、ベクトル保存までが自動で行われます。

3. 質問してみる

準備が整ったら、Knowledge Baseに対して質問を投げてみます。
ナレッジベースの画面右上の、「ナレッジベースをテスト」ボタンからテストできます。
「取得と応答生成」で好きなモデルを選んだら準備完了です。例えば、「引っ越しするのですが申請は必要ですか?」と質問してみましょう。

ナレッジベースのテスト

ナレッジベースのテスト

このように、先ほど格納したドキュメントに基づいて回答してくれます。また、どのドキュメントを根拠に回答しているかも確認できるため、RAGとしての要件が満たされています。

メリット・デメリット

実際に Amazon Bedrock Knowledge Base と S3 Vectors を使ってみて感じた点を、メリット・デメリットに分けて整理します。

メリット

  1. RAG構築の初期コストが非常に低い

    Embedding(埋め込み)生成、ベクトル保存、検索までが一体化されており、RAG構築時に発生しがちな初期設計・実装を大幅に省略できます。
    PoCや検証フェーズにおいて、「まず動くものを作る」までのスピードは非常に速いと感じました。
  2. データの追加が容易

    先ほどのデモで見たように、70を超えるドキュメントも、気にせず追加して同期を取ればすぐに使えるようになります。
    データ揃っているけど数が多くなかなか踏み出せないというときに最適です。
  3. ベクトルデータベースの運用を意識しなくてよい

    S3 Vectorsを利用することで、ベクトルDBのスキーマ設計やスケーリング、運用監視を考える必要がありません。
    RAGに不慣れなチームでも、インフラ運用の負担を抑えた状態で検証を始められる点は大きなメリットです。
  4. AWSマネージドで完結する安心感

    データ保管から検索、生成までがAWS内で完結するため、セキュリティやガバナンス面での説明がしやすい構成です。
    構成もしっかり決まっているので、属人化の防止にもなります。

デメリット

  1. 再ランキングや高度なRAG構成には不向き

    (S3 Verctorsを使用した場合ですが、)ハイブリッド検索(ベクトル検索やテキスト検索を組み合わせる手法)や、独自ロジックを組み込んだ再ランキングなどは想定されていません。
    単純なベクトル検索では物足りなくなった場合には、自前での実装や別構成を検討する必要があります。
  2. 高度な検索を組み込もうとするとコストがかかる

    ハイブリッド検索は、Amazon RDS、Amazon OpenSearch Serverlessなどのサービスをデータソースとして利用した場合のみ利用できます。
    これらのリソースは、S3 Vectorsよりもコストが掛かってしまうのが現実です。

まとめ

Amazon Bedrock Knowledge Base と S3 Vectors を使うことで、RAGの「最初の一歩」は驚くほど簡単に実現できます。

  • まずはRAGを触ってみたい
  • PoCを短期間で作りたい
  • 社内ユース向けに、すぐ動くRAGを用意したい

といった用途であれば、非常に有力な選択肢だと感じました。
特に、「RAGを本格的に作る前に全体像を把握したい」「社内説明やデモ用に、短期間で動くものを用意したい」といったケースでは、Knowledge Base と S3 Vectors の組み合わせは非常に相性が良い構成です。

一方で、本格的な精度改善や運用を行う場合は、自前実装や構成の見直しが必要になる点は留意が必要です。ナレッジベースの枠組みの中で解決できるケース(前処理関数の追加、ベクトルデータベースの変更など)もありますが、それを超えた精度改善を目指すと、構成が一気に複雑化する可能性があります。
まずはAWSマネージドな構成でRAGの感触を掴み、必要に応じて自前構成へスケールさせていく、という使い方が現実的な選択肢になりそうです。

生成AI活用支援サービスのご紹介

Tech Funでは、お客様のフェーズに合わせ、生成AI活用に向けた支援を3つのパックでご提供しています。

  1. 無料診断パック:業務・プロセスの現状を無料で診断し、生成AI活用の可能性をレポートします。
  2. 検証(PoC)パック:診断で有効性が確認された業務を対象に、プロトタイプ構築を支援します。
  3. コンサルティングサービス:生成AI導入戦略の策定から運用体制構築までを包括的に支援します。

生成AIに限らず、Web・業務システム開発やインフラ設計など、技術領域を問わずご相談を承っています。「何から始めれば良いか分からない」という段階でも構いませんので、ぜひお気軽にお問い合わせください。

執筆・編集

Tech Fun Magazine R&Dチーム
Tech Funの生成AI研究に携わるエンジニアが、最新のAIモデル動向やプロンプト設計、実業務への応用手法など、生成AIに特化した知見を執筆・編集しています。
モデル評価や業務シナリオに応じたAI活用設計など、日々のR&D活動で得られる実践的なノウハウをわかりやすく紹介します。

ARTICLE
生成AI関連記事一覧

生成AI関連

Amazon Bedrock Knowledge Base …

生成AI関連

NotebookLMで議事録活用【活用編】

生成AI関連

生成AIシステムへのガードレール導入のポイント

生成AI関連

NotebookLMで議事録活用【生成編】

生成AI関連

生成AIの精度を評価するための指標入門(2クラス分類編)

生成AI関連

NotebookLMで議事録活用【検索編】

生成AI関連

類似検索を実現するための「エンベディング」のしくみ

生成AI関連

CS業務効率化を始める最小ステップ

生成AI関連

生成AIのテキスト生成のしくみとパラメータ

記事一覧を見る