Azure仮想マシンにセルフホストしたDifyから、Azure内のプライベート接続でAzureOpenAIに接続する構成を実装してみます。
目次
- 要件および要点
- リソースグループとAOAIサービス作成
- AOAIモデルデプロイ
- 仮想マシンおよびネットワーク作成
- Difyインストール
4.1 Difyインストール
4.2 Difyログイン - AOAIサービスのプライベート化
- DifyのAOAIモデル追加
- Difyのチャット応答確認
0. 要件および要点
簡単に要件および要点を記載します。
要件
・Azureは日本国内のリージョンを使用すること。
・AzureOpenAI(以下AOAI)にはプライベート接続で接続すること。
・Difyはセルフホスト型とし、Azure内に配置すること。
要点
・生成AIモデル:日本国内でサポートされているgpt-4o,2024-11-20を利用します。
・Difyホスト対象:個人的な習慣で仮想マシンを使用します。
・仮想マシン(HW):Difyシステム要件からCPU>=2core,RAM>=4GiBとします。
・仮想マシン(OS):個人的な習慣でUbuntu Server 22.04を使用します。
1. リソースグループとAOAIサービス作成
AzureポータルからAzure Open AI Serviceを選択し、作成を押下します。

以下を入力して次へを押下します。
・リソースグループ:(新規作成するリソースグループ名)
・リージョン:Japan East
・名前:(Azure OpenAI Serviceの新規リソース名)

今回はこちらの画面で新規リソースグループも一括で作成します。
ネットワーク設定は変更せず、次へを押下します。
あとで無効(プライベートアクセス用)に変更します。
(VNet/Subnet作成後に実施)
2.AOAIモデルデプロイ
AzureポータルからAzure Open AI Serviceを選択し、作成したリソースを押下します。

Go to Azure AI Foundry portalを押下します。

モデルデプロイ画面からモデルのデプロイ、基本モデルをデプロイするを押下します。

デプロイの種類は以下から確認可能です。
https://learn.microsoft.com/ja-jp/azure/ai-services/openai/how-to/deployment-types
デプロイの種類ごとのサポートモデルは以下から確認可能です。
https://learn.microsoft.com/ja-jp/azure/ai-services/openai/concepts/models?tabs=global-standard%2Cstandard-chat-completions#model-summary-table-and-region-availability
3.仮想マシンおよびネットワーク作成
Azureポータルから仮想マシンを選択し、作成 - Azure仮想マシンを押下します。

仮想マシンの作成画面にて設定内容を入力します。
基本設定について、要点のみ下記します。
| 項目 | 設定内容 | 備考 |
|---|---|---|
| イメージ | Ubuntu Server 22.04 | 24.04でも良い |
| サイズ | Standard_D4s_v3(CPU4core,RAM16GiB) | Difyセルフホスト要件から |
ネットワーク設定画面にてVNetおよびSubnetを作成します。
パブリックIPアドレスについてはデフォルトで有効化されているためそのままとしておきます。
また、NICネットワークセキュリティグループについてDify Webアクセス用にHTTP(tcp80)も許可しておきます。
・VNetおよびSubnet作成

・NICネットワークセキュリティグループ

その他の設定項目はデフォルトまたは任意設定とし、仮想マシンをデプロイします。

デプロイが完了し、仮想マシンが表示されていることを確認します。

4.Difyインストール
ubuntu server 22.04 にDifyをインストールします。

4.1 Difyインストール
パブリックIPアドレス経由で仮想サーバにsshログインし、CUIでDifyをインストールしていきます。
以下、root権限でコマンド実行しています。
通常ユーザを利用する場合は適宜 sudo を付与してください。
# timedatectl set-timezone Asia/Tokyo
# apt install vim -y
# apt update
# apt upgrade -y
# apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# apt-key fingerprint 0EBFCD88
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# apt update
# apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# docker --version
# docker compose version
# git clone https://github.com/langgenius/dify.git
# cd ~/dify/docker
# cp .env.example .env
上記 git コマンドを実行したディレクトリ配下にDify用のコンテナディレクトリが作成されるため、状況に応じて先にディレクトリを作成・遷移するなどを検討します。
# cd ~/dify/docker
# docker compose up -d
# git pull origin main
# docker compose down
# docker compose pull
# docker compose up -d
# docker compose ps
ここまでで、Difyが仮想マシン上で実行される状態になりました。
なお、Difyを停止するには以下コマンドを実行します。
# cd ~/dify/docker
# docker compose down
# docker compose up -d
4.2 Difyログイン
Difyに初回ログインし、ユーザ作成等を行います。
以下URLを作成してブラウザから遷移します。
http://【仮想マシンのパブリックIPアドレス】/install
以下画面が表示されるため、メールアドレス、ユーザ名、パスワードを入力します。
Dify試用において、メールアドレスは存在しないものでも問題ありません。
セットアップ後、以下のURLに遷移するためサインインします。
http://【仮想マシンのパブリックIPアドレス】/signin
以後は上記の ~/signinというURLでログインすることができます。
ログインが完了し、スタジオ画面が表示されることを確認しました。

5. AOAIサービスのプライベート化
AzureポータルからAzure Open AI Serviceを選択し、作成したリソースを押下します。

左ペインのリソース管理 - ネットワークを選択します。
許可するアクセス元を無効として、saveします。

続いて、プライベートエンドポイント接続タブからプライベートエンドポイントを押下します。

プライベートエンドポイントを作成します。
①基本設定はリソースグループ名、エンドポイント名、NIC名、リージョンを設定します。

AOAIリソース画面にて、プライベートエンドポイント接続が存在していることを確認します。

プライベートDNSゾーンについても作成されたことが確認されました。

6. DifyのAOAIモデル追加
DifyのLLMプロバイダとして、プライベートリンク経由のAOAIを設定します。
モデルプロバイダーからAzure OpenAIを押下します。

7.Difyのチャット応答確認
動作確認を行います。
右上で設定したAOAIが有効化されており、そのモデル経由でチャット応答が返ってくることが確認できました。

参考
























