インフラチームがお届けするブログリレーです!既に公開されている記事もありますので、こちらから他のメンバーの投稿もぜひチェックしてみてください!

皆さん生成AIの社内活用のツール検討状況は如何でしょうか。
もし悩まれている方いましたらぜひご覧ください。

オープンソースソフトウェアとして公開されているGenerative AI Use Cases (GenU)です。
AWSサンプルのひとつであり、所有しているAWSアカウントに自分専用の生成AIチャットツールを構築出来る優れモノです。

LLMに利用するモデルは全て指定したAWSアカウントのBedrockで有効化されているものが利用されます。

Bedrockは、入出力結果で再トレーニングされない、どのモデルプロバイダーとも共有されないと明記されています。
セキュリティとしても安心なため、社内活用の手段として採用される生成AI基盤サービスのひとつとなります。

AWS とサードパーティーのモデルプロバイダーは、Amazon Bedrock への顧客の入力または Amazon Bedrock からの出力を使用して、Amazon Nova、Amazon Titan またはサードパーティーのモデルをトレーニングすることはありますか?
– いいえ。AWS およびサードパーティーのモデルプロバイダーは、Amazon Bedrock への入力または Amazon Bedrock からの出力を使用して、Amazon Nova、Amazon Titan またはサードパーティーのモデルをトレーニングすることはありません。
引用:https://aws.amazon.com/jp/bedrock/faqs/

GenUを構築するうえで、AWS CDKやNode.jsの環境構築が必要となります。
ここで躓いてしまう方ももしかしたらいるかもしれない。

今回は上記の様な環境構築は不要!
AWSアカウントのみあればGenUをデプロイ出来る手順をご紹介します。

はじめに

概要

主な作業は以下の流れで進みます。

  • デプロイ設定ファイルの作成
  • デプロイ準備
    • 自身のAWSアカウントにログイン > CloudShellを起動
    • CloudShellへcdk.jsonをアップロード
    • GenUデプロイ用のファイルをCloudShellへダウンロード
  • GenUのデプロイ実行
    • GenUの構築が完了し、アクセス用のURLが発行される

基本はAWSアカウント上での作業となるため、詳しくは以下で紹介します。

デプロイ設定ファイルの作成

cdk.jsonをダウンロード

下記のURLにアクセスします。
https://github.com/aws-samples/generative-ai-use-cases/blob/main/packages/cdk/cdk.json

下図の赤枠箇所(Download raw file)をクリックし、cdk.jsonをダウンロードします。

Githubに公開されているcdk.jsonが、自身のPC内にダウンロードされます。

次の手順で本ファイルを利用します。
ファイル名が「cdk.json」であることを確認します。

(やりたい方向け:基本は無視でOK)オプション設定をする場合

jsonファイルの内容が分からない方はオプション設定は無視して次の手順へ進んでください。
※RAGを有効化するとコストが肥大化します。コスト懸念がある方はオプション設定はせずデプロイします。

RAGの有効化や、IP制限などの細かな設定を行う場合は下記のオプションサイトに掲載されている設定を行います。
https://aws-samples.github.io/generative-ai-use-cases/ja/DEPLOY_OPTION.html

本記事の場合、参照する内容は「packages/cdk/cdk.json を編集」となるため注意しましょう。

※parameter.tsは本記事では扱いません。

以上で準備は完了となります。
次の手順はブラウザでAWSマネジメントコンソール上で作業となります。

デプロイ準備

CloudShellを起動する

まずは自身のAWSマネジメントコンソールへサインインします。

  • 画面右上のリージョンが「アジアパシフィック(東京)」か確認する
    • 違う場合は▼をクリック > 東京 を選択
  • バー上の「[>_] 」のマークをクリックし、CloudShellを起動する

CloudShellへcdk.jsonをアップロード

続いて先ほどダウンロードした「cdk.json」をCloudShellへアップロードします。

  • アクション > ファイルのアップロード をクリック
  • ダウロードした[cdk.json]ファイルをアップロード

アップロードに成功すると右下に「ファイルアップロードに成功」と表示されます。

デプロイ用ファイルのダウンロード

続いてCloudShell上に以下のコマンドをコピー、貼り付けします。

wget https://raw.githubusercontent.com/aws-samples/generative-ai-use-cases/refs/heads/main/deploy.sh -O deploy.sh
chmod +x deploy.sh

「複数行のテキストの安全な貼り付け」などのメッセージが出た際は「貼り付け」をクリックします。

貼り付けを行うと下図のような結果になります。
※「chmod +x deploy.sh」の表記で止まっている場合は、Enterで必ず実行して次の行を表示させてください。

実行結果に自信が無い場合は「ls -l」コマンドでdeploy.shに「-rwxr-xr-x.」と「x」が3つ付与されているか確認します。

ls -l

-rwxr-xr-x. 1 cloudshell-user cloudshell-user 2704 May 28 14:09 deploy.sh

以上でGenUの構築準備が完了となります。あとはデプロイ実行のコマンドを打つだけです。

GenUのデプロイ実行

それではAWSアカウント上にGenUを構築しましょう。
下記のコマンドを同様にCloudShell上にコピー、貼り付けし、Enterで実行します。

./deploy.sh --cdk-context ~/cdk.json

実行すると以下のような画面に切り替わります。
構築完了に15~20分程度掛かるため、しばらく画面を見守りましょう。

デプロイが完了するとGenUにアクセスするURLが返ってきます。

URLへアクセスすると自身のAWSアカウントに構築したGenUへアクセスし、利用することが出来ます。

もしURLが分からなくなってしまった場合の確認方法

CloudShellを閉じてしまったり、GenUのURLがわからなくなってしまった場合の確認方法です。

  • 検索バーに「CloudFormation」と入力
  • サービス:CloudFormationを開く

  • 画面右上から、リージョン「アジアパシフィック(東京)」であることを確認
  • スタック名:GenerativeAiUseCasesStack を選択

  • タブ:出力 をクリック
  • 一番下へスクロール > [WebUrl]の項目のURLを確認

上記のCloudFormation画面から構築したURLを確認することが出来ます。
また、CloudShellの構築状況などもこちらの画面から確認が可能です。

お片付け:GenUの削除方法

構築したGenUですが、本手順で構築した内容であれば、基本的に大きくコストが増加することはありません。
ただし使用しない場合は削除したほうが不正アクセスの心配も無いため、不要となったタイミングで削除しておきましょう。

削除はCloudFormation上から行います。

画面は「WebUrl」を確認した先ほどの画面から行います。

  • CloudFormation >スタック : GenerativeAiUseCasesStack画面を開く
  • 「削除」ボタンをクリック
  • ステータスが「DELETE_IN_PROGRESS」になる

5分程度で削除が完了します。
ステータスが「DELETE_COMPLETE」に切り替われば完了となります。

※CloudShellのデータは120日間アクセスしなかった場合、自動でCloudShell内のデータが削除されます。
cdk.jsonが削除されて困る場合は控えをPC内などに保存しておきましょう。

最後に

CDKを触ったことが無い、Node.jsの環境構築が分からないという方向けのデプロイ方法の紹介でした。
GenUを利用してBedrockのモデルを利用することで、社内専用のWebチャット生成AIの導入が行いやすいメリットがあります。

日々アップデートされることもあり、生成AIの最新情報を追いかけるうえでもGenUは非常に役立ちます。
構築の手間暇が少しでも削減されると非常に扱いやすいツールとなるので、使い倒して行きたいですね。