Generative AI Use Cases JP (略称:GenU) のシンプルにインストールしてみた

Generative AI Use Cases JP (略称:GenU) のシンプルにインストールしてみた

AWS上で動作するオープンソースAIチャットボット「Generative AI Use Cases JP (GenU)」のシンプルなインストール手順を解説。Claude 3.7 Sonnetなどの高性能AIモデルを低コストで安全に利用できる環境を、最小限の設定で構築する方法を紹介します。
Clock Icon2025.03.02

タイオフィスの三並です。

最近、Generative AI Use Cases JP (略称:GenU)が便利だという話を聞き、実際にインストールしてみました。導入過程でいくつかの課題に直面したため、とにかく動かすだけのシンプルな構成でのインストール手順を整理しました。

公式ドキュメントはAWSにある程度慣れた方向けに書かれているため、AWS初心者の方には少し難しいかもしれません。そこで今回は、最小限の機能を有効にするだけで使える設定と手順に焦点を当てて解説します。

GenUの魅力とは

GenUには、他のAIチャットボットと比較して多くの魅力があります。主な特徴を紹介します。公式GitHubでは、詳細な情報やソースコードが公開されています。

充実した対話型AI機能

GenUは、Generative AIの対話型チャット機能の基本を全て押さえています。

  • 高性能AIモデルの利用: Claude 3.7 Sonnetなど、最新の高性能AIモデルを使用できます
  • 優れた画像生成: Stable Diffusion 3.5 Largeなどの高性能な画像生成機能が便利に使えます

オープンソースの利点

MIT-0ライセンスで公開されているため、以下のメリットがあります。

  • コスト効率: 商用サービスと比較して大幅にコストを抑えられます
  • カスタマイズ自由度: 必要に応じて自由に改造することができます

AWSのServerless機能を活用

サーバーレスアーキテクチャを採用しているため、以下のメリットがあります。

  • 完全従量課金: サーバー費用が完全に従量課金制です
  • 無駄のない課金: インストール後も使わなければ費用がかかりません
  • 実使用分のみ課金: 実際にリソース(AIの実行や通信など)を使った分だけの費用です
  • コスト効率: AWSの費用試算によると、シンプル版(RAGなし)で利用ユーザー数50人の場合、月額39.63ドル程度です。ChatGPT Plusが2025年3月現在、1ユーザーで月額20ドルであることを考えると、非常に経済的です

セキュリティ面の優位性

  • データの閉域性: データが自分のAWS環境内で閉じるため、セキュアな運用が可能です
  • 再学習リスクの排除: AIによるデータの再学習される心配がありません
  • データ漏洩リスクの低減: 使用しているAWSアカウント外にデータが漏れる心配がありません

高い拡張性

今回のシンプルなインストールでは扱いませんが、以下のような拡張も可能です。

  • AWS内の様々なRAG機能との連携(Kendra、Amazon Bedrock Knowledge bases)
  • ユースケースビルダーによるGenerative AIの活用
  • ドメインやホスト名の自由な設定
  • IP制限、ユーザーのドメイン制限など認証設定のカスタマイズ
  • Google WorkspaceやEntra IDなどのSAML対応SSOとの連携

AIの再学習に関する懸念

一般的なAIサービスでは、入力したデータが再学習に使われる可能性があります。例えば、企業の機密情報や個人情報を入力すると、それが学習データとして使われ、他のユーザーの回答生成に影響する可能性があります。

特に企業環境では、以下のようなリスクが考えられます。

  1. 機密情報の漏洩: 社内の戦略文書や製品開発情報などを入力すると、それが学習データとなり、競合他社が利用した際に類似の情報が出力される可能性があります

  2. 個人情報の拡散: 顧客データや従業員情報を含む文書を処理すると、プライバシーやコンプライアンス上の問題が生じる恐れがあります

  3. 知的財産の保護: 特許申請前の発明内容や独自のアルゴリズムなどが、AIの学習を通じて間接的に公開されてしまうリスクがあります

  4. 法的責任: 特定の業界では、データの取り扱いに関する厳格な規制があり、外部AIサービスの利用がコンプライアンス違反となる場合があります

