Appearance
インフラ概要
LiGA を本番運用するためのクラウド構成と、staging 環境の現状。
全体像
| レイヤ | サービス | プラン |
|---|---|---|
| Web (Next.js) | Netlify Pro | $20/月 / 1 site (branch deploy で staging + prod) |
| API (Hono) | Cloud Run v2 | 従量課金 (min=0 staging / min=1 prod) |
| DB | Cloud SQL (PostgreSQL 17) | staging: db-f1-micro / prod: db-custom-1-3840 |
| 画像 | Cloudflare R2 | Free (10GB) |
| 決済 | Stripe | test mode (staging) / live mode (prod) |
| メール | SendGrid | Free (100/日) |
| 監視 | Sentry | Free (5,000 エラー/月) |
| Source | GitHub (astyleinc/liga-mono) | 後日 顧客 Org へ Transfer |
IaC 方針
- Terraform で GCP のリソースを全て管理 (
infra/terraform/) - 同 GCP project に staging + prod を同居、リソース名 / Secret / SA は
_${env}で suffix 付与 - State は GCS バケット (
<project-id>-tf-state)、prefix で env 別管理 - 機密値は Secret Manager の slot だけ TF が作り、値は外部投入 (state に乗らない)
- IAM は per-resource に scope して、staging SA が prod の secret を読めない設計
詳細は IaC 設計と運用。
staging 環境の現状
| 進捗 | 内容 |
|---|---|
| ✅ | GCP プロジェクト作成 & 招待受領 (project-0fccf552-fc68-4756-9c1) |
| ✅ | Netlify Site 作成 (liga-staging) + GitHub 連携 |
| ✅ | Terraform で Cloud SQL / Cloud Run / IAM / WIF / Secret slot 作成 |
| ✅ | Secret 値 12 個投入 (BETTER_AUTH / Stripe test / その他 TODO) |
| ✅ | DB マイグレ + seed 完了 (大会 9 件) |
| ✅ | GitHub Secrets / Variables 投入 (staging Environment) |
| ✅ | Netlify env vars 投入 (production context、DATABASE_URL は public IP + sslmode=no-verify) |
| ✅ | Cloud SQL に authorized_networks 0.0.0.0/0 追加 (staging のみ) |
| ✅ | Cloud Run 初回 deploy (Dockerfile 修正 × 2 後に成功) |
| ✅ | Netlify 再 deploy で env 反映 |
| ✅ | 動作確認 — https://liga-staging.netlify.app/ で HTTP 200 🎉 |
| ✅ | Stripe webhook URL 登録 (we_xxx + whsec_... 投入、stripe trigger で署名検証通過確認) |
| ✅ | 管理者アカウント作成 (j.myoga.work@gmail.com → role=admin) |
| ⬜ | (リリース直前) Cloud SQL を Private IP に切替 |
| ⬜ | (ドメイン取得後) 独自ドメイン + SendGrid + OAuth リダイレクト URI 更新 |
詳細手順は staging 立ち上げログ。 開発中の反映 / マイグレ / 巻き戻しは 開発フロー。
料金目安
- staging のみ: 約 ¥4,800〜5,600 / 月
- staging + prod (本番化後): 約 ¥9,200〜11,000 / 月
- 初回 90 日は GCP $300 Free Trial で実質 ¥3,000 / 月
詳細は 料金見積もり。
関連ドキュメント
- サーバー構成 (アーキテクチャ) — 設計思想
- 認証 / 認可 — Better Auth 周り
- data-model — DB スキーマ