aws-genai-llm-chatbot を採用する前に読む: CDK で組むマルチ LLM 構成の実態
A modular and comprehensive solution to deploy a Multi-LLM and Multi-RAG powered chatbot (Amazon Bedrock, Anthropic, HuggingFace, OpenAI, Meta, AI21, Cohere, Mistral) using AWS CDK on AWS
ひと目でわかる
- これは何?
- AWS のサンプル実装として公開されているマルチ LLM・マルチ RAG チャットボットの設計と導入手順を、CDK スタックと設定キーの粒度で確認する。判断材料になるのは機能一覧ではなく、CDK のバージョン制約とデプロイ方式のほうだ。
- 誰に向いている?
- すでに AWS アカウントと CDK の運用経験があり、Bedrock や SageMaker のモデルを切り替えながら RAG のデータソースも差し替えたいチームには候補になる。逆に、単一モデルで十分な用途や、CDK のバージョン追随を運用に組み込めない組織には重すぎる。
- 商用利用できる?
- できます。MIT-0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されていません。所有者が GitHub でリポジトリをアーカイブしており、読み取り専用で今後は更新されません。
- 何の言語で書かれている?
- 主に TypeScript です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
このリポジトリが埋めるのはモデル選定と RAG 配線の隙間
チャットボットを社内に立てようとすると、作業は大きく 2 つに割れる。どのモデルに問い合わせるかという部分と、社内文書をどう検索して文脈として渡すかという部分である。aws-genai-llm-chatbot は、この 2 つを個別に実装するのではなく、切り替え可能な構成として最初から用意している点に意味がある。README は Amazon Bedrock (Claude、Llama 2)、SageMaker、カスタムモデルエンドポイントを列挙し、リポジトリのトピックには OpenAI、Meta、AI21、Cohere、Mistral、HuggingFace も並ぶ。つまり特定ベンダーに閉じない前提で組まれている。想定読者は、PoC で 1 モデルを試したあとに、モデルを差し替えたり RAG の保存先を変えたりする段階に入った開発チームである。ゼロからチャット UI と認証と API を作る手間を省くことが、このサンプルの主目的だ。
登場する AWS サービスと、その組み合わせ方が設計の本体
README の Architecture 節が挙げる構成要素は、Amazon Bedrock、Amazon OpenSearch (ベクトルストア)、Amazon S3 (文書保管)、Amazon Cognito (認証)、AWS Lambda (サーバーレス処理)、Amazon API Gateway、React ベースの Web インターフェースである。データの流れはこの並びから読み取れる。利用者は Cognito で認証し、React の UI から API Gateway 経由で Lambda を呼ぶ。Lambda がベクトルストアに問い合わせて関連文書を取り出し、その文脈を付けて Bedrock などのモデルに推論させる。文書の実体は S3 に置かれる。RAG のバックエンドは OpenSearch だけに固定されておらず、トピックには aurora、pgvector、opensearch-serverless、kendra が含まれる。検索基盤を差し替えられる構造だという点は、既存のデータ基盤を持つ組織にとっては導入のしやすさに直結する。
導入は CDK と SeedFarmer の 2 段構え
前提条件は README に明示されている。AWS アカウント、認証情報を設定済みの AWS CLI、Node.js 18 以上と npm、Python 3.8 以上、そして aws-cdk-lib 2.206.0 以降に対応する CDK CLI である。CDK CLI の導入と確認は次の 2 行で行う。
npm install -g aws-cdk@latest cdk --version
README はここで注意を促している。CDK CLI のバージョンはプロジェクトが使う aws-cdk-lib のバージョン (現時点で 2.206.0) と互換でなければならず、デプロイ中に Cloud assembly schema version mismatch が出た場合は上記のコマンドで CDK CLI を最新に更新する、というのが README の説明である。デプロイ自体は AWS CDK と SeedFarmer で自動化される、とだけ書かれている。CDK の bootstrap やスタック分割の細部、SeedFarmer のマニフェストの書き方は README の範囲では確認できない。導入手順の全体像は GitHub リポジトリのドキュメントを参照する必要がある。
v5.0.0 で何が変わったかは README からは読めない
公開されているリリースは v5.0.0 (2025-01-23)、v4.0.14 (2024-08-07)、v4.0.13 (2024-06-24) の 3 件である。v4 系が約 2 か月おきにパッチを当てていたのに対し、v4.0.14 から v5.0.0 までは 5 か月以上空いている。メジャー番号が上がっている以上、破壊的変更を想定して移行計画を立てるのが妥当だが、提供された資料にはチェンジログもマイグレーションガイドも含まれていない。v4 系のデプロイ資産をそのまま v5.0.0 に持ち上げられるかは、この記事の材料だけでは判断できない。採用検討時に最初に開くべきはリポジトリのリリースノートであって、README の機能一覧ではない。
RAG の選択肢が増えるほど、運用で見る場所も増える
ベクトルストアを OpenSearch、Aurora、pgvector、Kendra から選べることは、要件に合わせやすい反面、監視とバックアップの対象が構成ごとに変わることを意味する。OpenSearch を選べばドメインのキャパシティ管理が、Aurora や pgvector を選べばデータベース側の運用が、そのままチャットボットの可用性に乗る。Lambda と API Gateway はサーバーレスなので運用負荷は比較的小さいが、ボトルネックは検索側に移る。会話履歴を永続化する機能がある以上、保存先のストレージも運用対象に加わる。README には具体的なスケール上限やスループットの記載がないため、どの構成でどの程度の同時利用に耐えるかは、この資料からは分からない。負荷試験は自組織で行うほかない。
向かないケース: 単一モデルで足りるなら構成が過剰
このプロジェクトの価値は、モデルと検索基盤を差し替えられる点にある。逆に言えば、社内文書を 1 つのモデルに読ませるだけの用途では、Cognito、API Gateway、Lambda、ベクトルストア、S3 という構成は維持すべき対象を増やすだけになる。同種の目的には、Amazon Bedrock のナレッジベースを単体で使い、フロントエンドだけを自前で用意するほうが構成は小さい。Bedrock のナレッジベースはマネージド側で取り込みと検索を扱うため、ベクトルストアの選定や Lambda の配線を自分で持たなくて済む。一方で、モデルを頻繁に切り替えたい、検索基盤を既存の Aurora や OpenSearch に合わせたい、という要件があるなら、その差し替え可能性こそが aws-genai-llm-chatbot を選ぶ理由になる。判断の分かれ目は機能数ではなく、切り替えを実際に使うかどうかである。
ライセンスと保守コストの見積もり方
ライセンスは MIT-0 である。MIT-0 は帰属表示の義務を外した MIT 相当の条件で、再配布や改変時のクレジット表記を求めない。ただし本記事は法的助言ではないので、自組織の法務確認は別途必要になる。保守の観点では、AWS が提供するサンプルという位置づけを踏まえるべきである。aws-samples 配下のリポジトリは、そのまま本番運用する製品として保守されるとは限らない。実際、CDK CLI のバージョンを aws-cdk-lib 2.206.0 に合わせ続ける必要があり、この追随は利用側の責任になる。CDK のメジャーアップデートのたびに、自組織のデプロイパイプラインと突き合わせる作業が発生する。v5.0.0 への移行で何を直す必要があるかは、リリースノートを確認するまで見積もれない。導入判断と同じくらい、半年後のアップグレード工数を先に見ておくべきプロジェクトである。
編集部の結論
すでに AWS アカウントと CDK の運用経験があり、Bedrock や SageMaker のモデルを切り替えながら RAG のデータソースも差し替えたいチームには候補になる。逆に、単一モデルで十分な用途や、CDK のバージョン追随を運用に組み込めない組織には重すぎる。着手前に確認すべきは、aws-cdk-lib 2.206.0 と一致する CDK CLI が手元にあるか、そして SeedFarmer を前提としたデプロイ手順を自組織のパイプラインに載せられるかである。この 2 点が満たせない場合、機能の豊富さは導入の理由にならない。
コミュニティノート