【個人開発の運用】Sentry無料枠で月5000エラーまで完全監視する設定ガイド2026
ユーザーからの「動きません」通知で初めてバグに気づいていませんか?
結論: Sentryの無料枠 (Developer Plan / 月5000エラー) で、個人開発レベルの監視は十分カバーできます。 Next.js 16 プロジェクトなら導入は10分、Slack通知まで含めて¥0で完結します。
筆者はKOBO(Next.js 16 + Supabase + Stripe の有料SaaS)とmasatoman.net(MDXブログ)を運用中。以前はエラー通知なしで「ユーザーのDMで初めて500エラーに気づく」状態でした。Sentry導入後、月の本当のエラー件数は平均 120 件程度で、無料枠 5000 イベントに対して 2.4% の消化率。個人開発では有料プランはまず不要です。
無料枠の本当の制限 (2026-04 verified)
公式ドキュメントより、Developer Plan の制限は以下です。
| 項目 | 無料枠 | 個人開発で足りるか |
|---|---|---|
| エラーイベント | 5,000 / 月 | ✅ 十分(平均消化 3% 程度) |
| スパン (トレース) | 5,000,000 / 月 | ✅ 個人開発では使い切らない |
| Replay | 50 / 月 | 🟡 重大バグ再現用に予約 |
| データ保持 | 30 日 | ✅ 問題なし |
| ユーザー数 | 1 | 🟡 1人運用なら問題なし(複数人は Team〜) |
最大の注意点は、月 5,000 イベント枠が組織全体で共有されること。 プロジェクト自体は無料でも無制限に作れますが、複数サービスを動かすと 5,000 枠を取り合うことになります。複数運用のコツは後述します。
Sentry の料金プラン全体(2026-06 verified)— 個人開発はどこから課金?
無料枠だけ見ても「で、有料はいくらから?」が分からないと判断できないので、全プランを並べます。
| プラン | 月額 | エラー/月 | ユーザー | データ保持 | 個人開発の使いどころ |
|---|---|---|---|---|---|
| Developer(無料) | $0 | 5,000 | 1 | 30 日 | ✅ 個人開発はまずここで十分 |
| Team | $26(年払い) | 50,000 | 無制限 | 最大 90 日 | チーム/受託で人を増やす時 |
| Business | $80(年払い) | 50,000 | 無制限 | 最大 90 日 | SAML/高度なクォータ管理が要る時 |
| Enterprise | 要見積 | カスタム | 無制限 | カスタム | HIPAA/SOC2 等の法令対応 |
個人開発が有料に上げる損益分岐はシンプルで、「①月 5,000 エラーを超える」か「②複数人で使いたい」のどちらか。 筆者は月平均 120 エラー(無料枠の 2.4%)なので、エラー数で課金に届くことは当面ありません。むしろ Team に上がる理由は「1 ユーザー制限」=人を増やす時の方が先に来ます。
課金は超過分の従量 (pay-as-you-go) と予約枠 (reserved) が選べます。無料枠を超え始めても、いきなり Team 固定にせず従量で様子を見るのが安全です。
Next.js 16 への導入手順 (10 分)
1. SDK インストール
npx @sentry/wizard@latest -i nextjs
ウィザードが sentry.client.config.ts / sentry.server.config.ts / sentry.edge.config.ts と next.config.js のラップを自動生成します。
2. DSN を環境変数に
# .env.local
NEXT_PUBLIC_SENTRY_DSN=https://xxxxx@oXXXXXX.ingest.sentry.io/XXXXXXX
SENTRY_AUTH_TOKEN=sntrys_xxxxxxxxxxxx
Vercel にも同じ値を登録。SENTRY_AUTH_TOKEN は本番ビルド時の source map アップロードに必須です。
3. ノイズ除去フィルタを入れる
Developer Plan で 5000 / 月を食い潰す最大要因は、拡張機能由来の ResizeObserver loop limit exceeded やボット由来の 404 です。
// sentry.client.config.ts
Sentry.init({
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
tracesSampleRate: 0.1,
replaysSessionSampleRate: 0,
replaysOnErrorSampleRate: 1.0,
ignoreErrors: [
"ResizeObserver loop limit exceeded",
"Non-Error promise rejection captured",
/chrome-extension:\/\//,
],
beforeSend(event, hint) {
// 404 は通知しない
const status = (hint?.originalException as { statusCode?: number })?.statusCode;
if (status === 404) return null;
return event;
},
});
tracesSampleRate: 0.1 は スパン (トレース) 消費の節約のため。個人開発では 10% サンプリングで十分です。
Slack 通知を ¥0 で飛ばす
Sentry 側の Integration → Slack を接続し、Alerts で以下を設定。
- Issue Alerts: 新規エラー(初回発火)のみ通知
- Metric Alerts: 5 分間で 10 件以上同一エラー(スパイク検知)
- 環境フィルタ:
environment:productionのみ
開発中のローカル例外まで飛ばすと Slack が荒れます。environment を process.env.VERCEL_ENV で明示するのが鉄則です。
Sentry.init({
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
environment: process.env.VERCEL_ENV ?? "development",
});
複数サービスを無料枠で回すコツ(イベント枠は共有)
プロジェクトは無料でも無制限に作れます。ただし月 5,000 イベントは組織全体で共有なので、サービスを増やすほど 1 つあたりの余力は減ります。プロジェクトを分けるより、1 プロジェクトに集約して tags でサービスを分ける方が、合計消費を一目で管理できます。
Sentry.init({
// ...
initialScope: {
tags: { service: "kobo-web" }, // サービスごとに変える
},
});
Sentry UI 側で service:kobo-web service:masatoman-net などで絞り込めば、混在しても困りません。有料化(月 $26〜)する前に、まずこの運用で粘るのが個人開発流です。
まとめ
| やること | 所要時間 |
|---|---|
npx @sentry/wizard で導入 | 3 分 |
| ノイズ除去フィルタを入れる | 3 分 |
| Slack Integration 接続 | 4 分 |
| 合計 | 10 分 / ¥0 |
「ユーザーからの不具合報告で初めて気づく」状態を今日で終わらせましょう。
で、どう稼ぐ?
エラー監視は 収益に直結する運用基盤 です。特に有料SaaS では、決済フロー途中の 500 エラーはそのまま失注。Sentry で Stripe Checkout のサーバーサイドエラーを 5 分以内に検知できれば、ユーザーにリカバリ DM を送れて取りこぼしを減らせます。
筆者も「ユーザーが決済ボタンを押したが Stripe Webhook で失敗していた」事故を Sentry Alert で発見したことがあり、これが無ければそのまま取りこぼしになっていました。監視は「売上を守る保険」です。