vercel-hobby-plan-limits.html
< BACK 夜間の開発者のデスク。モニターの光と暖かいランプに照らされ、手前ではボケた紅茶のマグカップが見える

Vercel Hobby プランの制限(そしていつそれを超えるのか)

ある木曜日の夜のこと、クライアントの Next.js サイトが一種のタイムアウトループに陥ってしまいました。サーバーレス関数が 9.8 秒で応答しない、ユーザーが真っ白な画面を見ている、そして真夜中に私は Vercel ダッシュボードを必死に確認して、本当にプラン制限に引っかかったのか、それとも単にコードが悪いだけなのかを確認しようとしていました。(実際には両方でした。)そのプロジェクトは Hobby プランで動いていました。本来そうであるべきではなかったのです。

私は多年にわたって Seahawk Media で 12,000 を超えるサイトをデプロイしてきました。Vercel は私たちのスタックの一部であり、特に Next.js の案件では常に使用しており、開発者体験に関してはほかに匹敵するものはありません。しかし Hobby プランは、プロジェクトが問題に直面するまで見落としやすい鋭いエッジを持っています。そこで、これらのエッジがどこにあるのか、そしていつそれが重要になり始めるのかについて、私の実際の見解を説明します。

Hobby プランが実際に提供するもの

正確に説明しましょう。2024 年現在、Vercel の Hobby プランは以下を提供します:Vercel's Hobby plan gives you:

  • 月間 100 GB のバンド幅
  • 月間6,000ビルド分
  • サーバーレス関数の実行タイムアウトが10秒10 seconds
  • 1日あたりのサーバーレス関数呼び出しが100件...いや、ちょっと待って。そういう制限は存在しない。ただし、月間100GB時間のサーバーレス関数実行の上限がある
  • 月間50万回のエッジ関数実行呼び出し
  • 同時ビルドは1回のみ
  • デプロイメントはパーソナルアカウントのみに制限(チーム不可)personal accounts only (no teams)
  • Vercelの利用規約により商用利用は許可されていない

この最後の項目が技術的な制限よりも多くの人をつまずかせる。Hobbyプランは明確に個人の非商用プロジェクト向けだ。有償クライアント向けに構築したり、その上でビジネスを展開したりしているなら、既に利用規約違反の状態にある。フリーランサーがこれを何年も続けているのを見てきたが、それは責任を負うべきリスクが潜んでいる。

10秒のファンクションタイムアウト

これが人をやられる。10秒は長く聞こえるが、サードパーティAPIの呼び出しが4秒かかり、データベースロジックを実行するのに3秒加わり、その後レスポンスを処理すると、すぐに9.2秒に到達して余裕がなくなる。

Pro プランではその上限が 60 秒まで跳ね上がり、Enterprise では設定で 900 秒まで対応できます。これは些細な違いではありません。統合が機能するかどうか、そして特定のユースケースで製品が根本的に壊れているかどうかの違いです。

Build Minutes:予想より速く消えていく理由

月 6,000 ビルドミニットは太っ腹に聞こえます。単一の個人プロジェクトであれば、おそらくそうです。問題は、本気で反復開発を始めるとその数字が予想より速く減少することです。

2021 年にさかのぼりますが、私はサイドプロジェクトを運用していました。Next.js で構築した、約 400 の静的ページを持つコンテンツアグリゲーターです。ISR を設定していましたが、データレイヤーの実験中に頻繁にフルリビルドも実行していました。3 週間でおよそ 4,200 ビルドミニットを消費しました。ビルドが遅いからではなく、常にトリガーしていたからです。

中程度の複雑性を持つ Next.js サイトでのビルドは、簡単に 4~8 分実行できます。アクティブな開発中に 1 日に main へ 15 回プッシュする場合(私にとっては普通です)、単一日で 60~120 ビルドミニットが消えます。これを 1 週間続けると、月間配分の半分を使い切ってしまいます。

ロールオーバーはありません。ミニットは月から月へ繰り越されません。ゼロに到達すると、デプロイメントが停止します。完全に停止です。

バーンダウンを遅くする方法

Hobby プランのプロジェクトでビルドミニットを節約するため、私が実行している いくつかのこと:

  1. 実験的な変更については非本番ブランチにプッシュします。何かが実際に準備完了になったときだけ main にマージします。
  2. ビルドアーティファクトが意味のある形で変わっていない場所で、キャッシュされた出力を使用して vercel --prebuilt を使用します。vercel --prebuilt with cached outputs where the build artefacts haven't changed meaningfully.
  3. Vercel の無視されたビルドステップを設定して、readme の更新や非コード関連のコミットなど、特定のファイルのみが変更された場合はビルドをスキップする。Vercel's ignored build step to skip builds when only certain files change (like readme updates or non-code commits).
  4. コミットをまとめる。6 つの小さな修正を別々にプッシュするのではなく、ステージして一度にプッシュする。

