はじめに

本記事では、Google Cloud Platform(GCP)上でオープンソースのLLMアプリケーション開発プラットフォーム「Dify」を構築する手順を、中級者向けに詳しく解説します。アカウント作成からDockerによる本番環境構築、ネットワーク設定まで、実務で必要となる全工程を網羅しています。

本記事で習得できる内容

  • Google Cloudの初期セットアップとプロジェクト管理
  • gcloud CLIを用いたインフラストラクチャのコード化
  • Compute EngineによるVM管理
  • Dockerを活用したコンテナ環境の構築
  • GCPファイアウォールの適切な設定

前提知識

  • 基本的なLinuxコマンドの理解
  • Dockerの基礎知識
  • クラウドインフラの概念理解

第1章:Google Cloud環境の準備

1.1 Googleアカウントの要件

Google Cloudは既存のGoogleアカウントで利用可能です。以下のいずれかをご用意ください。

  • 個人用Gmailアカウント
  • Google Workspace(旧G Suite)アカウント
  • 教育機関提供のGoogleアカウント

1.2 Google Cloudへの登録

Google Cloud Console(https://console.cloud.google.com/)にアクセスし、アカウント登録を行います。

初回登録時のポイント:

  • 無料トライアル期間では300ドル相当のクレジットが付与されます
  • クレジットカード登録は必須ですが、明示的なアップグレード操作なしに課金されることはありません
  • 無料枠(Always Free)の範囲内であれば、トライアル終了後も継続利用が可能です

1.3 プロジェクトの作成と管理

Google Cloudでは、すべてのリソースがプロジェクト単位で管理されます。これはリソースの論理的な分離とコスト管理を容易にする設計思想に基づいています。

作成手順:

  1. Cloud Consoleの上部ナビゲーションバーからプロジェクト選択ドロップダウンをクリック
  2. 「新しいプロジェクト」を選択
  3. プロジェクト名を入力(例:dify-production
  4. 組織を選択(個人利用の場合は「組織なし」で問題ありません)
  5. 「作成」をクリック

命名規則のベストプラクティス: プロジェクト名は環境や用途を明確にすることを推奨します(例:dify-devdify-stagingdify-prod)。


第2章:gcloud CLIのセットアップ

2.1 macOSへのインストール

Homebrewを使用する場合、以下のコマンドで一括インストールが可能です。

brew install --cask google-cloud-sdk

インストール後、ターミナルを再起動し、以下で確認します。

gcloud version

2.2 Windowsへのインストール

公式インストーラーを使用します。

  1. Google Cloud SDK公式ページからWindows版をダウンロード
  2. インストーラーを実行し、デフォルト設定で進行
  3. PowerShellまたはコマンドプロンプトで確認
gcloud version

2.3 認証とプロジェクト設定

認証の実行:

gcloud auth login

このコマンドを実行すると、デフォルトブラウザが開き、OAuth 2.0認証フローが開始されます。Googleアカウントでログインし、必要な権限を付与してください。

認証状態の確認:

gcloud auth list

プロジェクトの設定:

作成したプロジェクトをデフォルトに設定します。

gcloud config set project [PROJECT_ID]

プロジェクトIDはCloud Consoleの「プロジェクト設定」ページで確認できます。

設定の確認:

gcloud config get-value project

2.4 必要なAPIの有効化

Compute Engine APIを有効化します。これはVM作成に必須のステップです。

gcloud services enable compute.googleapis.com

第3章:Compute EngineによるVM構築

3.1 VMインスタンスの作成

以下のコマンドでUbuntu 22.04 LTSを搭載したVMインスタンスを作成します。

gcloud compute instances create dify-vm \
  --zone=asia-northeast1-a \
  --machine-type=e2-standard-4 \
  --image-family=ubuntu-2204-lts \
  --image-project=ubuntu-os-cloud \
  --boot-disk-size=50GB

パラメータの解説:

  • --zone: 東京リージョン(asia-northeast1-a)を指定
  • --machine-type: 4vCPU、16GBメモリの構成(Difyの推奨スペック)
  • --image-family: Ubuntu 22.04 LTSの最新イメージを自動選択
  • --boot-disk-size: ブートディスクサイズを50GBに設定

3.2 SSH接続の確立

gcloud compute ssh dify-vm --zone=asia-northeast1-a

接続が成功すると、プロンプトが以下のように変化します。

username@dify-vm:~$

この状態では、すべてのコマンドがリモートVMインスタンス上で実行されます。


第4章:Docker環境の構築

4.1 システムの更新

まず、パッケージリストとインストール済みパッケージを最新化します。

sudo apt update
sudo apt upgrade -y

4.2 Dockerのインストール

Dockerエンジンのインストール:

sudo apt install -y docker.io

インストールの確認:

docker --version

4.3 Docker Compose Pluginのセットアップ

Ubuntu標準リポジトリからインストールしたdocker.ioには、Docker Compose Pluginが含まれていません。Docker公式リポジトリから取得する必要があります。

前提パッケージのインストール:

sudo apt update
sudo apt install -y ca-certificates curl gnupg

Docker公式GPGキーの追加:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Docker公式リポジトリの登録:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

パッケージリストの更新:

sudo apt update

Docker Compose Pluginのインストール:

sudo apt install -y docker-compose-plugin

バージョン確認:

docker compose version

4.4 ユーザー権限の設定

sudoなしでDockerコマンドを実行できるよう、現在のユーザーをdockerグループに追加します。

sudo usermod -aG docker $USER

セッションの再開:

設定を反映させるため、一度ログアウトして再接続します。

exit
gcloud compute ssh dify-vm --zone=asia-northeast1-a

権限確認:

docker ps

エラーなく実行できれば設定完了です。


第5章:Difyのデプロイメント

5.1 作業ディレクトリの準備

sudo mkdir -p /opt/dify
sudo chown -R $USER:$USER /opt/dify
cd /opt/dify

/optディレクトリはUnix系OSにおいて、サードパーティアプリケーション用の標準的な配置場所です。

5.2 Difyリポジトリのクローン

git clone https://github.com/langgenius/dify.git .

末尾の.(ドット)により、現在のディレクトリ直下にクローンされます。

ディレクトリ構造の確認:

ls -la

dockerディレクトリが存在することを確認してください。

5.3 Docker Composeによる起動

cd /opt/dify/docker
docker compose up -d

-dオプションによりバックグラウンドで実行されます。

コンテナ状態の確認:

docker ps

すべてのコンテナがUp状態であることを確認します。


第6章:ネットワーク設定とアクセス確認

6.1 外部IPアドレスの取得

方法1:gcloudコマンドによる取得(推奨)

gcloud compute instances describe dify-vm \
  --zone=asia-northeast1-a \
  --format='get(networkInterfaces[0].accessConfigs[0].natIP)'

方法2:Cloud Consoleからの確認

  1. Cloud Console → Compute Engine → VMインスタンス
  2. dify-vmの行の「外部IP」列を確認

注意事項: 内部IPアドレス(10.x.x.x、192.168.x.xなど)はVPC内部専用です。インターネットからのアクセスには外部IPを使用します。

6.2 ファイアウォールルールの設定

重要な認証スコープに関する注意:

ファイアウォールルールの作成はVMインスタンス内からではなく、ローカルマシンから実行してください。VMインスタンスに付与された認証スコープでは、ファイアウォール操作の権限が不足する場合があります。

ローカルマシンで実行:

gcloud compute firewall-rules create allow-http-https \
  --allow tcp:80,tcp:443 \
  --direction=INGRESS \
  --priority=1000 \
  --network=default \
  --source-ranges=0.0.0.0/0

パラメータの説明:

  • --allow tcp:80,tcp:443: HTTP(80)とHTTPS(443)ポートを許可
  • --direction=INGRESS: 外部からの受信トラフィック
  • --priority=1000: ルールの優先度(数値が小さいほど優先)
  • --network=default: デフォルトVPCネットワークに適用
  • --source-ranges=0.0.0.0/0: すべてのIPアドレスからのアクセスを許可

セキュリティ上の考慮事項: 本番環境では、--source-rangesを特定のIPアドレス範囲に制限することを強く推奨します。

ファイアウォールルールの確認:

gcloud compute firewall-rules list --filter="name=allow-http-https"

6.3 アクセス確認

VMインスタンス内からの確認:

curl http://localhost

HTMLレスポンスが返却されれば、Difyは正常に起動しています。

ブラウザからのアクセス:

http://[外部IPアドレス]

Difyの初期設定画面が表示されれば、デプロイメント成功です。


トラブルシューティング

ケース1:ブラウザからアクセスできない

確認項目:

  1. コンテナの起動状態 docker ps すべての必要なコンテナがUp状態か確認
  2. ポートのリスニング状態 sudo ss -lntp | grep :80 ポート80でプロセスがリスニングしているか確認
  3. ファイアウォールルール Cloud Console → VPCネットワーク → ファイアウォールで、TCP 80/443が許可されているか確認

ケース2:docker compose up時のエラー

権限エラーの場合: dockerグループへの追加後、セッションを再起動しているか確認してください。

ポート競合の場合: 既存のプロセスがポート80を使用していないか確認します。

sudo lsof -i :80

まとめ

本記事では、Google Cloud Platform上でDifyを構築する一連のプロセスを解説しました。以下のスキルセットが習得できています。

  • gcloud CLIを使用したインフラストラクチャ管理
  • Compute Engineの適切な設定とセキュリティ管理
  • Dockerベースのアプリケーションデプロイメント
  • GCPネットワーキングの基礎

次のステップ

  • Difyの初期設定とLLMプロバイダーの接続
  • HTTPSの設定(Let’s Encryptの導入)
  • Cloud Load Balancingによる高可用性構成
  • Cloud Monitoringによるメトリクス監視

リソース


本記事が役立った場合は、ぜひシェアやフィードバックをお願いします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です