GenUでは利用者自身のAWS環境内でデータが完結するため、これらの懸念を排除できます。AIとの対話内容や送信したファイルは自社のAWSアカウント内に保存され、外部に送信されることはありません。これにより、データの主権を維持しながら、最新のAI技術を安全に活用することが可能になります。特に企業での利用において、この点は大きなメリットとなります。

シンプルなインストール構成

今回は、GenUの基本機能を素早く試せるよう、シンプルな構成でのインストール方法を紹介します。必要最小限の設定で、主要な機能を利用できる環境を構築します。

デプロイ環境

デプロイには以下の環境を使用します。

  • EC2インスタンス: デプロイ作業用の一時的な環境として使用します
  • ソースコード取得: EC2上でGitHubからソースコードを取得します
  • AWSサービス構築: EC2からAWSの各サービスの構築を実行します
  • インスタンスの扱い: デプロイ完了後はEC2インスタンスを停止(または不要であれば終了)します

構築環境

GenUは以下のAWSサービスを組み合わせて構築されます。

  • Cloudfront + S3: Webの配信とソースコード配置
  • API Gateway + Lambda: プログラムの実行環境
  • Cognito: ユーザー認証
  • Bedrock: Generative AIモデルの実行環境
  • DynamoDB: 会話履歴等のデータベース
  • Transcribe: 音声の書き起こし

GenU 構成図

使用するAIモデル

今回のインストールでは、以下の高性能AIモデルを使用します。

  • Anthropic: Claude 3.7 Sonnet: 2025/2/25に発表された最新の強力なマルチモーダルモデルです。
  • Stability AI: Stable Diffusion 3.5 Large: 高精細な画像生成が可能なモデルです
  • Amazon: NovaPro: AWSが提供する高性能マルチモーダルモデルです

これらのモデルが全て利用可能なのはOregonリージョン(us-west-2)のみのため、Bedrockだけはこのリージョンを使用します。その他のサービスは、今回はSingaporeリージョン(ap-southeast-1)を使用します。タイからのアクセスを想定してSingaporeリージョンを利用していますが、日本からの利用であれば東京リージョン(ap-northeast-1)に読み替えて設定を行ってください。

最近、Bedrock上での需要増加により、Claude 3.7 Sonnetが一時的に利用できない場合があります。そのための代替モデルとして、Amazon NovaPro も有効化しています。

ユーザー認証の設定

今回はシンプルさとセキュリティを両立させるため、ブラウザ上のユーザー画面からのユーザー登録機能を無効化します。代わりに、AWS Management ConsoleからCognitoでユーザーを直接作成する方法を採用します。これにより、管理者が承認したユーザーのみがシステムにアクセスできるようになります。

前提条件

インストールを始める前に、以下の条件を満たしていることを確認してください。

  • AWSアカウントを所有していること
  • AWSアカウントでIAMユーザー(AdministratorAccess権限)またはrootユーザー権限があり、Management Consoleにアクセスできること

インストール手順

ここからは、実際のGenUのインストール手順を順を追って説明します。
なお、各リソース名には私の名前の「keisuke-」を付与してリソースを作成しています。実際に試す場合は読み替えてください。

1. Bedrockの設定

まず、BedrockでGenUが使用するAIモデルを有効化します。

  1. AWS Management Consoleにログインし、Oregonリージョン(us-west-2)に切り替えます
  2. Bedrockサービスに移動します
  3. 左メニューの下の方にある「Model access」をクリックします。
    bedrock-setting
  4. 画面上部の「Enable specific models」か「Modify model access」ボタンを押し、モデル選択画面に入り以下のモデルを有効化します。
    • Amazon: NovaPro
    • Anthropic: Claude 3.7 Sonnet
    • Stability AI: Stable Diffusion 3.5 Large

2. IAMロールの作成

EC2インスタンスがAWSリソースを操作するために必要なIAMロールを作成します。

  1. AWS Management ConsoleでIAMサービスに移動します
  2. 「ロール」→「ロールの作成」を選択します
  3. 以下の設定でロールを作成します。
    • 信頼されたエンティティ: AWS service - EC2
    • アクセス許可ポリシー:
      • AdministratorAccess
      • AmazonSSMManagedInstanceCore
    • ロール名: ec2-keisuke-test-role

3. デプロイ用EC2インスタンスの起動