これらは目新しいものではない。しかし実際のところ、Hobby プランのほとんどの開発者は自由にプッシュして、なぜ月の 20 日までに分数がなくなるのか疑問に思っている。

帯域幅:通常は問題ない、時々問題になる

月 100 GB の帯域幅は、Hobby プランが実は非常に合理的なポイントだ。個人プロジェクト、ポートフォリオ、小規模ブログ、数百人のユーザーがいる控えめな SaaS サイドプロジェクトであれば、その上限に達することはまずない。

問題になるのは、適切な CDN レイヤーがない画像の多いサイト、あるいは突然アクセスが増加するサイトだ。私のクライアントで、ミュージシャンがいたのだが、彼らのサイトはトランジション期間中に私個人の Vercel アカウントにあった(これは悪かった。商用利用の契約があるし)。彼らのトラックの 1 つがかなり大きなプレイリストに取り上げられて、そのサイトが 48 時間で約 40,000 回のアクセスを得た。帯域幅使用量が急増した。幸いなことにキャップ以下だったが、かなり危ない状況だったので、すぐに彼らを Hobby から移した。

Next.js Image Optimisation を使用している場合、Vercel を通じて提供される最適化画像は帯域幅にカウントされることに注意する。そして Hobby プランは月あたりの最適化対象である 1,000 個のソース画像という上限がある。これはほぼ誰も話さない制限で、写真ポートフォリオや画像の多いコンテンツサイトを運営していれば、確実に引っかかる。Next.js Image Optimisation, be aware that optimised images served through Vercel count against your bandwidth. And the Hobby plan has a 1,000 source images cap on optimisation per month. That's a limit that almost nobody talks about and it will absolutely catch you if you're running a photography portfolio or any image-heavy content site.

商用利用の問題はもっと注目を集める価値がある

これに戻りたい。なぜなら、フリーランス界隈で本当に過小評価されていると思うからだ。

Vercel の利用規約は明確だ。Hobby は個人向けの非商用プロジェクト用だ。クライアントが Hobby でなにかを構築するように你に料金を支払った瞬間、あるいはプロジェクトが収益を生み出す瞬間(広告、サブスクリプション、売上),あなたは利用規約の対象外になる。これは Vercel が攻撃的なのではなく、単にそのプランの構造上の問題だ。

フリーランサーの中には、費用を節約するためにクライアントの仕事をHobbyにデプロイしている人がいます。何年もそのままにしている人もいます。しかしVercelはこれを強制します。彼らは商業活動のようなアカウントに実際に連絡を取ることができ、取ります。利用規約違反のためにサイトが削除され、クライアントのビジネスがそれに依存している場合、それはあなたが避けたい会話です。

Proプランは月額$20/メンバーです。実際のクライアント案件の場合、その費用はプロジェクト予算に組み込む必要があります。交渉の余地はありません。

単一の同時ビルドが実際に問題になるケース

単一の同時ビルドは個人プロジェクトではそこまで問題になりません。複数人で協力して作業する場合、たとえ非公式であっても、問題になり始めます。2人が短時間に連続してコミットをプッシュすれば、2番目のビルドは最初のビルドの後ろでキューに入ります。

ソロ作業の場合、これは問題になりません。しかしコントリビューター、共同創業者、コミットもできるデザイナーがいる場合、キューの時間に気づくでしょう。Proではキューの時間に気づくでしょう。Proでは最大12の同時ビルドが可能です。その差は大きいです。

Seahawkは今年初めに小規模な内部ツールプロジェクトがあり、2人が同じNext.jsコードベースをスプリント中に素早く反復していました。その際はProを使用していました(商業的な理由だけでも)し、それでもビルドが重なるとたまに摩擦が生じました。Hobbyだったらもっと悪化していたはずです。

HobbyとProの実際の判断ツリー

実務的に考えると、私はこのように考えています。

  • 個人プロジェクト、収益なし、ソロ開発、50ページ以下:Hobbyで問題ありません。そのままにしておきましょう。 Hobby is fine. Stay there.
  • 実際のトラフィックを獲得しているサイドプロジェクト(月間5,000以上のアクセス):帯域幅と関数実行時間を注視し始めてください。Hobbyは機能しますが、限界に近づいています。 Start watching your bandwidth and function execution hours. Hobby still works but you're closer to edges.
  • クライアント案件が少しでもあるなら:Pro。それ以上でもそれ以下でもない。 Pro. Full stop.
  • APIが多用され、サーバーレス関数が定期的に5秒以上に近づく場合:Pro。10秒のタイムアウトはその時点で快適な上限ではない。 Pro. The 10-second timeout is not a comfortable ceiling at that point.
  • 複数のチームメンバーをアカウントに招待する必要がある:Pro。Hobbyではチームアカウントに対応していない。 Pro. Hobby doesn't allow team accounts.
  • eコマース、サブスクリプション、またはトランザクショナルフロー全般を運用している:Pro。そもそもVercelのサーバーレスモデルがあなたのアーキテクチャに適しているかどうか、よく検討する必要がある。 Pro, and probably think carefully about whether Vercel's serverless model suits your architecture anyway.

