Summary
Cloud SQL for PostgreSQL を使用して、Google Cloud Run 上に AnythingMCP をサーバーレスコンテナとしてデプロイします。スケーラブルで、使用量に応じた料金の MCP ゲートウェイです。
なぜ Google Cloud Run?
Cloud Run を使用すると、サーバーを管理することなくコンテナを実行できます。Cloud SQL for PostgreSQL と組み合わせることで、スケーラブルで使用量に応じたデプロイメントを提供します。HTTPS は自動的に処理されるため、リバースプロキシは必要ありません。
これは VM ベースのデプロイメントよりも高度です。Cloud Run では setup.sh を実行できないため、イメージをビルドし、プッシュし、環境変数を手動で設定する必要があります。
前提条件
- 請求が有効な GCP アカウント
- gcloud CLI がインストールされ、認証されていること
- ローカルに Docker がインストールされていること
gcloud config set project YOUR_PROJECT_ID
gcloud config set run/region europe-west1
gcloud services enable \
run.googleapis.com \
sqladmin.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com
Cloud SQL のセットアップ
gcloud sql instances create anythingmcp-db \
--database-version=POSTGRES_16 \
--tier=db-f1-micro \
--region=europe-west1
gcloud sql databases create anythingmcp --instance=anythingmcp-db
gcloud sql users create amcp \
--instance=anythingmcp-db \
--password=YOUR_DB_PASSWORD
インスタンス接続名(例: project-id:europe-west1:anythingmcp-db)をメモしてください。
イメージのビルドとプッシュ
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp
# オプション A: ローカルでビルド
docker build -t europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest .
docker push europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
# オプション B: Cloud Build を使用してビルド
gcloud builds submit --tag europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
シークレットの生成
setup.sh が Cloud Run で実行できないため、シークレットを手動で生成します:
JWT_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 16)
NEXTAUTH_SECRET=$(openssl rand -hex 32)
Cloud Run へのデプロイ
gcloud run deploy anythingmcp \
--image=europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest \
--allow-unauthenticated \
--port=4000 \
--min-instances=1 \
--max-instances=5 \
--memory=512Mi \
--cpu=1 \
--set-env-vars="NODE_ENV=production" \
--set-env-vars="DATABASE_URL=postgresql://amcp:YOUR_DB_PASSWORD@localhost:5432/anythingmcp" \
--set-env-vars="JWT_SECRET=$JWT_SECRET" \
--set-env-vars="ENCRYPTION_KEY=$ENCRYPTION_KEY" \
--set-env-vars="NEXTAUTH_SECRET=$NEXTAUTH_SECRET" \
--set-env-vars="MCP_AUTH_MODE=oauth2" \
--add-cloudsql-instances=YOUR_PROJECT_ID:europe-west1:anythingmcp-db
--min-instances=1 はコールドスタートを回避します。Cloud SQL プロキシは Unix ソケットを使用するため、DATABASE_URL では localhost が機能します。
カスタムドメイン(オプション)
gcloud run domain-mappings create \
--service=anythingmcp \
--domain=mcp.example.com \
--region=europe-west1
出力の DNS 指示に従ってください。SSL は自動的にプロビジョニングされます。
制限事項
- ステートレス — Cloud Run インスタンスは一時的です。すべてのデータは Cloud SQL に保存する必要があります。
- コールドスタート —
--min-instances=1を使用して緩和します(小さなコスト)。 - setup.sh がない — すべての設定はデプロイ時の環境変数を介して行われます。
- コスト — Cloud Run はリクエストごとに + vCPU 時間を請求します。Cloud SQL には固定の月額料金があります。
更新
git pull
docker build -t europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest .
docker push europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
gcloud run deploy anythingmcp \
--image=europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest \
--region=europe-west1
既存の環境変数と Cloud SQL 接続は再デプロイ時に保持されます。
このガイドは役に立ちましたか?