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

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

ツール

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

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

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

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

月間 100 GB のバンド幅

月間6,000ビルド分

サーバーレス関数の実行タイムアウトが10秒

1日あたりのサーバーレス関数呼び出しが100件...いや、ちょっと待って。そういう制限は存在しない。ただし、月間100GB時間のサーバーレス関数実行の上限がある

月間50万回のエッジ関数実行呼び出し

同時ビルドは1回のみ

デプロイメントはパーソナルアカウントのみに制限(チーム不可)

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

実験的な変更については非本番ブランチにプッシュします。何かが実際に準備完了になったときだけ main にマージします。

ビルドアーティファクトが意味のある形で変わっていない場所で、キャッシュされた出力を使用して vercel --prebuilt を使用します。

Vercel の無視されたビルドステップを設定して、readme の更新や非コード関連のコミットなど、特定のファイルのみが変更された場合はビルドをスキップする。

コミットをまとめる。6 つの小さな修正を別々にプッシュするのではなく、ステージして一度にプッシュする。

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

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

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

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

Next.js Image Optimisation を使用している場合、Vercel を通じて提供される最適化画像は帯域幅にカウントされることに注意する。そして Hobby プランは月あたりの最適化対象である 1,000 個のソース画像という上限がある。これはほぼ誰も話さない制限で、写真ポートフォリオや画像の多いコンテンツサイトを運営していれば、確実に引っかかる。

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

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

← 戻る