テストデプロイ
| コンポーネント | Helmチャート 設定 | 数量 | vCPU | メモリ (GB) | ストレージ (GB) | メモ |
|---|---|---|---|---|---|---|
| S3 | persistence | 1 | ||||
| Redis DB | externalRedis | 1 | 2 | 6.38 | ||
| RDS Postgres DB | externalPostgres | 2 | 2 | 8 | ||
| K8S Worker Node | 1 | 4 | 16 | 100 | ||
| OpenSearch | vectorDB | 1 | 2 | 16 | 100 |
本番デプロイ
| コンポーネント | Helmチャート 設定 | 数量 | vCPU | メモリ (GB) | ストレージ (GB) | メモ |
|---|---|---|---|---|---|---|
| S3 | persistence | 1 | ||||
| Redis DB | externalRedis | 1 | 2 | 12.93 | ||
| RDS Postgres DB | externalPostgres | 1 | 4 | 32 | ||
| K8S Worker Node | 6 | 8 | 32 | 100 | ||
| OpenSearch | vectorDB | 2 | 8 | 64 | 100 |
デプロイ手順
すべての工程は約60分かかると予測されます。
-
AWS CLI の設定:
AWS CLI をインストールし、設定を行います: -
リポジトリのクローン:
-
NodeJS 依存パッケージのインストール:
-
環境変数の設定:
.envファイル内の環境変数を適切に設定します。-
ENVIRONMENT:デプロイ環境を指定;testまたはprodが必要です。 -
CDK_DEFAULT_REGION:Difyエンタープライズ版をデプロイする AWS リージョン。 -
CDK_DEFAULT_ACCOUNT:AWS アカウント ID。 -
DEPLOY_VPC_ID:使用する既存 VPC の IDを指定します。未設定の場合、新しい VPC が作成されます。 -
注意: 既存の VPC を使用する場合は以下を確認してください
- 确保你有 2 个或更多的公共子网用于应用负载均衡器,以及 2 个或更多的私有子网可以访问互联网(与 NAT 关联)以从互联网拉取 docker 镜像。
- 2つ以上のパブリックサブネットが必要です(アプリケーションロードバランサー用)。
- 2つ以上のインターネットにアクセス可能なプライベートサブネット(NAT付き)も必要です。
-
サブネットにタグを追加してください(タグ付けされていないと、ステップ6で警告が表示され、ロードバランサーが作成されません):
サブネットタイプ タグキー タグ値 パブリック kubernetes.io/role/elb 1 プライベート kubernetes.io/role/internal-elb 1
-
サブネット設定(
DEPLOY_VPC_ID必須、カンマ区切り、スペースなし、プライベートサブネットの使用を推奨):EKS_CLUSTER_SUBNETS:EKS コントロールプレーン用サブネット ID。少なくとも2つの異なるアベイラビリティゾーン (AZ) が必要です。EKS_NODES_SUBNETS:EKS ワーカーノード用サブネット ID。少なくとも2つの異なる AZ が必要です。REDIS_SUBNETS:Redis デプロイ用サブネット ID。RDS_SUBNETS:RDS データベース用サブネット ID。(少なくとも2つの異なる AZ が必要)OPENSEARCH_SUBNETS:OpenSearch デプロイ用サブネット ID。OPENSEARCH_ADMINNAME:OpenSearch ドメイン管理者名。OPENSEARCH_PASSWORD:OpenSearch ドメイン管理者パスワード。
-
AWS_EKS_CHART_REPO_URL:(AWS 中国リージョンのみ)AWS EKS Helmチャート リポジトリ URL。 -
RDS_PUBLIC_ACCESSIBLE:RDS を公開アクセス可能にする場合はtrueに設定します(推奨されません)。
- AWS 中国リージョンを使用している場合、
AWS_EKS_CHART_REPO_URLの設定が必要です。詳細は Dify チームにお問い合わせください。 - 既存の VPC を使用することでリソースへのアクセスが容易になります。
-
-
CDK ブートストラップ:
CDK 環境を初期化します: -
CDK デプロイ:
-
Difyエンタープライズ版をデプロイします:
-
Difyエンタープライズ版をデプロイします:
-
AWS EKS アクセス権の更新:
- EKS クラスターのパネルに移動し、「アクセス」メニューを選択し、「管理アクセス」をクリックします。
- 「管理アクセス」ダイアログで、「EKS API と ConfigMap」を選択し、「変更を保存」をクリックします。
- IAM アクセスエントリパネルで、「アクセスエントリを作成」をクリックします。
- あなたの IAM ユーザーを追加し、以下の権限を割り当てます:
AmazonEKSAdminPolicyAmazonEKSAdminViewPolicyAmazonEKSClusterAdminPolicy
-
Kubernetes (K8S) クラスターにローカルでアクセスするように
ローカルで Kubernetes クラスターにアクセスするために、以下のコマンドを実行します:kubeconfigを構成します。regionとnameをデプロイに合わせて調整してください:- region: クラスターがデプロイされている AWS リージョン。
- name: EKS 集群名称。
-
データ永続化設定:
Helmvalues.yamlファイルを編集します。以下のようにpersistence部分を修正し、{your-region-name}と{your-s3-bucket-name}を CDK が作成したリソース名に置き換え、useAwsManagedIamを有効にしてください。 -
データベース設定:
Helmvalues.yamlファイルを編集し、postgre部分を削除して、externalPostgres部分を以下のように修正します。{your-postgres-endpoint}と{your-postgres-password}を AWS Secrets Manager に保存された情報に置き換えます。 -
Redis 設定:
Helmvalues.yamlファイルを編集し、redis部分を削除して、externalRedis部分を以下のように修正します。{your-redis-host}を ElastiCache-Redis のPrimary endpointに置き換えます。 注意:Primary endpointのポート番号は削除してください -
ベクターデータベース設定:
Helmのvalues.yamlファイルを変更し、externalTypeの部分を以下のように修正してください:- AWS OpensearchインスタンスのDomain endpointである
<openSearch_endpoint>を置き換え、https://を削除した残りの部分を使用します。 .envで設定した値を用いて<OPENSEARCH_ADMINNAME>と<OPENSEARCH_PASSWORD>を置き換えます。
- AWS OpensearchインスタンスのDomain endpointである
-
Docker イメージプルキーの設定:
Difyエンタープライズ版をインストールする前に、Docker イメージプルキーを設定する必要があります。 注意: ユーザー名とパスワードを取得していない場合は、サポートにお問い合わせください。メールアドレス:Support@dify.ai -
TLS 設定:
テストの場合:
デプロイプロセスをテストするだけであれば、このステップをスキップできます。本番の場合:
AWSACMに移動して、Helmチャート 設定ファイルvalues.yamlで宣言されたドメイン名の証明書を申請します。これらのドメインは次のようになります:ドメイン名サービスプロバイダー(cloud flare、aws route53 など)にて、cnameを設定してドメインの所有権を証明してください。 values.yaml パラメータのglobal.useTLSを変更 -
AWS ロードバランサーの設定:
Helmvalues.yamlファイルで AWS アプリケーションロードバランサー(ALB)を使用してイングレスを設定します。以下のようにingress部分を修正してください: テストの場合:本番の場合: 詳細は:AWS ロードバランサーコントローラ設定 -
Difyエンタープライズ版のインストール:
Difyエンタープライズ版は Helm を使用してデプロイされます。 -
Difyエンタープライズ版へのアクセス:
テストの場合:
設定が完了したら、ALB の一時的な外部 IP を取得します。その後、以下の行を/etc/hostsファイルに追加します。本番の場合:
ドメイン名サービスプロバイダーにて、DNS を ALB アドレスに設定します(AWS EC2 の Load Balancer に移動し、ALB の DNS を取得)。ドメイン名 cname api.xxxx.com alb_dns app.xxxx.com alb_dns upload.xxxx.com alb_dns enterprise.xxxx.com alb_dns console.xxxx.com alb_dns -
インストールの確認:
警告:Dify Enterprise Dashboardhttp://enterprise.dify.localにログインする前に、Dify Consolehttp://console.dify.localを設定する必要があります。-
Dify Console:
http://console.dify.localにアクセスし、インストールを完了します。 -
Enterprise Dashboard:
http://enterprise.dify.localにアクセスし、デフォルトのメールとパスワードでログインします。ログイン後、パスワードを変更できます。
-
Dify Console:
破棄手順
この工程には約20分かかる可能性があります。
.env ファイルで指定された ENVIRONMENT 環境のデプロイを破棄します。
Cloudformation をチェックし、削除操作を実行してください。