14
9
生成AIに関する記事を書こう!
Qiita Engineer Festa20242024年7月17日まで開催中!

DifyをEC2上に構築してBedrockと接続する手順(IAMロール対応版)

Posted at

大人気の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」を探し、クリックします。「セットアップ」ボタンが表示されるのでクリックします。

AccessKeySecret Access Keyは空欄のままとし、AWSリージョンの選択と、任意のモデルID(amazon.titan-text-express-v1)を入力します。(ここで入力するモデルIDはBedrockとの接続確認で利用するだけですので任意のものでOKです)
入力後、「保存」ボタンをクリックします。

上部の登録済みモデル一覧にBedrockが追加されます。利用可能なモデルが自動でリストアップされ有効化されます。

接続確認を行います。
設定のモーダルを閉じ、「最初から作成」をクリックします。

アプリの名称を入力し、「作成する」ボタンをクリックします。

右上のモデル部分から使用したいモデルに切り替え、チャットを入力します。

正しく返答がありました。

Difyをお楽しみください。


最後に宣伝

Bedrockの書籍を出版します。いよいよ今週発売です!
興味を持っていただいた方は、どうぞお手に取ってください。Difyのことも少しだけ触れてますよ!

Amazon Bedrock 生成AIアプリ開発入門 [AWS深掘りガイド]

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9