株式会社GENDAの高橋です。
この記事はGENDA Advent Calendar シリーズ4の記事です。
今回は、個人開発のWebアプリをGoogle CloudでデプロイしたらCloud SQLの費用感がネックになったのでSupabaseを使ってみた体験記を書きます。
アプリケーションの内容には触れず、DBインスタンスにまつわる費用感にフォーカスしてご紹介できればなと思います。
構成
今回の構成は以下の通りです。
- フロントエンド
- React Router v7
- SPA構成のWebアプリケーション
- バックエンド
- Go
- Cloud Run
- 認証
- Firebase Authentication
- データベース
- PostgreSQL
- Cloud SQL(後に Supabase へ移行)
- ホスティング
- Firebase Hosting
数人程度による小規模な利用を想定しており、すべて最小構成を前提にしています。
Google Cloudを選んだ理由
これまで業務では、主に以下のようなAWSサービスしか使ったことがありませんでした。
- Amplify
- Cognito
- ECS
Google Cloudは未経験だったため、
- Webコンソールの分かりやすさ
- AWSと比較したときの思想の違い
- フルマネージド構成の体験
- 費用感(これは正直AWSもあまり分かっていない)
これらを実際に触って肌で感じてみたかったというのが理由です。
費用感については、なんとなくではありますが3,000円/月くらいになるのではないか?と予想しておりました。
実装・デプロイについて
アプリケーションコードだけでなく、
- Cloud Runのデプロイ設定
- Firebase Hostingの設定
- 各種デプロイスクリプト
といった部分も含め、ほぼすべてをClaude Codeでバイブコーディングしました。
個人開発での初速という観点では、
- 実装速度
- 試行錯誤のしやすさ
の面で、かなり良い体験でした。
実際の費用感
ここからが本題です。
Cloud SQLのコスト
Cloud SQLは以下の構成で動かしていました。
- リージョン: 東京
- マシンタイプ:
db-f1-micro(最小構成) - 稼働期間: 約半月稼働、10日ほどインスタンス停止で放置
この状態で、おおよそ 5,800 円程度 かかりました。
一方で、
- Cloud Run
- Firebase Hosting
- Firebase Authentication
については、ほぼ無料枠内に収まっていました。
「数人規模の小さなアプリなら、DBもかなり安く済むだろう」と思っていたため、DBだけが明確にネックになった印象です。
流石に個人開発のアプリで月間10,000円オーバーは当初の予想よりだいぶ高くついたので、DBインスタンスのみ他サービスに移行しようと決めました。
Supabaseについて
Supabaseは、PostgreSQLをベースにしたBaaSで、Database / Auth / Storage / Realtime などの機能をまとめて提供しています。
今回の構成では、その中でもDatabase(PostgreSQL)機能のみを利用しており、
認証やAPI、Realtime機能などは使用していません。
Supabaseを選択した理由として大きかったのは、以下の点です。
- 無料プランが用意されている
- 無料プランでも PostgreSQLインスタンスが常時起動
- 個人開発用途として十分なスペック(Nano)
- PostgreSQL互換のため、Cloud SQLからの移行コストが低い
Supabaseの無料プランでは、プロジェクトごとにNanoという最小構成の Postgresインスタンスが割り当てられます。ただし、アクティブにできるプロジェクトは2つまでという制限付きです。
Nano構成は、
- メモリ: 約0.5GB
- ストレージ: 約500MB
- CPU: 共有CPU
という制限はあるものの、
小規模なWebアプリケーションのCRUD処理であれば十分な構成です。
また、SupabaseにはWeb上で完結する管理UIが用意されており、
- テーブルの作成・編集ができる Table Editor
- 任意の SQL を直接実行できる SQL Editor
- インデックスや制約の確認・追加
- スロークエリの一覧・実行時間の確認
といった操作をブラウザ上で行うことができます。
Cloud SQLとSupabase の比較
Cloud SQL(db-f1-micro)と、移行先のSupabase(無料プラン / Nano構成)を比較すると以下のようになります。
スペック・費用比較
| 項目 | Cloud SQL(db-f1-micro) | Supabase(無料プラン/Nano構成) |
|---|---|---|
| 月額費用 | 約数千円〜(常時課金) | 無料 |
| CPU | 共有 vCPU(1 コア相当) | 共有 CPU |
| メモリ | 約 0.6 GB | 約 0.5 GB |
| ストレージ | 最小 10 GB(HDD/SSD選択可能) | 約 500 MB(SSD) |
| データベース | PostgreSQL | PostgreSQL |
| 起動方式 | 常時起動 | 常時起動 |
実運用で感じた差分
-
スペックダウンを感じることはなかった
- メモリはCloud SQLの方がやや多いが、体感差はなし
-
最低コストの差が大きい
- Cloud SQLはアイドル状態でも課金
- Supabaseは無料枠内なら完全に0円
-
小規模CRUD中心の用途では性能差を感じない
- 単純なINSERT / SELECT / UPDATE / DELETE
- 重いJOINや集計クエリなし
実際Supabaseで十分だったか
こちらは実際のDBインスタンスのCPU使用率、メモリ使用率、ディスク帯域幅です。

無料枠でありながらも、余裕があります。
これだけ余裕があるのなら、個人開発でCloud SQLを使用するのはかなりオーバースペックだったのではないかと感じました。
その他Google Cloudで感じたネック
想像していなかったネックな点がGoogle Cloudにはありました。
それは、Webのコンソールが重すぎる点でした。特に請求ページ周りはかなり重い...
重めのゲームが出来るくらいのPCを使用しておりましたがここまで重いWebページを見たのは久々だったくらい重かったです。
実際業務でこの体験をしたら地味にストレス感じるだろうなと思いました。
感じたことまとめ
- DBが結構お金かかるんだなあ
- Supabaseは聞いたことがなかったが、費用感、UI/UXなど含めてかなり良かった
- 今後業務で技術選定をする時はWebコンソールのUI/UXなどの体験も検討材料に含めた方が良いと思った
普段はアプリケーションコードを書く業務が多く占めていて、インフラ周りの知識が乏しかったので今回の個人開発を通して知見を得ることができて良い体験になりました。
