はじめに
昨今話題のDifyだが、導入を検討している方も多いと思う。
月額プランでクラウド利用する方法も一つだが、それと比較し若干?費用が抑えられる、Azure仮想サーバ上に立ち上げる方法について紹介する。
企業内で扱う場合、Azure仮想サーバーは社外ネットワーク上に立ち上がるため、煩わしProxy設定が不要になるメリットがある。
またAzureのクラウド環境が使えるため、セキュリティ面でもクラウド版より安心?かもしれない。
簡単な流れ
流れとしては以下の通り。
- Azure仮想サーバを立ち上げる
- 仮想サーバ内でDockerをインストール
- Difyリポジトリをクローン
- 環境変数の設定
- アプリ立ち上げ
- 接続確認
手順
Azure仮想サーバーの立ち上げ
Azure上での仮想サーバー立ち上げ方法については、珍しく公式ドキュメントがわかりやすいので、以下を紹介する。
https://learn.microsoft.com/ja-jp/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu
サーバーの最低スペックは、Dify公式ページに以下記載がある。
Dify インストール前に, マシンが最小インストール要件を満たしていることを確認してください:
- CPU >= 2 Core
- RAM >= 4 GiB
OSの種類は、Dockerが動けば何でも良いようだが、Docker Desktopを回避するならLinuxを選択するのが無難。
仮想サーバーが立ち上がれば、SSH接続など設定し、任意のクライアントPCから接続できるようにしておくと楽。
仮想サーバー内でDockerインストール
方法は任意。
例えば、以下実行しインストールする。
$ sudo apt update
$ curl https://get.docker.com | sh
Difyリポジトリをクローン
DifyのGithubリポジトリは以下。
https://github.com/langgenius/dify
仮想サーバー上の任意のディレクトリにクローンする。
$ git clone https://github.com/langgenius/dify
なお、これ以降のアプリ立ち上げ方法については、公式サイトの内容と同じ内容。
環境変数の設定
dify/docker
内の.env.example
を.env
に反映する。
具体的には以下実行すればOk。
$ cp .env.example .env
.env
の内容は必要に応じて書き換える。
アプリ立ち上げ
以下実行し、コンテナを立ち上げる。
$ docker compose up -d
進捗は以下から確認できる。
$ docker compose ps
全てのコンテナが(healthy)
になれば立ち上げ完了!
接続確認
Azure仮想サーバーではパブリックIPアドレスが割り当てられている。
例えば111.111.111.5
の場合、http://111.111.111.5
にアクセス可能。
Azure仮想サーバーのパブリックIPアドレスは、Azureポータル上のリソース画面から確認できる。
注意点
クラウドプラントどっちが安い?
正直これは微妙なところで、Azure仮想サーバーのスペックに依存する。
DifyのTeamプランは2025年1月現在、\$159/monthなのに対し、最低スペックのAzure仮想サーバーでは\$24/monthとなる。
もちろん最低スペックなので、動作を安定させるにはスペックを上げる他ない。
Azureがメールサーバー非対応
注意点として、Azure仮想サーバーはメールサーバー非対応であるという点。
AzureではパブリックIPアドレスをプールし、仮想サーバー立ち上げ時にそのIPアドレスを配布する形を取っている(らしい)。
悪用されるリスク低減のため、メールサーバーは全面禁止の模様。
Difyを使ったワークフローの中には、メール機能を使ったものもあるため、それが利用できなくなる。