Supabase2025/7/1013分で読める
🙌

Supabaseの無料枠とProプラン、実際のところどうなの?2025年最新版

D

Dev.AI Team

AI開発エンジニア

フォロワー 12.5K

Supabaseの無料枠とProプラン、実際のところどうなの?2025年最新版

はじめに:500MBの壁にぶつかった日

先月、個人プロジェクトでSupabaseを使っていたら、突然「cannot execute INSERT in a read-only transaction」というエラーが出て、焦った経験をしました。原因は単純で、データベース容量が500MBの制限に達していた んです。

Supabaseの無料枠は「太っ腹」と評判ですが、実際に使ってみると意外な落とし穴があることがわかりました。今回は、無料枠とProプランの制限について、実際の開発者の声も交えながら詳しく解説していきます。

無料枠の制限、実際どこまで使える?

データベースサイズ500MBの現実

無料枠で最も厳しい制限がこれです。500MBというと結構余裕があるように見えますが、ユーザーデータやログが蓄積していくと、意外とあっという間に到達します。

ある開発者は「毎日新しいレコードを追加して、同じ量の古いレコードを削除、そしてVACUUMコマンドを実行する」という綱渡りのような運用をしていました。しかも、ダッシュボードの表示が実際のサイズと乖離することがあり(実際488MB vs 表示868MB)、管理が難しいという声も。

制限に達すると何が起きる?

  • データベースが読み取り専用モードになる
  • INSERT、UPDATE、DELETEができなくなる
  • ユーザーからすると「サービスが壊れた」ように見える

その他の主要な制限

無料枠の制限一覧:
- ストレージ: 1GB
- 帯域幅: 5GB/月
- 月間アクティブユーザー: 50,000人
- Edge Functions: 500,000回/月
- リアルタイム接続: 200接続
- ログ保持: 1日間
- 自動バックアップ: なし
- プロジェクト数: 最大2つ
plain text

特に注意すべきはプロジェクトの自動停止機能。7日間アクセスがないと自動的に停止され、復旧は手動で行う必要があります。 しかも2024年6月からは、停止されたプロジェクトは90日間しか復旧できません。

メール送信制限の罠

認証機能を使う場合、デフォルトのSMTPサーバーでは1時間に3通しかメールを送れません。 ![Supabase Authentication “Email rate limit exceeded” preventing development - Stack Overflow](claude-citation:/icon.png?validation=C36E8166-9294-44A7-8986-2FDBA60D0271&citation=eyJlbmRJbmRleCI6MTAxMiwibWV0YWRhdGEiOnsiaWNvblVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvczJcL2Zhdmljb25zP3N6PTY0JmRvbWFpbj1zdGFja292ZXJmbG93LmNvbSIsInByZXZpZXdUaXRsZSI6IlN1cGFiYXNlIEF1dGhlbnRpY2F0aW9uIFwiRW1haWwgcmF0ZSBsaW1pdCBleGNlZWRlZFwiIHByZXZlbnRpbmcgZGV2ZWxvcG1lbnQgLSBTdGFjayBPdmVyZmxvdyIsInNvdXJjZSI6IlN0YWNrIE92ZXJmbG93IiwidHlwZSI6ImdlbmVyaWNfbWV0YWRhdGEifSwic291cmNlcyI6W3siaWNvblVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvczJcL2Zhdmljb25zP3N6PTY0JmRvbWFpbj1zdGFja292ZXJmbG93LmNvbSIsInNvdXJjZSI6IlN0YWNrIE92ZXJmbG93IiwidGl0bGUiOiJTdXBhYmFzZSBBdXRoZW50aWNhdGlvbiBcIkVtYWlsIHJhdGUgbGltaXQgZXhjZWVkZWRcIiBwcmV2ZW50aW5nIGRldmVsb3BtZW50IC0gU3RhY2sgT3ZlcmZsb3ciLCJ1cmwiOiJodHRwczpcL1wvc3RhY2tvdmVyZmxvdy5jb21cL3F1ZXN0aW9uc1wvNzgyODg2MzdcL3N1cGFiYXNlLWF1dGhlbnRpY2F0aW9uLWVtYWlsLXJhdGUtbGltaXQtZXhjZWVkZWQtcHJldmVudGluZy1kZXZlbG9wbWVudCJ9XSwic3RhcnRJbmRleCI6OTc0LCJ0aXRsZSI6IlN0YWNrIE92ZXJmbG93IiwidXJsIjoiaHR0cHM6XC9cL3N0YWNrb3ZlcmZsb3cuY29tXC9xdWVzdGlvbnNcLzc4Mjg4NjM3XC9zdXBhYmFzZS1hdXRoZW50aWNhdGlvbi1lbWFpbC1yYXRlLWxpbWl0LWV4Y2VlZGVkLXByZXZlbnRpbmctZGV2ZWxvcG1lbnQiLCJ1dWlkIjoiZWUyMzgwNjgtMDZmMi00Zjc0LWEzZTktNzc4OTY1Y2I2OTU3In0%3D “Supabase Authentication “Email rate limit exceeded” preventing development - Stack Overflow”)ユーザー登録のテスト中にこの制限に引っかかって、「なんでメールが届かないんだ?」と悩んだ開発者も多いはず。

