-- Views
September 10, 26
スライド概要
【概要】
生成 AI の価値は「どのモデルを使うか」から「自社のデータをどう連携させるか」の時代へとシフトしています。今回は、AWS のフルマネージドサービスを組み合わせて、実践的な RAG チャットボットをゼロから構築する過程をご紹介します。
※今回ご紹介した内容は、2026年9月時点での情報です。
本勉強会の動画は下記からご視聴いただけます!
https://youtu.be/6r_rzgI3DY0
KDDIアイレットの現場のノウハウが集まる場所。 AWS や Google Cloud、OCI をもっと身近に。 インフラから開発、AIまで。 現場のリアルな技術 Tips を公開中! 【 YouTube で公開している勉強会資料です。気になる内容は YouTube で是非ご覧ください!】 📺 https://www.youtube.com/@iret-channel
第 196 回 雲勉 AWSで始める RAGチャットボット構築 宇山 卓見 KDDIアイレット株式会社
Profile う や ま た く み 宇山 卓見 ★ご質問は YouTubeのコメント欄で 受け付けております。後日回答させていただきます! ★チャンネル登録よろしくお願いします! KDDIアイレット株式会社 エンタープライズクラウド事業部 ● 開発第二セクション所属 ● WEB制作会社でCMSを使ったサイト構築を 経験しKDDIアイレットにジョイン ● 現在はアプリケーションエンジニアとして、主 にバックエンドAPIの開発を担当 ● 来るAI時代に備えて筋肉で迎え撃つべく 筋トレ中
アジェンダ 01 Introduction 02 RAGとは? 03 システム概要 04 実装の詳細 05 デモと拡張性 06 まとめ
Introduction
背景 妻からの相談 自分で作りたい CSとして働く妻に業務で使える RAGを構築できないか 相談された 聴いただけではもったいないと 思い、自分で動くRAGを 構築してみたいと思った AWS Summit AWS Summit Japan 2025に 現地参加し、RAG関連の セッションに参加した 5
本セッションのポイント • AWSのフルマネージドサービスを活用した実践的な RAGチャット ボット構築の全体像を紹介 • 概念設計から AWS CDKを用いた IaCによるデプロイまでの完全ガイド • 図で示したデータソース、処理・埋め込み、検索・取得の流れを解説 • 開発者・エンジニア向けのアーキテクチャ設計のポイントに焦点 6
RAGとは?
「活用のための土台」が問われるフェーズへ AIの価値は「どのモデルを使うか」から「社内の非構造化データをどう連携させるか」 にシフトしている。 モデルの時代 データの時代 パラダイムシフト 一般的な知識のみ 企業独自の知見を活かす AIへ 8
標準LLMの限界と RAGの解決策 評価軸 標準LLM RAG (Retrieval-Augmented Generation) 知識の源泉 事前学習データのみ 外部のベクトル検索エンジン 情報の鮮度 学習のカットオフ日で停止 インデックス更新で即時反映 ハルシネーション 高リスク・もっともらしい嘘 低リスク・参考文書に基づく事実 パーソナライズ 一般的な回答 ユーザー属性を反映した最適化 9
システム概要
生命保険のパーソナライズ提案 生命保険は「複雑な商品規約(PDF)」と「個人の 状況(年齢・家族)」の掛け合わせが必須。RAG の真価が問われる領域。 ドキュメントコンテキスト (S3 / PDF) ユーザーコンテキスト (DynamoDB) Bedrock AI プランA: 死亡保障 3000万 プランB: 医療保障重視 ... 35歳 会社員 妻・子ども 2人 年収600万円 11
RAG実装アプローチの選択 Amazon Bedrock ナレッジベース(マネージド型) メリット:簡単、迅速な実装、フルマネージド なぜ選ばなかったか? RAGの内部構造(ベクトル化、検索、生成の流れ)を理解し、スキ ル向上を優先する 12
システムアーキテクチャ全体図( 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
なぜこのマネージドサービスか? ワイプ枠 Bedrock OpenSearch LLM Hub Vector Engine ClaudeやTitanを統一APIで 利用。インフラ管理不要。 ミリ秒単位のkNN(k近傍法)ネ イティブ検索をサポート。 DynamoDB Lambda and S3 State Context Event-driven Core ユーザー属性の高速取得。 少アクセスならほぼ無料。 必要な時だけ起動するゼロ・ アイドルコスト。PoCに最適。 14
実装の詳細① インデックス構築
インデックス構築フロー S3に格納された非構造化データ( PDF)をPyPDF2でテキスト化し、 Amazon Titanで1024次元のベクトルデータに変換して知識ベースを構築。 [Chunking] [S3: PDF] [Lambda: PyPDF2 Text Extraction] [Bedrock: Titan Embeddings (1024d)] [OpenSearch: kNN Index] 16
文脈の断絶を防ぐ(チャンク分割) 1. LLMのコンテキ ストウィンドウの 最適化 2. 検索精度の向 上 3. オーバーラップ により意味の喪 失を防ぐ AIの文書検索では、長い文章を適切な長さに分割して登録します。この分割された塊をチャンクと呼 びます。分割時に前後の文章を少し重複させるのがオーバーラップです。これにより文脈が途切れる のを防ぎます。 オーバーラップなし 重要な条件文が分割 されて意味を失う AIの文書検索では、長い 文章を適切な長さに分割し て登録します。この分 割された塊をチャンクと呼 びます。分割時に前後の 文章を少し重複させる オーバーラップあり のがオーバーラップです。 これにより文脈が途切れる のを防ぎます。 文脈を保持し、 検索精度を向上 AIの文書検索では、長い文章を 適切な長さに分割して登録しま す。この分割された塊を この分割された塊を チャンクと 呼びます。分割時に前後の文章 を少し重複させるのが 文章を少し重複させるのが オー バーラップです。これにより文脈 chunk_size = 500 が途切れるのを防ぎます。 overlap = 100 17
実装の詳細② RAG検索・生成
RAG検索・生成フロー ユーザーの質問にプロフィール属性を付加してベクトル化し、 OpenSearchから 上位3件の関連ドキュメントを取得。 同時にDynamoDBからユーザー属性を引き出し、生成 AIへと渡す。 [Claude Sonnet 5] [User Query] [DynamoDB: Fetch User Profile] [Bedrock: Embed Query] [OpenSearch: Top 3 kNN Search] 19
ベクトル空間における「意味の類似性」の可視化 “dimension”: 1024 // Titan Embeddingsの次元数 距離の計算 (kNN) 質問 “k”: 3 // k近傍法による上位 3件の取得 “normalize”: True // ベクトルを長さ 1に正規化 テキストを 1024次元のベクトルに変換し、 多次元空間内でユーザーの質問ベクトルと 最も距離が近いドキュメント (kNN=3)を高速に抽出します。 20
プロンプト構築の裏側 [System Role] 生命保険に精通したアドバイザー ... [Dynamo Context] 35歳, 子ども2人, 年収600万円... [OpenSearch Docs] プランA: 死亡保障 3,000万円... [User Query] 私に最適なプランは? [Claude Sonnet 5 Output] 21
実装の詳細③ インフラを IaCで構築
インフラのコード定義 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
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
デモと拡張性
スモールスタートから本番環境への拡張 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
さらに洗練された 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
まとめ
まとめ Insight 1: LLMの限界突破 Insight 3: コードによる支配 RAGは単なる検索ツールではなく、ハルシ ネーションを抑え込み、自社の文脈(データ) でAIを制御するための必須アーキテクチャで ある。 AWS CDKを用いることで、AIモデル、データ パイプライン、インフラストラクチャの全てを 「設計図」としてコードで管理・再現できる。 Insight 2: サーバーレスの恩恵 AWSマネージドサービスを組み合わせること で、インフラ運用負荷を極限まで下げつつ、高 度なAIシステムを構築できる。 生成AIはモデル選びの時代から 「自社データをどう組み立て、 どう流すか」の エンジニアリングの時代へ。 29
iret.media RAG ● AWSで始めるRAGチャットボット構築① 〜RAGとは?AWS Summit参加の学びと狙い〜 ● AWSで始めるRAGチャットボット構築② 〜構成設計と各AWSサービスの役割〜 ● AWSで始めるRAGチャットボット構築③ 〜インデックス作成とPDF埋め込み処理の実装〜 ● AWSで始めるRAGチャットボット構築④ 〜RAG検索処理とLLM応答生成の実装〜 ● AWSで始めるRAGチャットボット構築⑤ 〜CDKによるインフラ定義〜 ● AWSで始めるRAGチャットボット構築⑥ 〜デプロイと動作確認と振り返り〜 30