---
title: "AWS Bedrock KnowledgeBase RAG サンプル: 4回 AWS 基盤構築(RAG)"
description: "AWS Bedrock KnowledgeBase RAG サンプル: 4回 AWS 基盤構築(RAG)"
image: https://www.spin-dd.com/hubfs/AdobeStock_1753600831.jpeg
---

[![SPIN D&D](https://www.spin-dd.com/hubfs/raw_assets/public/spindd/images/logo_white.png)](https://www.spin-dd.com/home)

[企業情報](https://www.spin-dd.com/company) [事業紹介](https://www.spin-dd.com/service) [お知らせ](https://www.spin-dd.com/news) [採用情報](https://www.wantedly.com/companies/spin-dd) [無料相談](https://www.spin-dd.com/contact)

⋮ ✕

[トップ](https://www.spin-dd.com/) › [ニュース](https://www.spin-dd.com/news) › 詳細ページ

NEWS

# ニュース

2026.04.06 技術ブログ

## AWS Bedrock KnowledgeBase RAG サンプル: 4回 AWS 基盤構築(RAG)

![](https://www.spin-dd.com/hubfs/AdobeStock_1753600831.jpeg)

AWS 基盤構築(RAG)

 

バックエンドリソースができたので、実際のリソースを作成します。   
ここでは、Web API で問い合わせする前にコマンドで RAG の確認ができるまでのリソースをつくります。

基盤モデル(LLM)のリクエスト

本サンプルでは以下の LLM を使っています:

・[Amazon Titan Embeddings G1 - Text](https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/titan-embedding-models.html)  
・[Anthropic Claude 3 Sonnet](https://platform.claude.com/docs/ja/about-claude/models/overview)

これらの LLM を Bedrock から使えるようにするために、基盤モデルの利用をリクエストしておく必要があります。

 

バックエンドの設定

前のセクションで作成したリソースをバックエンドのストアとステート管理で使うように terraform ステートメントに指定します。  
rag.tf:

 

`terraform {`  
`  backend "s3" {`  
`    # backend は variable評価前に実行されるので TF_VAR_ 環境変数を参照することになる`  
`    region         = var.admin_region`  
`    bucket         = "${var.service}-admin-state"`  
`    key            = "terraform/${var.env}/terraform.tfstate"`  
`    dynamodb_table = "${var.service}-admin-statedb-${var.env}"`  
`  }`  
`}`

 

terraform ステートメントの実行時には、自身で定義した変数は使えないので、パラメトリックに定義するには環境変数を使います。 対応する変数に TF\_VAR\_ でプレフィックスした環境変数で指定可能です。 variables.tf には default が定義されているので環境変数がなければ、それに従ってバックエンドのリソースが指定されます。

 

OpenTofu の実行結果出力

 

rag/outputs.tf に作成したリソース情報を出力するように定義しています。  
次のコマンドを実行すると、JSON に出力されます。:

`docker compose run --rm tool tofu -chdir=tofu/rag output -json > .secrets/rag.json`

 

aws-cli, boto3 を使ったスクリプトやプログラムにこの JSON を渡すことで、その都度リソースの名前や ARN を調べることなくコマンド実行可能になります。

`VPC`

本プロジェクトでは RAG のバックエンドデータべースとして Aurora RDS Serverless を使います。 ネットワークの設定などが必要なので、まず VPC を作ります。

 

`docker compose run --rm tool tofu -chdir=tofu/rag init docker compose run --rm tool tofu -chdir=tofu/rag plan -out rag.plan  -target=module.vpc docker compose run --rm tool tofu -chdir=tofu/rag apply rag.plan`

 

VPC の概要図:

![a37a20_a82d5ee4593f426b90ee2ca429a81716~mv2](https://www.spin-dd.com/hs-fs/hubfs/a37a20_a82d5ee4593f426b90ee2ca429a81716~mv2.png?width=961&height=459&name=a37a20_a82d5ee4593f426b90ee2ca429a81716~mv2.png)

Aurora RDS

 

次に Aurora RDS PostgreSQL を作成し、VPC のネットワークで動作するように構成します。

 

`docker compose run --rm tool tofu -chdir=tofu/rag plan -out rag.plan  -target=module.aurora`  
`docker compose run --rm tool tofu -chdir=tofu/rag apply rag.plan`

 

Aurora の概要図:  
![a37a20_1da1523c54f3408db40b1f7b69b4a5dc~mv2](https://www.spin-dd.com/hs-fs/hubfs/a37a20_1da1523c54f3408db40b1f7b69b4a5dc~mv2.png?width=571&height=630&name=a37a20_1da1523c54f3408db40b1f7b69b4a5dc~mv2.png)

 

ユーザー、スキーマ、テーブルなどの作成 (bin/aurora.py)

 

bin/aurora.py には click を使った Python スクリプトを定義してあります。 Aurora に対して boto3 を通じて psql と同様なステートメントを実行できるようにしてあります。 aurora.py スクリプトは OpenTofu が出力した AWS リソース情報の JSON ファイルを読み取って処理できるようにしてあります。

いくつかの共通ルーチンは bedrag パッケージに実装していますので、これを import して使います。

 

pgvector を有効にする

`docker compose run --rm tool bin/aurora.py -to .secrets/rag.json setup-vector`

 

アクセスユーザーの登録

`docker compose run --rm tool bin/aurora.py -to .secrets/rag.json setup-vector`

 

このユーザー情報は DATABASE\_USER 環境変数を元に作成されます。 なお、この情報は Aurora RDS リソース作成の際、AWS シークレットマネージャにも登録されています。

 

RAG テーブルの登録

 

bedrag パッケージに SqlAlchemy を使って定義したモデル(Knowledge クラス)からテーブル生成を行います。

 

`docker compose run --rm tool bin/aurora.py -to .secrets/rag.json create-table`

 

また、作成したベクトルフィールドに対して検索効率を高めるためにインデックスを作成します:

 

`docker compose run --rm tool bin/aurora.py -to .secrets/rag.json create-vector-index`

 

RAG テーブル,スキーマに対してアクセスユーザーに許可を与える

`docker compose run --rm tool bin/aurora.py to .secrets/rag.json grant-schema`  
`docker compose run --rm tool bin/aurora.py to .secrets/rag.json grant-table`

 

Bedrock Knowledge base  
Bedrock Knowledge base が利用するバックエンドデータベースが作成されたので、Knowledge base 本体を作成します。

`docker compose run --rm tool tofu -chdir=tofu/rag plan -out rag.plan  -target=module.bedrock`  
`docker compose run --rm tool tofu -chdir=tofu/rag apply rag.plan`

 

ベクトル化と生成の概要図:

![a37a20_fbad547eff9a414ba827dca8d96d1693~mv2](https://www.spin-dd.com/hs-fs/hubfs/a37a20_fbad547eff9a414ba827dca8d96d1693~mv2.png?width=951&height=622&name=a37a20_fbad547eff9a414ba827dca8d96d1693~mv2.png)

[← 前の記事 AWS Bedrock KnowledgeBase RAG ...](https://www.spin-dd.com/news/202403) [次の記事 → AWS Bedrock KnowledgeBase RAG ...](https://www.spin-dd.com/news/202405)

[一覧へ戻る](https://www.spin-dd.com/news)

[![SPIN D&D](https://www.spin-dd.com/hubfs/raw_assets/public/spindd/images/logo_white.png)](https://www.spin-dd.com/)

東京都文京区本郷1-19-6  
太平ビル本館2階  
[03-5802-6170](tel:0358026170)

- [企業情報](https://www.spin-dd.com/company)
- [お知らせ](https://www.spin-dd.com/news)

- [システム構築支援](https://www.spin-dd.com/service)
- [Webマーケティング](https://www.spin-dd.com/service-2)
- [建物管理SaaS](https://www.spin-dd.com/builsys)

- [採用](https://www.wantedly.com/companies/spin-dd)
- [お問い合わせ](https://www.spin-dd.com/contact)

©  SPIN D&D

[プライバシーポリシー](https://www.spin-dd.com/privacy)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "奈良 英樹",
    "url" : "https://www.spin-dd.com/news/author/奈良-英樹"
  },
  "dateModified" : "2026-04-06T08:04:56.109Z",
  "datePublished" : "2026-04-06T07:45:04.000Z",
  "headline" : "AWS Bedrock KnowledgeBase RAG サンプル: 4回 AWS 基盤構築(RAG)",
  "image" : [ "https://www.spin-dd.com/hubfs/AdobeStock_1753600831.jpeg" ],
  "mainEntityOfPage" : {
    "@id" : "https://www.spin-dd.com/news/202404",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject"
    }
  }
}
```