ホスティングをどう選んだか — Vercel と Cloudflare の分岐点
同じ「Webサイトを公開する」でも、プロジェクトの性質が変われば最適なホスティングは変わる。2つのADRを書いて分かったことの記録。
自社プロダクトと屋号サイトで、別のホスティングを選ぶことにしました。同じ人間が同じ時期に書いた2つの意思決定記録(ADR)で結論が違ったので、何がその差を生んだのかを整理しておきます。
前提が違えば結論も変わる
判断が分かれた理由は、ほぼ次の2点に集約されました。
- フレームワークが Node.js Runtime に依存しているか
- そのサイトが商用利用にあたるか
Next.js で作ったプロダクトは、next/image の最適化や一部の API Routes が Node.js Runtime を前提にしています。ここを Edge Runtime 前提のプラットフォームに載せると、公式ドキュメントの手順がそのまま動かない場面が出てきます。学習中の身にとって、これは単なる互換性の問題ではなく「詰まったときに答えが見つからない」という時間のコストになります。
一方で屋号サイトは Astro の静的出力です。ビルドの結果はただの HTML・CSS・JS なので、そもそも Runtime の議論が発生しません。
商用利用の線引き
もうひとつが規約の話です。多くのホスティングサービスの無料プランには商用利用の制限があります。ポートフォリオとして公開するだけなら問題になりませんが、受注を目的とした屋号サイトは、初日から商用利用にあたると考えるのが自然です。
ここで「無料プランでも商用利用に制限がない」という条件が効いてきて、Cloudflare が残りました。
判断基準を1行にすると
迷ったら「公式ドキュメントの手順がそのまま動くか」で選ぶ。
Next.js の公式手順がそのまま動くのは Vercel でした。Astro の Cloudflare 手順がそのまま動くのは Workers でした。フレームワークごとに、公式が想定している経路は違います。
技術的に優れているかではなく、自分が詰まったときに情報がある場所を選ぶ。初学者のうちは、この基準の価値がかなり大きいと感じています。
残った宿題
- プラットフォームが2つに分かれたので、請求と障害対応の窓口も2つになった
- 静的サイトなので、問い合わせフォームを付ける段階でもう一度設計が必要になる
どちらも「今は問題にならないが、いずれ効いてくる」種類のコストです。ADR の「将来の見直しポイント」に書いておいて、忘れないようにしています。