Proでも対応できない規模に成長した場合、Vercelはカスタム上限に対応するEnterpriseティアを用意している。私がEnterpriseに触れたのは2度だけで、どちらも非常に特定のSLA要件を持つクライアント案件だった。このテキストを読んでいるほとんどの人にとって、Pro/Hobbyの判断が実際の選択肢だ。

検討する価値のある選択肢

予算が本当に制約であれば、Vercelが唯一の選択肢ではない。Netlifyの無料ティアはVercel Hobbyと同様の仕様だが、月300ビルド分数(実際にはVercelより少ない)で100 GBの帯域幅を提供している。最小限のサーバーレス機能で十分な静的サイトの場合、Netlifyは適切な比較対象だ。Netlify's free tier has similar shape to Vercel Hobby with 300 build minutes per month (lower than Vercel, actually) but 100 GB bandwidth. For static sites with minimal serverless needs, Netlify is a reasonable comparison.

Cloudflare PagesはあなたのユースケースがWorkersに適合する場合、検討する価値がある。無料ティアで無制限の帯域幅、大きなビルド上限、そしてPagesプラットフォームは大幅に成熟している。Next.js固有の機能が不要な静的サイトについては、私はこれを使っている。 is worth considering if your use case fits Workers. Unlimited bandwidth on the free tier, generous build allowances, and the Pages platform has matured significantly. I use it for static sites where I don't need Next.js-specific features.

RailwayとRenderは、サーバーレスデプロイメントモデルよりも多くの制御が必要なフルスタックアプリに適している。トレードオフが異なり、Vercelの直接的な競合ではないが、ツールボックスに入れておく価値がある。

よくある質問

Vercel の Hobby プランではカスタムドメインが使えますか?

はい。Hobby でカスタムドメインを追加できて、費用はかかりません。SSL は Let's Encrypt を通じて自動的に含まれます。これが Hobby の本当に優れた点の一つで、カスタムドメインに人為的な制限がありません。

Hobby プランの帯域幅制限に達したらどうなりますか?

Vercel はすぐにサイトを取り下げたりしません。通知が届いて、アップグレードするオプションが与えられます。ただし制限を超えたら、グレーゾーンに入ります。Vercel はアップグレードせずに持続的に制限を超える場合、スロットリングまたは一時停止できます。

料金をあまり取らないクライアント案件で Hobby を使えますか?

請求額は Vercel の利用規約に関係ありません。商用利用は商用利用です。誰かがあなたに支払っていれば、それは商用です。Pro に移行してください。

10 秒の関数タイムアウトはハードリミットですか、ソフトリミットですか?

ハードリミットです。Hobby では関数は 10 秒で強制終了されます。504 タイムアウトエラーが表示されます。Hobby レベルでタイムアウトを延長する設定はありません。

2 人で Hobby プロジェクトを協力して作業できますか?

共有チームアカウント経由ではできません。Hobby は個人アカウントのみです。特定プロジェクトにコラボレーターを追加することはできます(Git を経由してコードに貢献できます)。ただし Vercel アカウントと請求は 1 人に紐付きます。実際のチームワークフローには Pro が必要です。

Hobby プランは、うたっている通り、趣味のプロジェクトには本当に良いプランです。制限は個人利用としては妥当な範囲です。問題が生じるのは、これを無料の Pro ティアとして扱おうとするときです。そうではありません。上限を把握し、商用利用の条件を尊重してください。そしてプロジェクトが収益を生み始めたり、実際のユーザーにサービスを提供するようになったら、月額 $20 を払うべきです。リスクに見合う価値はありません。

Hobby プランは、うたっている通り、趣味のプロジェクトには本当に良いプランです。制限は個人利用としては妥当な範囲です。問題が生じるのは、これを無料の Pro ティアとして扱おうとするときです。そうではありません。上限を把握し、商用利用の条件を尊重してください。そしてプロジェクトが収益を生み始めたり、実際のユーザーにサービスを提供するようになったら、月額 $20 を払うべきです。リスクに見合う価値はありません。

< BACK