回避策:Gmail SMTPの設定

Host: smtp.gmail.com
Port: 465 (SSL) または 587 (TLS)
認証: Googleアカウントの2段階認証とアプリパスワード
plain text

設定後は1時間に30通まで送信可能になります。 ![Supabase Authentication “Email rate limit exceeded” preventing development - Stack Overflow](claude-citation:/icon.png?validation=C36E8166-9294-44A7-8986-2FDBA60D0271&citation=eyJlbmRJbmRleCI6MTIwMywibWV0YWRhdGEiOnsiaWNvblVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvczJcL2Zhdmljb25zP3N6PTY0JmRvbWFpbj1zdGFja292ZXJmbG93LmNvbSIsInByZXZpZXdUaXRsZSI6IlN1cGFiYXNlIEF1dGhlbnRpY2F0aW9uIFwiRW1haWwgcmF0ZSBsaW1pdCBleGNlZWRlZFwiIHByZXZlbnRpbmcgZGV2ZWxvcG1lbnQgLSBTdGFjayBPdmVyZmxvdyIsInNvdXJjZSI6IlN0YWNrIE92ZXJmbG93IiwidHlwZSI6ImdlbmVyaWNfbWV0YWRhdGEifSwic291cmNlcyI6W3siaWNvblVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvczJcL2Zhdmljb25zP3N6PTY0JmRvbWFpbj1zdGFja292ZXJmbG93LmNvbSIsInNvdXJjZSI6IlN0YWNrIE92ZXJmbG93IiwidGl0bGUiOiJTdXBhYmFzZSBBdXRoZW50aWNhdGlvbiBcIkVtYWlsIHJhdGUgbGltaXQgZXhjZWVkZWRcIiBwcmV2ZW50aW5nIGRldmVsb3BtZW50IC0gU3RhY2sgT3ZlcmZsb3ciLCJ1cmwiOiJodHRwczpcL1wvc3RhY2tvdmVyZmxvdy5jb21cL3F1ZXN0aW9uc1wvNzgyODg2MzdcL3N1cGFiYXNlLWF1dGhlbnRpY2F0aW9uLWVtYWlsLXJhdGUtbGltaXQtZXhjZWVkZWQtcHJldmVudGluZy1kZXZlbG9wbWVudCJ9XSwic3RhcnRJbmRleCI6MTE4MCwidGl0bGUiOiJTdGFjayBPdmVyZmxvdyIsInVybCI6Imh0dHBzOlwvXC9zdGFja292ZXJmbG93LmNvbVwvcXVlc3Rpb25zXC83ODI4ODYzN1wvc3VwYWJhc2UtYXV0aGVudGljYXRpb24tZW1haWwtcmF0ZS1saW1pdC1leGNlZWRlZC1wcmV2ZW50aW5nLWRldmVsb3BtZW50IiwidXVpZCI6IjBkYzdiYWNiLTg2ZDctNGIyNi04YjM2LWUzYmJmMTQ4NmQxNyJ9 “Supabase Authentication “Email rate limit exceeded” preventing development - Stack Overflow”)

Proプランは本当に月額$25なのか?

基本料金の内訳

Proプランの料金体系、実は少し複雑です:

  • 基本料金: $25/月
  • コンピュートクレジット: $10/月(Microインスタンス相当)
  • 追加プロジェクト: 約$10/月

つまり、最低でも月額$25かかりますが、実際にはコンピュートインスタンスの料金が別途必要になることがあります。

Proプランで拡張される制限

Proプランの制限:
- データベース: 8GB(超過分 $0.125/GB)
- MAU: 100,000人(超過分 $0.00325/MAU)
- ストレージ: 100GB(超過分 $0.021/GB)
- 帯域幅: 250GB(超過分 $0.09/GB)
- Edge Functions: 200万回(超過分 $2/100万回)
- リアルタイム接続: 500接続
- ログ保持: 7日間
- 自動バックアップ: 7日間
plain text

コンピュートインスタンスの選択

意外と知られていないのが、インスタンスサイズの選択肢の豊富さ:

