Terraform for Dify on Google Cloud
April 4, 2025 · View on GitHub

概要
本レポジトリでは、Terraform により自動で Google Cloud のリソースを立ち上げ、Dify を高可用構成でデプロイすることが可能です。
特徴
- サーバーレスホスティング
- オートスケール
- データ永続化
事前準備
- Google Cloud アカウント
- Terraform インストール済み
- gcloud CLI インストール済み
- 必要なAPIの有効化 (Serverless VPC Access, Service Networking, etc.)
設定
terraform/environments/dev/terraform.tfvarsファイルで環境固有の値を設定します。
Warning
セキュリティ警告: terraform.tfvars の取り扱い
リポジトリ内の terraform/environments/dev/terraform.tfvars は テンプレート です。実際の値 (プロジェクトID, 機密情報, 安全なパスワード) はローカルで設定してください。
❗️ 機密情報を含む terraform.tfvars を Git にコミットしないでください。 重大なセキュリティリスクとなります。
誤コミット防止のため、すぐに *.tfvars を .gitignore に追加してください。安全な管理には環境変数 (TF_VAR_...) や Google Secret Manager 等の利用を推奨します。
- terraform stateを管理する用のGCSバケットを事前に作成し、
terraform/environments/dev/provider.tfファイルの "your-tfstate-bucket" を作成したバケット名に書き換えます。
始め方
-
リポジトリをクローン:
git clone https://github.com/DeNA/dify-google-cloud-terraform.git -
Terraformを初期化:
cd terraform/environments/dev terraform init -
Artifact Registry リポジトリを作成:
terraform apply -target=module.registry -
コンテナイメージをビルド&プッシュ:
cd ../../.. sh ./docker/cloudbuild.sh <your-project-id> <your-region>また、dify-api イメージのバージョンを指定することもできます。
sh ./docker/cloudbuild.sh <your-project-id> <your-region> <dify-api-version>バージョンを指定しない場合、デフォルトで最新バージョンが使用されます。
-
Terraformをプランニング:
cd terraform/environments/dev terraform plan -
Terraformを適用:
terraform apply
リソースの削除
terraform destroy
注意: Cloud Storage、Cloud SQL、VPC、およびVPC Peeringは terraform destroy コマンドで削除できません。これらはデータ永続化のための重要なリソースです。コンソールにアクセスして慎重に削除してください。その後、terraform destroy コマンドを使用してすべてのリソースが削除されたことを確認できます。
参照
ライセンス
このソフトウェアはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。