---
title: 第196回 雲勉 AWS で始める RAG チャットボット構築
tags:  #aws #amazonbedrock #rag #チャットボット #生成ai #llm #aiチャットボット #aws入門 #llm開発  
author: [雲勉.iret](https://docswell.com/user/kumoben_iret)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9J29X5NGER.jpg?width=480
description: 【概要】 生成 AI の価値は「どのモデルを使うか」から「自社のデータをどう連携させるか」の時代へとシフトしています。今回は、AWS のフルマネージドサービスを組み合わせて、実践的な RAG チャットボットをゼロから構築する過程をご紹介します。  ※今回ご紹介した内容は、2026年9月時点での情報です。  本勉強会の動画は下記からご視聴いただけます！ https://youtu.be/6r_rzgI3DY0
published: September 10, 26
canonical: https://docswell.com/s/kumoben_iret/KX23MR-2026-09-10-095036
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9J29X5NGER.jpg)

第 196 回 雲勉
AWSで始める
RAGチャットボット構築
宇山 卓見
KDDIアイレット株式会社


# Page. 2

![Page Image](https://bcdn.docswell.com/page/DEY48KPGJM.jpg)

Profile
う や ま
た く み
宇山 卓見
★ご質問は YouTubeのコメント欄で
受け付けております。後日回答させていただきます！
★チャンネル登録よろしくお願いします！
KDDIアイレット株式会社
エンタープライズクラウド事業部
● 開発第二セクション所属
● WEB制作会社でCMSを使ったサイト構築を
経験しKDDIアイレットにジョイン
● 現在はアプリケーションエンジニアとして、主
にバックエンドAPIの開発を担当
● 来るAI時代に備えて筋肉で迎え撃つべく
筋トレ中


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJNYQR5878.jpg)

アジェンダ
01 Introduction
02 RAGとは？
03 システム概要
04 実装の詳細
05 デモと拡張性
06 まとめ


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YE9PDMYXJ3.jpg)

Introduction


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GE8D3L69ED.jpg)

背景
妻からの相談
自分で作りたい
CSとして働く妻に業務で使える
RAGを構築できないか
相談された
聴いただけではもったいないと
思い、自分で動くRAGを
構築してみたいと思った
AWS Summit
AWS Summit Japan 2025に
現地参加し、RAG関連の
セッションに参加した
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LELMVL9M7R.jpg)

本セッションのポイント
• AWSのフルマネージドサービスを活用した実践的な RAGチャット
ボット構築の全体像を紹介
• 概念設計から AWS CDKを用いた IaCによるデプロイまでの完全ガイド
• 図で示したデータソース、処理・埋め込み、検索・取得の流れを解説
• 開発者・エンジニア向けのアーキテクチャ設計のポイントに焦点
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JMYGMZ6JW.jpg)

RAGとは？


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PJR9ZV6N79.jpg)

「活用のための土台」が問われるフェーズへ
AIの価値は「どのモデルを使うか」から「社内の非構造化データをどう連携させるか」
にシフトしている。
モデルの時代
データの時代
パラダイムシフト
一般的な知識のみ
企業独自の知見を活かす AIへ
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/PEXQ9ZM8JX.jpg)

標準LLMの限界と RAGの解決策
評価軸
標準LLM
RAG
(Retrieval-Augmented Generation)
知識の源泉
事前学習データのみ
外部のベクトル検索エンジン
情報の鮮度
学習のカットオフ日で停止
インデックス更新で即時反映
ハルシネーション
高リスク・もっともらしい嘘
低リスク・参考文書に基づく事実
パーソナライズ
一般的な回答
ユーザー属性を反映した最適化
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/3EK9P8GLED.jpg)

システム概要


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L73WX2N675.jpg)

生命保険のパーソナライズ提案
生命保険は「複雑な商品規約（PDF）」と「個人の
状況（年齢・家族）」の掛け合わせが必須。RAG
の真価が問われる領域。
ドキュメントコンテキスト
（S3 / PDF）
ユーザーコンテキスト
（DynamoDB）
Bedrock AI
プランA: 死亡保障 3000万
プランB: 医療保障重視 ...
35歳 会社員
妻・子ども 2人
年収600万円
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/87DK2ZWMJG.jpg)