Micro: $10/月(2コア、1GB RAM)← コンピュートクレジットでカバー
Small: $15/月(2コア、2GB RAM)
Medium: $60/月(2コア、4GB RAM)
Large: $110/月(2コア、8GB RAM)
plain text

小規模なプロジェクトならMicroで十分ですが、トラフィックが増えてくると上位プランが必要になってきます。

いつProプランに移行すべき?実際の判断基準

移行を検討すべき4つのサイン

  1. データベース容量が400MB(80%)を超えた
  • 余裕を持って移行準備を始める
  • データクリーンアップでは限界がある
  1. 月間アクティブユーザーが40,000人を超えた
  • 成長予測を立てて早めに判断
  • 突然の制限は避けたい
  1. 商用サービスをローンチする
  • 7日間の自動停止は致命的
  • バックアップも必須
  1. パフォーマンスに不満が出てきた
  • 無料枠は共有リソース
  • レスポンスタイムが安定しない

実際の移行事例

  • *Mobbin(デザイン参考ツール)**は20万人のユーザーをFirebaseからSupabaseに移行し、コストと性能の両面で改善を実現。一方で、**Shotgun(イベントプラットフォーム)**は83%のコスト削減を達成しています。

開発者が陥りやすい落とし穴と対策

1. 予期しない課金

「APIコールは無制限無料」という表記を見て安心していたら、エグレス(データ転送)料金で課金されたケースも。 5秒間隔でポーリングしていたアプリが、想定外の転送量になっていた例もあります。

対策:Spend Cap機能を活用

  • Proプランではデフォルトで有効
  • 予算を超えたらサービスが停止(課金は防げる)

2. プロジェクト自動停止の対策

GitHub Actionsで定期的にpingを送る方法が人気:

name: Keep Supabase Alive
on:
  schedule:
    - cron: '0 9 * * 1,4'  # 週2回実行
jobs:
  ping:
    runs-on: ubuntu-latest
    steps:
      - name: Ping Supabase
        run: |
          curl -X GET "${{ secrets.SUPABASE_URL }}/rest/v1/keep_alive" \\
          -H "apikey: ${{ secrets.SUPABASE_ANON_KEY }}"
yaml

3. データベースサイズの監視

定期的にサイズをチェックする習慣をつけましょう:

-- 実際のデータベースサイズを確認
SELECT sum(pg_database_size(pg_database.datname)) / (1024 * 1024) as db_size_mb
FROM pg_database;
sql

2024年の最新アップデート

改善された点

  1. 組織ベースの課金システム
  • 複数プロジェクトを効率的に管理
  • クォータが組織全体で共有
  1. エグレス制限の緩和
  • 無料枠: 4GB → 5GB/月に増加
  1. データベース制限の明確化
  • アクティブプロジェクトごとに500MB
  • 削除・停止プロジェクトはカウントされない

まだ改善されていない点

無料枠($0)とProプラン($25)の間に中間プランがないことに対して、多くの開発者から不満の声が上がっています。GitHubのIssueには「$10プランを作って」という要望が88個の👍を集めていました。

まとめ:結局どう使うのが正解?

無料枠が向いているケース

  • 個人の趣味プロジェクト
  • プロトタイプ開発
  • 学習目的
  • トラフィックが少ないツール

Proプランへの移行が必要なケース

  • 商用サービス
  • データが着実に増えるサービス
  • 安定性が求められるアプリ
  • チーム開発

実践的なアドバイス

  1. 最初から監視体制を整える
  • データベースサイズ
  • エグレス使用量
  • MAU数
  1. 早めの移行判断
  • 制限の80%で検討開始
  • 余裕を持った計画
  1. コスト最適化
  • 不要データの定期削除
  • 適切なインデックス設計
  • キャッシュの活用

Supabaseは確かに素晴らしいサービスですが、無料枠の制限を理解して使わないと、ある日突然サービスが止まって焦ることになります。 特にデータベースの500MB制限は、思っているより早く到達するので要注意です。

一方で、Proプランは月額$25と聞くと高く感じるかもしれませんが、提供される機能と安定性を考えると、商用利用では十分にペイする価格設定だと思います。 FirebaseやAWSと比較しても、予測可能な料金体系は大きな魅力です。

個人的には、本番環境に移行する前の段階で一度Proプランを試してみることをお勧めします。無料枠との違いを実感できますし、本格運用時の判断材料にもなるはずです。

タグ

著者について

D

Dev.AI Team

AI開発エンジニア。生成AIを活用した開発手法の研究と実践に従事。 最新のAI技術を使った効率的な開発方法を日々探求しています。