Singaporeリージョン(ap-southeast-1)でEC2インスタンスを起動します。

  1. EC2サービスに移動し、「インスタンスを起動」をクリックします

  2. 以下の設定でインスタンスを作成します。

    • 名前: keisuke-test
    • インスタンスタイプ: t3a.medium
    • キーペア: Proceed without a key pair (Not recommended)
    • ストレージ: 8GB
    • セキュリティグループ: keisuke-test (Inbound:なし)
    • IAMロール: 先ほど作成したec2-keisuke-test-role
  3. インスタンスが「実行中」状態になったら、SSMを使用してEC2に接続します
    ssm connect

4. EC2での環境設定

EC2インスタンスに接続し、必要なソフトウェアをインストールします。

# rootユーザーに切り替え
sudo su -

# Gitのインストール
yum install git -y

# Node.jsのインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 22
node -v
npm -v

# AWS CDKのインストール
npm install -g aws-cdk

5. ソースコードの取得と設定

GitHubからGenUのソースコードを取得し、必要な設定を行います。

# ディレクトリ作成とリポジトリのクローン
mkdir ~/git
cd ~/git
git clone https://github.com/aws-samples/generative-ai-use-cases-jp.git

# 設定ファイルの編集
cd ~/git/generative-ai-use-cases-jp
vi packages/cdk/parameter.ts

parameter.tsファイルを以下のように編集します。

dev: {
  region: "ap-southeast-1",
  ragEnabled: false,
  modelIds: [
    'us.anthropic.claude-3-7-sonnet-20250219-v1:0',
    'us.amazon.nova-pro-v1:0',
  ],
  imageGenerationModelIds: [
    'stability.sd3-5-large-v1:0',
  ],
  modelRegion: "us-west-2",
  selfSignUpEnabled: false,
},

デプロイするリージョンは、ap-southeast-1 (Singapore)
Modelを使うリージョンは、us-west-2 (Oregon)
としています。

6. npmパッケージのインストールとデプロイ

必要なパッケージをインストールし、AWSリソースをデプロイします。

# npmパッケージのインストール
npm ci

# CDKブートストラップ
npx -w packages/cdk cdk bootstrap

# 環境をdevに設定してデプロイ
npm run cdk:deploy -- -c env=dev

各npmコマンド終了するまでに数分かかります。
デプロイの確認メッセージが表示されたら、yを入力して続行します。

Do you wish to deploy these changes (y/n)? y

7. デプロイ完了の確認

デプロイが完了すると、アクセス用のURLが表示されます。以下のような行を探してください。

GenerativeAiUseCasesStackdev.WebUrl = https://[CloudFrontHostname].cloudfront.net

[CloudFrontHostname]の部分は、CloudFrontがランダムに設定したホスト名が入っています。

このURLがGenUのアクセス先となります。

デプロイが完了したら、EC2インスタンスは不要になるため、停止またはTerminateしても構いません。

ユーザー管理

ユーザー管理方法は、別のブログに書いたのでこちらを参照してください。
GenUのユーザー管理用に設定したCognitoでユーザー追加削除方法

まとめ

今回は、AWS上で動作するオープンソースのAIチャットボット「Generative AI Use Cases JP (GenU)」を、シンプルな構成でインストールする手順を紹介しました。

今回のシンプルなインストール構成では、必要最小限の設定で基本機能を利用できる環境を構築しました。
AIモデルはOregonリージョンのBedrockを利用し、その他のサービスはSingaporeリージョン(または東京リージョン)に配置する構成としました。ユーザー認証はCognitoを使用し、セキュリティを考慮してユーザー自己登録機能は無効化しています。

GenUは、特に企業内でのAI活用において、データの機密性を保ちながら高性能なAIを利用できる点が大きな魅力です。AIの再学習による情報漏洩リスクを排除し、コスト効率よく最新のAI技術を活用できます。

今回紹介したシンプルな構成をベースに、必要に応じてRAG機能の追加やSSOとの連携など、より高度な機能を追加していくことも可能です。AWSの知識や経験が少ない方でも、この手順に従えば比較的容易にGenUを導入できるでしょう。

ぜひGenUを導入して、安全かつ効率的なAI活用を始めてみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.