Dify Enterprise Edition デプロイガイド (AWS)
Dify Enterprise Edition を円滑にデプロイするため、以下のインフラ要件および設定手順に従ってください。注意事項
‼️必ずバージョン 2.8.0 以上へアップグレードし、マイグレーションを完了させてください。‼️1. インフラ要件
必須 AWS サービス:
- S3
- ECR
サポートされる認証方式:
Dify は、AWS サービスへのアクセスに以下の 2 つの方式をサポートします:- アクセスキー方式 (AK/SK): 環境変数を通じて認証情報を提供
- IRSA 方式: IAM Roles for Service Accounts を用いたセキュアかつきめ細かいアクセス制御
2. アクセスキー方式
Step 1: 認証情報の準備
S3 と ECR の権限のみを持つ IAM ユーザーを作成し、Access Key と Secret Key を取得します。Step 2: Kubernetes Secret の作成
Step 3: values.yaml の更新
Step 4: Plugin Daemon のデータベース設定
Step 5:
リリースノートに従ってアップグレード(インストール)
https://langgenius.github.io/dify-helm/#/pages/3_0_03. IRSA モード
Access Key は企業環境で厳格に管理されるため、AWS Pod Identity (IRSA) の利用を推奨します。✅ 利点
- AWS のセキュリティベストプラクティスに準拠
- プラグイン実行環境のきめ細かな制御が可能
セットアップ
Step 1: IAM ロールと Service Account の準備
-
前提条件
- 利用可能な AWS リージョンおよび EKS クラスターが存在すること
- Dify のファイル保存用の既存の S3 バケットがあること
- kubectl がローカルにインストール・設定され、対象 EKS クラスターへアクセスできること
- AWS CLI がインストールされ、ローカルに認証情報が設定されていること
🚀オプション A: ワンクリックスクリプトの実行
‼️ ワンクリックスクリプトはデモおよびテスト用です。実運用に合わせて独自のスクリプトを開発してください。このデモスクリプトは Dify FDE チームから入手可能です。🔨オプション B: 手動設定
- EKS クラスターで IAM OIDC プロバイダを有効化 EKS クラスターと OIDC ID プロバイダを関連付けるために、AWS公式ドキュメント の手順に従ってください。この手順を完了しないと、IRSA を利用できません。
- IAM ポリシーの作成
| 項目 | 例の命名 | 説明 |
|---|---|---|
| S3 Policy Name | dify-ee-irsa-<cluster_name>-s3-policy | 指定した S3 バケットへの完全アクセス |
| ECR Policy Name | dify-ee-irsa-<cluster_name>-ecr-policy | ECR への完全アクセスおよび CloudTrail の読み取り専用アクセス |
| ECR Policy Name | dify-ee-irsa-<cluster_name>-ecr-pull-only-policy | ECR からの pull のみ許可 |
- ポリシー付き IAM ロールの作成
| 項目 | 例の命名 | policy |
|---|---|---|
| IAM Role - S3 | DifyEE-Role-<cluster_name>-s3 | dify-ee-irsa-<cluster_name>-s3-policy |
| IAM Role - S3 + ECR | DifyEE-Role-<cluster_name>-s3-ecr | dify-ee-irsa-<cluster_name>-s3-policy dify-ee-irsa-<cluster_name>-ecr-policy |
| IAM Role - ECR Pull-only | DifyEE-Role-<cluster_name>-ecr-image-pull | dify-ee-irsa-<cluster_name>-ecr-pull-only-policy |
- IAM ロールを ServiceAccount に関連付け
| 用途 | デフォルト名 | バインドする IAM ロール | 説明 |
|---|---|---|---|
| dify-api, dify-worker 用 | dify-api-sa | DifyEE-Role-<cluster_name>-s3 | バックエンドサービスが S3 にアクセス(ファイルアップロードなど) |
| dify-plugin-crd のビルド用 | dify-plugin-crd-sa | DifyEE-Role-<cluster_name>-s3-ecr | S3 へのアクセスやプラグインイメージレポジトリの操作を行う |
| dify-plugin 実行時用 | dify-plugin-runner-sa | DifyEE-Role-<cluster_name>-ecr-image-pull | プラグイン実行時のイメージ pull に利用 |
Step 2: 環境変数の設定
リリースノートに従って、S3_REGION、S3_BUCKET_NAME などの環境変数を設定します。Step 3: values.yamlの更新
Step 4: Plugin Daemon のデータベース設定
Step 5: リリースノートに従ってアップグレード(インストール)
https://langgenius.github.io/dify-helm/#/pages/3_0_0Step 6: カスタム ServiceAccount に S3 権限を付与
ServiceAccount 名: dify-plugin-connector-saStep 7: Dify Daemon Pod を再起動
Notes
- ❌ Redis クラスターモードはサポートされていません
- 🌐 EKS ノードはインターネットアクセスが可能、または NAT Gateway の背後に配置されている必要があります