RAG実装アプローチの選択
Amazon Bedrock ナレッジベース（マネージド型）
メリット：簡単、迅速な実装、フルマネージド
なぜ選ばなかったか？
RAGの内部構造（ベクトル化、検索、生成の流れ）を理解し、スキ
ル向上を優先する
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJPK1D9QE8.jpg)

システムアーキテクチャ全体図（ The Blueprint）
インデックス構築とRAG検索を完全に分離したイベント駆動型サーバーレス構成
Ingestion
知識の取り込み（非同期）
S3
PDFs
Lambda
indexing_handler
Bedrock
Titan Embeddings
OpenSearch
kNN Index
Retrieval
検索と生成（リアルタイム）
DynamoDB
User Context
Session Data
User
API Gateway
Lambda
rag_handler
Bedrock
Claude Sonnet 5
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/2EVVY1MPEQ.jpg)

なぜこのマネージドサービスか？
ワイプ枠
Bedrock
OpenSearch
LLM Hub
Vector Engine
ClaudeやTitanを統一APIで
利用。インフラ管理不要。
ミリ秒単位のkNN（k近傍法）ネ
イティブ検索をサポート。
DynamoDB
Lambda and S3
State Context
Event-driven Core
ユーザー属性の高速取得。
少アクセスならほぼ無料。
必要な時だけ起動するゼロ・
アイドルコスト。PoCに最適。
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/57GL92GQEL.jpg)

実装の詳細① インデックス構築


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EQYWPXWJP.jpg)

インデックス構築フロー
S3に格納された非構造化データ（ PDF）をPyPDF2でテキスト化し、 Amazon
Titanで1024次元のベクトルデータに変換して知識ベースを構築。
[Chunking]
[S3: PDF]
[Lambda:
PyPDF2
Text Extraction]
[Bedrock:
Titan Embeddings
(1024d)]
[OpenSearch:
kNN Index]
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/KJ4WKY6171.jpg)

文脈の断絶を防ぐ（チャンク分割）
1. LLMのコンテキ
ストウィンドウの
最適化
2. 検索精度の向
上
3. オーバーラップ
により意味の喪
失を防ぐ
AIの文書検索では、長い文章を適切な長さに分割して登録します。この分割された塊をチャンクと呼
びます。分割時に前後の文章を少し重複させるのがオーバーラップです。これにより文脈が途切れる
のを防ぎます。
オーバーラップなし
重要な条件文が分割
されて意味を失う
AIの文書検索では、長い
文章を適切な長さに分割し
て登録します。この分
割された塊をチャンクと呼
びます。分割時に前後の
文章を少し重複させる
オーバーラップあり
のがオーバーラップです。
これにより文脈が途切れる
のを防ぎます。
文脈を保持し、
検索精度を向上
AIの文書検索では、長い文章を
適切な長さに分割して登録しま
す。この分割された塊を
この分割された塊を チャンクと
呼びます。分割時に前後の文章
を少し重複させるのが
文章を少し重複させるのが オー
バーラップです。これにより文脈
chunk_size = 500
が途切れるのを防ぎます。
overlap = 100
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE1YX6V57G.jpg)

実装の詳細② RAG検索・生成


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GEWGNWLWJ2.jpg)

RAG検索・生成フロー
ユーザーの質問にプロフィール属性を付加してベクトル化し、 OpenSearchから
上位3件の関連ドキュメントを取得。
同時にDynamoDBからユーザー属性を引き出し、生成 AIへと渡す。
[Claude
Sonnet 5]
[User Query]
[DynamoDB:
Fetch User Profile]
[Bedrock:
Embed Query]
[OpenSearch:
Top 3 kNN Search]
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/47ZL35M2J3.jpg)

ベクトル空間における「意味の類似性」の可視化
“dimension”: 1024
// Titan Embeddingsの次元数
距離の計算
（kNN）
質問
“k”: 3
// k近傍法による上位 3件の取得
“normalize”: True
// ベクトルを長さ 1に正規化
テキストを 1024次元のベクトルに変換し、
多次元空間内でユーザーの質問ベクトルと
最も距離が近いドキュメント
（kNN=3）を高速に抽出します。
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/YJ6WX956JV.jpg)

プロンプト構築の裏側
[System Role] 生命保険に精通したアドバイザー ...
[Dynamo Context] 35歳, 子ども2人, 年収600万円...
[OpenSearch Docs] プランA: 死亡保障 3,000万円...
[User Query] 私に最適なプランは？
[Claude Sonnet 5 Output]
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJ5MXNY5J4.jpg)

