BuildとVercelの比較
Vercelのモデルでは扱いにくい常時稼働のサービスも含めて、アプリケーション全体をひとつのプラットフォームで動かせます。
概要比較
概要
Vercelは、フロントエンド中心のWebアプリケーション、とりわけNext.jsにとって最良のプラットフォームのひとつです。フレームワークとの統合、配信ネットワーク、プレビューのワークフローは本物の強みです。違いが表れるのは、アプリケーションがWebリクエストの処理だけではなくなったときです。
Buildはフルスタッククラウドプラットフォームです。Vercelのようにハイパースケーラーのキャパシティを借りるのではなく、ハードウェアからランタイムまでを自社で所有・運用しています。この制御により、より優れたパフォーマンス、より高い安定性、そしてより低いコストをお客様に提供できます。
Vercelとは
Vercelはフロントエンドのデプロイプラットフォームとして始まり、その領域を大きく広げてきました。現在ではサーバーサイドのFunctionsとFluid Compute、cronジョブ、Workflows、ストレージ、統合されたデータベースのマーケットプレイスを提供しています。
Functionsは最大800秒まで実行でき、Workflowsは実行時間の上限なく永続的な処理を扱えます。それでもモデルの基本は呼び出し駆動です。コードは常に起動しているのではなく、何かをきっかけに実行されます。
Vercelの強み
Vercel最大の強みは、フロントエンドとサーバーレスWebアプリケーションに徹底的に最適化されていることです。
このプラットフォームは、Web体験を素早く、グローバルに、そしてインフラ作業をほとんど伴わずに届けるために設計されています。CDN、エッジネットワーク、キャッシュ、画像最適化、プレビューデプロイ、リクエスト駆動のコンピュートは、いずれもそのモデルを支えています。
バックエンド機能へと領域を広げている現在も、この強みは変わりません。アプリケーションが主にフロントエンドであり、サーバーサイドのロジックがFunctionsやFluid Computeに自然に収まるのであれば、Vercelはコードから本番までを非常に洗練された形でつないでくれます。
Next.jsを使う場合、その優位性はさらに強まります。Vercelはフレームワーク自体の開発にも関わっており、Next.jsの機能とプラットフォームが密接に進化しています。
プロダクトがこのフロントエンド中心・サーバーレスのモデルに合っているのであれば、Vercelの方が適している可能性が高いでしょう。
Buildとの違い
常時稼働のワークロードを前提にした設計
Vercelはリクエスト駆動のコンピュートに最適化されています。FunctionsとFluid Computeは相応のバックエンド処理を担えますが、コードは呼び出しに応じて実行されるという前提は変わりません。
Buildは、起動し続けるプロセスのために設計されています。
これは次のようなワークロードで違いになります。
- キューやブローカーに接続したまま動き続けるワーカー
- ソケットを開いたまま保持する、あるいはメモリ上に状態を持つサービス
- 継続的に動かす必要のあるバックグラウンド処理
- 個別の呼び出しではなく、常駐プロセスとして動くスケジュールジョブ
アプリケーションに本格的な常時稼働のバックエンドが含まれるなら、Buildの方が素直に適合します。
標準のモデルに収まらなくなったときの深さ
Buildは方針の定まったプラットフォームですが、閉じた抽象化ではありません。
ほとんどのワークロードは通常のプラットフォームモデルの中に収まります。収まらないものが出てきたときも、自身のKubernetesネームスペースに直接アクセスしたり、標準のワークロードと並べて仮想マシンを動かしたり、Dockerfileや設定可能なランタイムを使ったりできます。
目的は、チームに低レイヤーのインフラを管理させることではありません。アプリケーションの中の例外的な部分に居場所を用意し、そのために残り全部を別のプラットフォームへ移さずに済むようにすることです。
成長のたびに二重の負担を負うべきではありません
Vercelの請求額は2つの軸で同時に増えていきます。シートは1人あたり月20ドル、加えてアクティブCPU、確保メモリ、呼び出し回数、データ転送量が従量課金されます。
セキュリティ機能はさらにその上に乗ります。監査ログはエンタープライズプラン、SAMLシングルサインオンはProプランへの月300ドルのアドオン、SCIMはさらに月150ドルです。
Buildでは、これらは最初のデプロイから標準で利用できます。
- プライベートネットワーキング
- ロールベースのアクセス制御
- 監査ログ
- SOC 2認証
- Google Workspace SSO
- Webアプリケーションファイアウォール
- SBOMの生成
- コンテナイメージのスキャン
シート数は無制限で、新しい機能が必要になってもプラン料金は変わりません。
料金の予測可能性も大きく向上しました。複雑なエンタープライズ契約を交渉したり、不透明な課金モデルに向き合ったりする代わりに、Baremetricsのチームは利用量に応じてきれいにスケールする分かりやすい料金体系で運用しています。
料金
Vercelはシート単位の課金に加えて、アクティブCPU、確保メモリ、呼び出し回数、データ転送量を従量で課金します。Buildはキャパシティ、アドオンクレジット、シート、プラットフォーム機能を月額固定のプランにまとめています。
Vercelのモデルは、利用量が増減するリクエスト駆動のアプリケーションでは非常に効率的になり得ます。Buildは、月ごとのコンピュートとリソースのプールで、コストを予測可能に保ちたいチームのために設計されています。
すでにVercelをご利用の場合は、請求書をお送りください。Buildはその金額を下回る価格をご提示し、12か月間その価格を維持します。
Vercelからの移行
一般的なWebアプリケーションであれば、Buildへの移行は難しくありません。
アプリケーションはBuildpackまたはDockerfileからデプロイでき、バックエンドサービス、ワーカー、スケジュールジョブも同じプラットフォーム上で並べて動かせます。
Vercel固有のエッジ機能やフレームワーク機能に強く結びついている場合も、Buildのエンジニアが移行を一緒に進めます。エンジニアによる移行サポートは、すべてのお客様に標準で含まれています。
どちらを選ぶべきか
Vercelを使い続けるべき場合
- トラフィックの変動が大きく、従量課金のコンピュートが合っている
- フロントエンドの配信、キャッシュ、画像最適化がプロダクトの中心にある
- Vercelのエッジ機能やフレームワーク固有の機能に依存している
- Next.jsアプリケーションを開発しており、そのバックエンドが呼び出し駆動のモデルに収まる
Buildに移行すべき場合
- 常時稼働のワーカーや、同じプライベートネットワーク上のデータベースが必要
- エンタープライズプランや有料アドオンなしで監査ログやシングルサインオンを使いたい
- IaaSに降りることなく、より深いインフラアクセスが必要
- 今も、これから必要になる機能も、すべてのプランに標準搭載されていてほしい
詳細比較
よくある質問
Vercelはフロントエンド専用のプラットフォームですか?
いいえ、Vercelはフロントエンドのプラットフォームに加えて、サーバーサイドのFunctionsとFluid Compute、cronジョブ、Workflows、データベース連携も提供しています。ただし最適化されているのは、起動し続けるプロセスではなく、呼び出し駆動のコンピュートです。
BuildではなくVercelを選ぶべきなのはどんなときですか?
プロダクトが主にフロントエンド、あるいはサーバーレスのWebアプリケーションであり、リクエスト駆動のコンピュートに自然に収まる場合はVercelが適しています。フロントエンドの配信、エッジネットワーク、プレビューのワークフロー、そして深いフレームワーク統合は大きな強みであり、特にNext.jsではその差が際立ちます。
BuildでNext.jsアプリケーションを動かせますか?
はい、Buildは言語を問わず、標準のアプリケーションデプロイでNext.jsを動かせます。ただしNext.jsとの最も深いネイティブ統合は依然としてVercelにあります。
Vercelで長時間の処理は実行できますか?
はい、一定の範囲内では可能です。関数は最大800秒(ベータでは30分)まで実行でき、Workflowsには実行時間の上限がありません。Vercelで動かせないのは常時稼働のプロセスです。キューへの接続を保持し続けるワーカーや、リクエストをまたいで状態を保持するサービスがこれにあたり、Buildではこれらを標準として扱えます。
BuildはVercelより安いですか?
常時稼働の本番ワークロードでは、キャパシティが予測可能でプラットフォーム機能が標準搭載されているため、Buildの方が低コストになることが多くあります。Vercelはリクエスト駆動のアプリケーションでは非常に効率的ですが、コンピュート、メモリ、呼び出し回数、データ転送量が増えるにつれて従量課金は膨らんでいきます。