大人気のDify(公式サイト、GitHub)をEC2上に構築する手順です。
EC2からBedrockにアクセスする際、ベストプラクティスにしたがってIAMロールで接続させたいのですが、以前検証した際は、DifyがIAMロールに対応していませんでした。
そのため、LiteLLMを経由することでIAMロールを使ってBedrockへのアクセスを実現していました。その時の投稿がこちらです。
最新のDifyはIAMロールに対応したので、LiteLLMが不要となりましたので、改めて構築手順の確認を行いました。
準備
まずEC2を起動してください。私はt3.mediumインスタンスで検証しました。ブラウザからの接続確認を80番ポートで行いますので、セキュリティグループの設定を行い通信できるようにしておいてください。
セッションマネージャーでEC2に接続した状態から解説をスタートします。
EC2ユーザーに切り替えます。
sudo su - ec2-user
GitとDockerをインストールします。
sudo dnf install -y git docker
Dockerの実行権限を追加します。
sudo usermod -aG docker $USER
権限設定反映のため、exit
コマンドでec2-userを抜け、再度ec2-userへ切り替えます。
[ec2-user@ip-10-0-10-96 ~]$ exit
logout
sh-5.2$ sudo su - ec2-user
Last login: Sat Jun 22 23:59:21 UTC 2024 on pts/1
[ec2-user@ip-10-0-10-96 ~]$
Docker Composeをインストールします。
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
Dockerを起動します。
sudo systemctl enable docker
sudo systemctl start docker
DockerとDocker Composeのインストールを確認します。
docker version
Client:
Version: 25.0.3
API version: 1.44
Go version: go1.20.12
Git commit: 4debf41
Built: Mon Feb 12 00:00:00 2024
OS/Arch: linux/amd64
Context: default
Server:
Engine:
Version: 25.0.3
API version: 1.44 (minimum version 1.24)
Go version: go1.20.12
Git commit: f417435
Built: Mon Feb 12 00:00:00 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.11
GitCommit: 64b8a811b07ba6288238eefc14d898ee0b5b99ba
runc:
Version: 1.1.11
GitCommit: 4bccb38cc9cf198d52bebf2b3a90cd14e7af8c06
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker compose version
Docker Compose version v2.28.0
Difyの構築
GitHubにdocker-composeが用意されてます。
git clone https://github.com/langgenius/dify.git
cd dify/docker
docker compose up
しばらくすると起動します。
Difyの動作確認
80番ポートで待ち受けていますのでSecurity Groupなどの設定を行い、ブラウザからhttp://{EC2のグローバルIPアドレス}/install
にアクセスします。
HTTP通信での検証を行いました。HTTPS化などは本投稿では触れませんが、十分なセキュリティ対応を検討してください。
管理者ユーザーを作成し、ログインします。
ログイン直後の画面です。
右上のユーザー名をクリックし、「設定」をクリックします。
「モデルプロバイダー」タブを選択します。「Bedrock」を探し、クリックします。「セットアップ」ボタンが表示されるのでクリックします。
AccessKey
やSecret Access Key
は空欄のままとし、AWSリージョンの選択と、任意のモデルID(amazon.titan-text-express-v1
)を入力します。(ここで入力するモデルIDはBedrockとの接続確認で利用するだけですので任意のものでOKです)
入力後、「保存」ボタンをクリックします。
上部の登録済みモデル一覧にBedrockが追加されます。利用可能なモデルが自動でリストアップされ有効化されます。
接続確認を行います。
設定のモーダルを閉じ、「最初から作成」をクリックします。
アプリの名称を入力し、「作成する」ボタンをクリックします。
右上のモデル部分から使用したいモデルに切り替え、チャットを入力します。
正しく返答がありました。
Difyをお楽しみください。
最後に宣伝
Bedrockの書籍を出版します。いよいよ今週発売です!
興味を持っていただいた方は、どうぞお手に取ってください。Difyのことも少しだけ触れてますよ!