実装の詳細③ インフラを IaCで構築


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9E29X5GG7R.jpg)

インフラのコード定義
rag_cdk_stack.py
Amazon S3
Amazon DynamoDB
IAMロールの最小権限設定（ Least
Privilege）から、 API Gatewayのエンドポイ
ントの作成まで、 PythonによるCDKで全リ
ソースを再現可能に構築。 Lambda Layer
（PyPDF, requests）も一括管理。
Amazon API Gateway Amazon OpenSearch
Automated CloudFormation Deployment
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/D7Y48KVGEM.jpg)

Custom Resourceによる自動初期化
[CDK Deploy]
ハマりポイント
インデックスが存在しない状態で S3
からデータ投入するとエラーで失敗
する。
（index_not_found_exception）
[OpenSearch Domain Created]
[Custom Resource Triggered]
解決策
CDKのCustom Resourceを使用
し、デプロイ直後に専用 Lambdaを
自動実行。
[Lambda: create_index_lambda]
[Index Ready（kNN Enabled）]
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VENYQRM8J8.jpg)

デモと拡張性


# Page. 26

![Page Image](https://bcdn.docswell.com/page/Y79PDMNXE3.jpg)

スモールスタートから本番環境への拡張
PoC / 検証環境
本番 / エンタープライズ環境
● OpenSearch: t3.small.search
（シングルノード）
● Serverless（Lambda/DynamoDB/API
Gateway）: オンデマンド課金（ほぼ無料
枠内）
● OpenSearch: r7g.large.search × 3（マ
ルチAZ） + 専用マスターノード:
m7g.large.search × 3
● Lambda: Provisioned Concurrency設
定（コールドスタート排除）
月額概算 : 約 $35〜45 / 月
（圧倒的低コストで検証開始）
月額概算 : 約 $600〜750 / 月〜
CDKのパラメータを数行変更するだけで、月額約 40ドルの環境から
エンタープライズグレードの高可用性構成へシームレスに移行可能
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G78D3LK97D.jpg)

さらに洗練された RAGシステムに向けて
1
検索精度の極め（ Search Quality）
●
●
Core RAG
2
Architecture
ユーザー体験の向上（ UX）
●
●
3
Hybrid Search（ベクトル検索 + キーワード検索）の導入
リランキングモデルによる検索結果の再評価
Claude Streaming APIによるストリーミング応答（文字の遂次表示）
DynamoDBを用いた会話履歴の保持（マルチターン対話）
対象データの拡張（ Data Sources）
●
●
Word / Excel対応
OCR（Amazon Textract）連携による画像PDF対応
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/L7LMVLZMJR.jpg)

まとめ


# Page. 29

![Page Image](https://bcdn.docswell.com/page/4EMYGMV6EW.jpg)

まとめ
Insight 1: LLMの限界突破
Insight 3: コードによる支配
RAGは単なる検索ツールではなく、ハルシ
ネーションを抑え込み、自社の文脈（データ）
でAIを制御するための必須アーキテクチャで
ある。
AWS CDKを用いることで、AIモデル、データ
パイプライン、インフラストラクチャの全てを
「設計図」としてコードで管理・再現できる。
Insight 2: サーバーレスの恩恵
AWSマネージドサービスを組み合わせること
で、インフラ運用負荷を極限まで下げつつ、高
度なAIシステムを構築できる。
生成AIはモデル選びの時代から
「自社データをどう組み立て、
どう流すか」の
エンジニアリングの時代へ。
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/PER9ZV2NJ9.jpg)

iret.media RAG
●
AWSで始めるRAGチャットボット構築① 〜RAGとは？AWS Summit参加の学びと狙い〜
●
AWSで始めるRAGチャットボット構築② 〜構成設計と各AWSサービスの役割〜
●
AWSで始めるRAGチャットボット構築③ 〜インデックス作成とPDF埋め込み処理の実装〜
●
AWSで始めるRAGチャットボット構築④ 〜RAG検索処理とLLM応答生成の実装〜
●
AWSで始めるRAGチャットボット構築⑤ 〜CDKによるインフラ定義〜
●
AWSで始めるRAGチャットボット構築⑥ 〜デプロイと動作確認と振り返り〜
30


