DEV Community

スシロー
スシロー

Posted on

【実体験】個人開発のSaaSサブスク棚卸し:年12万円を削った乗り換え先5選

個人開発のSaaSサブスク棚卸し:年12万円を削った乗り換え先5選

結論

個人開発の固定費は「なんとなく契約した有料SaaS」の積み上げで膨らむ。筆者は5サービスを無料枠 or セルフホストへ乗り換え、月¥10,000・年¥120,000を削った。先に結論だけ:

乗り換え前 月額 乗り換え先 月額 削減/年
Heroku Hobby (2 dyno+DB) ¥2,800 Fly.io / Railway 無料枠 ¥0 ¥33,600
Vercel Pro ¥3,000 Cloudflare Pages ¥0 ¥36,000
Datadog (1 host) ¥2,300 Grafana Cloud Free ¥0 ¥27,600
Mailgun Foundation ¥1,400 Resend 無料枠 ¥0 ¥16,800
Algolia Build超過 ¥500 Meilisearch (self-host) ¥0 ¥6,000

個人開発のトラフィック規模では、有料枠の機能の9割は使っていない。まず棚卸しして「実測値が無料枠に収まるか」を確認するのが先決だ。

根拠:まず実測してから判断する

削減判断は感覚ではなく実測で行う。請求の棚卸しから始める。

# 各サービスのプラン・直近の使用量をスプレッドシートに書き出す
# 例: 直近30日のリクエスト数を確認(nginx access.log の場合)
awk '{print $4}' access.log | grep -c "$(date +%d/%b/%Y)"
# → 1日あたり数千リクエスト程度なら、ほぼ全SaaSの無料枠に収まる
Enter fullscreen mode Exit fullscreen mode

ポイントは「ピーク値」ではなく「実トラフィック」で見ること。個人開発の多くは Vercel/Cloudflare の無料枠(月10万リクエスト〜無制限帯域)に余裕で収まる。

手順

1. ホスティング:Heroku → Fly.io

# fly.io へデプロイ。既存の Dockerfile / buildpack をそのまま使える
curl -L https://fly.io/install.sh | sh
fly launch            # fly.toml を対話生成
fly deploy
fly scale count 1     # 個人開発は1インスタンスで十分
fly postgres create   # 無料相当の small インスタンス
Enter fullscreen mode Exit fullscreen mode

fly scale count 1 と最小VM(shared-cpu-1x)に固定するのがコスト管理の肝。

2. フロント:Vercel Pro → Cloudflare Pages

帯域無制限・ビルド回数の実用上限が緩く、個人開発では Pro 機能(Analytics等)の代替が無料で揃う。

npm i -g wrangler
wrangler pages deploy ./dist --project-name my-app
Enter fullscreen mode Exit fullscreen mode

3. 監視:Datadog → Grafana Cloud Free

Free プランで 10k メトリクス系列・50GBログ・14日保持。Prometheus からそのまま送れる。

# prometheus.yml — remote_write で Grafana Cloud へ転送
remote_write:
  - url: https://prometheus-prod-XX.grafana.net/api/prom/push
    basic_auth:
      username: "123456"
      password: "${GRAFANA_CLOUD_API_KEY}"
Enter fullscreen mode Exit fullscreen mode

4. メール:Mailgun → Resend

無料枠で月3,000通・1日100通。トランザクションメール中心の個人開発には十分。

curl -X POST 'https://api.resend.com/emails' \
  -H "Authorization: Bearer $RESEND_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "from": "you@yourdomain.dev",
    "to": "user@example.com",
    "subject": "Welcome",
    "html": "<p>Thanks for signing up!</p>"
  }'
Enter fullscreen mode Exit fullscreen mode

5. 全文検索:Algolia → Meilisearch セルフホスト

すでに動いているVPSの空きリソースに同居させれば追加費用ゼロ。

docker run -d --name meili -p 7700:7700 \
  -e MEILI_MASTER_KEY="$MEILI_KEY" \
  -v $PWD/meili_data:/meili_data \
  getmeili/meilisearch:v1.10

# インデックス投入
curl -X POST 'http://localhost:7700/indexes/posts/documents' \
  -H "Authorization: Bearer $MEILI_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @posts.json
Enter fullscreen mode Exit fullscreen mode

乗り換え時の注意

  • 無料枠の超過挙動を必ず確認:自動課金されるサービス(Fly等)はハードリミットを設定。fly scale で上限を固定する。
  • ベンダーロックインの薄い構成を選ぶ:Cloudflare Pages / Meilisearch は Docker・標準API中心で、再移行コストが低い。
  • 段階移行:DNSの切り替えは TTL を短く(300秒)してから行い、旧サービスは1課金サイクル並走させて切り戻し可能にする。

棚卸しは一度やれば翌年以降も効く固定費削減だ。まず請求書を全部開き、実測トラフィックを無料枠と突き合わせるところから始めてほしい。


関連リンク

※一部にアフィリエイトリンク・自社商品を含みます。

Top comments (0)