去年、クライアントから電話が来た。本気でパニックになっていた。そのエージェンシーのマーケティングサイトがキャンペーンの最中に落ちていたのだ。サーバークラッシュでもない、DDoS攻撃でもない。火曜の午後に無料プランの上限を超えたからというだけで、Netlifyが帯域幅を絞ったのだ。請求サイクルがリセットされるまであと3週間ある時期だった。彼は2021年からStarterプランを使っていて、一度もこのことを気にしたことがなかった。正直に言うと、その電話がくるまで、私だって気にしていなかった。
その事件があったから、Netlifyの無料プランが正確に何を提供するのか、どこで静かに使用を制限されるのか、Proへのアップグレードが本当に価値があるのか、それとも、もっと賢い回避策があるのか、ちゃんと整理して考えることにした。Seahawk の人生を通じて1万2000を超えるサイトを構築・ホストしてきた。Netlifyを通じた案件を十分にやってきたので、共有する価値のある意見を持っている。
What the Netlify Starter Plan Actually Includes
具体的に説明しよう。Netlify Starterプランは無料で、クレジットカード不要。チームあたり1メンバーまでサポートされている。ここが、お前が得られるものだ:Netlify Starter plan is free, no credit card required, and it covers one member per team. Here's what you get:
- 毎月100GBの帯域幅(全サイト合計) across all your sites
- 月間300ビルドミニット(全プロジェクト共有) shared across all projects
- Netlify Functions:月間125,000リクエストおよび100時間のランタイム 125,000 requests and 100 hours of runtime per month
- Forms:月間100フォーム送信 100 form submissions per month
- 1件の同時ビルド(その他はすべてキュー) (queue everything else)
- Gitからの継続的デプロイメント(GitHub、GitLab、Bitbucket)
- インスタント・ロールバック
- Let's Encryptによる自動HTTPS対応のカスタムドメイン
- Netlify Edgeネットワーク(CDN)を含む
- プルリクエストに対するデプロイプレビュー
このリストは確かに素晴らしく見えます。個人用ポートフォリオサイト、小規模なブロシュアサイト、趣味のプロジェクトであれば、本当に充分です。HTTPS自動化だけでも、以前は1サイトあたり20分かけて手作業でやっていましたが、今はまったく手間がかかりません。
しかし、マーケティング文案から気づくべき点がある。そうした制限はチームアカウント全体で共有されるということだ。1つのアカウント、すべてのサイト、1つのプール。shared across your entire team account. One account, all your sites, one pool.
帯域幅制限が実際に効いてくる場面
100GBは大きく聞こえるが、常に大きいわけではない。
こう考えてみてほしい。平均ページサイズが2MBの適切に最適化されたサイト、画像圧縮がまともでなければその数字はすぐに増える、は訪問者500人ごとに1GBを消費する。月間訪問者50,000人に拡大すると、100GBが消える。1つのサイトで。
2022年、食とトラベルのクライアント向けにGatsbyのブログプロジェクトを運営していた。良質なコンテンツ、その背後に適切なSEO対策がある。サイトは月間60,000セッション前後を獲得し始め、それは素晴らしいと思っていたが、帯域幅が85GBに達し、月がまだ9日残っていることに気づいた。すぐにNetlify Proに移行した。
人々が考慮に入れないこと。Netlifyはアウトバウンド帯域幅をカウントする。つまり、訪問者がダウンロードするすべてのアセットを。最適化されていないヒーロー画像、埋め込みフォント、適切にコード分割されていないJavaScriptバンドル、すべてが対象だ。どこでホストする前にWebPageTestで自分のサイトを実行し、ページサイズをコントロール下に置く。その1つの習慣が、複数のクライアントを不要なアップグレードから救ってくれた。outbound bandwidth, meaning every asset your visitors download. Unoptimised hero images, embedded fonts, JavaScript bundles that haven't been properly code-split, all of it counts. Run your site through WebPageTest before you host anywhere and get your page weight under control. That single habit has saved several of my clients from unnecessary upgrades.
制限に達したときに起こること
Netlifyは単に速度を落とすだけではない。訪問者のブラウザにはNetlifyブランドのエラーページがサイトの代わりに表示される。洗練されたものではない。実際に対応するための十分な前置き期間を持つ警告メールもない。サイトがダウンする。それが私のクライアントに起きたことだ。
ダッシュボードで支出通知を設定することはできるし、初日から設定することを強く推奨するが、常に十分なバッファを持つトリガーとなるわけではない。サイトが実際のトラフィックを取得している場合は、帯域幅使用状況を週単位でチェックしてほしい。
300ビルドミニッツ問題
これはまずエージェンシーが引っかかる制限で、バンド幅ではない。
300分は1つのサイトなら十分に思える。だが5~10のクライアントプロジェクトを1つのNetlifyアカウント配下で管理していて、それぞれがプッシュのたびにCI/CDパイプラインをトリガーしていたら、月半ばまでに使い切る。Next.jsやGatsbyのビルドはコンテンツの多いサイトなら、キャッシングの設定がどれだけ上手いかに応じて3~15分のどこかで実行される。
Seahawk無料枠プロジェクトで私がやっていることはこれだ:
- ビルドキャッシングを正しく有効にする。Netlifyは設定すればnode_modulesディレクトリをビルド間でキャッシュする。これをスキップするな。リデプロイ時に60~70%ビルド時間を短縮できる。 Netlify caches the
node_modulesdirectory between builds if you configure it. Don't skip this. It can cut build times by 60-70% on repeat deploys. - ブランチデプロイコントロールを使う。すべてのブランチの自動デプロイを無効にして、mainまたはproductionだけでトリガーする。誰もまだレビューしていないフィーチャーブランチで分数を無駄にする理由はない。 Turn off automatic deploys for every branch and only trigger on
mainorproduction. No reason to burn minutes on a feature branch nobody's reviewed yet. - コンテンツ変更をまとめる。SanityやContentfulのようなCMSを使っていれば、小さい編集ごとに別々のデプロイを発行するな。スケジュール済みまたは手動トリガーを使う。 If you're on a CMS like Sanity or Contentful, don't publish every small edit as a separate deploy. Use scheduled or manual triggers.
- 必要に応じてアカウントを分ける。2つのNetlifyアカウントはそれぞれ300分を得る。優雅ではないが、小さいエージェンシーには機能する。 Two Netlify accounts each get 300 minutes. Not elegant, but it works for small agencies.
Netlifyビルド設定ドキュメントはキャッシュ設定について詳しく説明している。午後一杯の時間を費やすだけの価値がある。Netlify build configuration docs cover cache settings in detail. Worth an afternoon of your time.
Netlify FunctionsフリーティアについてNone
月あたり125,000のFunction呼び出しは巨大に思えるまでで、フォーム処理、認証コールバック、またはページのすべてのインタラクションで発火するAPIプロキシのようなことにFunctionsを使い始めるとそうではなくなる。
率直に言うと、低トラフィックサイトの基本的なサーバーレスタスクなら、無料枠で十分です。実際のアプリケーションロジック、ユーザーセッション、動的なデータ取得、大量のウェブフック処理など、何か本格的なものを実行する瞬間、最低でもNetlify Pro(現在月あたり1人19ドル)の費用を想定に入れるか、そもそもNetlify Functionsが適切なツールなのか再検討する必要が出てきます。Cloudflare Workersは純粋な関数コンピュートに対して非常に寛容な無料枠を備えており、私はコンピュート需要がより大きかったいくつかのプロジェクトでNetlifyホスティングと並行して使用してきました。
フォーム:100件の送信制限は小さすぎる
Starterプランで最も過小評価されている制限だと言えます。
全サイトにわたり月間100件のフォーム送信です。トラフィックがある程度ある実際のビジネスサイトに問い合わせフォームがあれば、この制限に達します。私は地元の会計事務所向けの3ページの案内サイトで、ローンチから2週間以内に制限に達しました。
フォームが重要な無料枠プロジェクトでは、私はNetlify Formsを完全にバイパスして、Formspreeまたはシンプルなzapierウェブフックに直結するようにしています。Netlify Formsの機能は本当に優れていてスパムフィルタリングもうまく機能していますが、100件の送信制限があるため、クライアント向けのものには適していません。Formspree or a simple Zapier webhook. The Netlify Forms feature is genuinely good and the spam filtering works well, but the 100-submission limit makes it a toy for anything client-facing.
並行ビルドとデプロイキューのレイテンシ
1つの並行ビルドということは、その他すべてがキューに入るということです。静かな個人プロジェクトなら気づかないでしょう。2人の開発者が同時にプッシュしているチームのワークフローなら、すぐに気づきます。
私はSeahawkでリテール関連クライアントのリローンチに関わった、特に慌ただしいスプリント中にこれに直面しました。3人の開発者が全員フィックスをプッシュし、全員単一のビルドスロットが解放されるのを待っています。フィードバックループが遅くなりました。結局その2週間の間だけProに一時的にアップグレードし、その後ダウングレードしました。Netlifyはキャンセルと月中のダウングレードを許可しているため、このような限定的なアップグレードは本当に実行可能です。
Proへのアップグレードが本当に意味をなす場合
すべてのプロジェクトがProを必要とするわけではありません。私はこのように考えています:
- 月間訪問者数20,000以上のクライアントサイト:アップグレードをお勧めします。帯域幅リスクはクライアント信頼の損失に見合いません。
- 2名以上の開発者が積極的にデプロイしているチーム:並行ビルドだけでもアップグレードする価値があります。
- Netlify Formsを本格的に使用しているサイト:アップグレードするか、フォームツールを置き換えてください。
- 個人プロジェクト、ポートフォリオ、またはステージングサイト:無料プランで問題なく、賢く管理しましょう。
Netlify Proは執筆時点で1チームメンバーあたり月19ドルです。フリーランサー1人なら年間228ドル。それを製品ローンチ中のサイト停止がクライアントの信頼にもたらすコストと比較すれば、計算は簡単です。
知っておく価値のある代替案も確かに存在します。Cloudflare Pagesは非常に手厚い無料ティア(月500ビルド、無制限帯域幅)を提供しており、Netlifyのビルド分数がボトルネックになった軽めのプロジェクトを何個か移行しました。Vercelも明らかな比較対象です、特にNext.jsの場合。どちらが厳密に優れているわけではなく、それぞれに独自の難しい側面があります。Cloudflare Pages has an extremely generous free tier (500 builds/month, unlimited bandwidth) and I've migrated a few lighter projects there when Netlify's build minutes became the bottleneck. Vercel is the obvious comparison too, especially for Next.js. Neither is strictly better, they each have their own sharp edges.
新規プロジェクトにおける私の実際の推奨事項
どのアカウントにものを配置するか意図的に判断してください。Seahawk Mediaでは、社内プロジェクトと実験的プロジェクトは無料アカウントに保ち、クライアント向けの本番サイトはデフォルトで有料アカウントに移行させます。月19ドルはビジネス経費です。ライブクライアント業務で任意扱いするのは経済的ではありません。
月1回、帯域幅を監査してください。支出アラートを設定してください。デプロイ前に画像を圧縮して、SquooshなどのツールやビルドパイプラインでSharpを実行してください。4~5個以上のアクティブなサイトを管理している場合、単一のNetlifyアカウントが正しい構造なのか、クライアント単位の個別アカウントで適切な請求を行う方がより理にかなっているのか、真摯に検討してください。
---
FAQ
Netlifyの無料プランはカスタムドメインに対応していますか?
はい。Netlify Starterサイトに自分が所有するカスタムドメインを接続できます。Netlifyは、Netlify DNSを使用する場合はDNS設定を処理し、Let's Encryptを通じて無料のTLS証明書を自動的にプロビジョニングします。ドメイン接続自体に費用はかかりませんが、レジストラに支払うドメイン代は別途必要です。
帯域幅制限を超えた場合、サイトはどうなりますか?
Netlifyは請求サイクルがリセットされるか、アップグレードするまで、サイトをNetlifyエラーページに置き換えます。自動スロットリングや速度低下はありません。完全に停止します。だからこそ月の途中で使用状況を監視することが重要なのです。
1つの無料Netlifyアカウントで複数のサイトを持つことはできますか?
はい、サイト数に明記された上限はありません。制限(帯域幅、ビルド分数、フォーム送信、関数呼び出し)はアカウント上のすべてのサイト全体でプール化されます。サイトが多いほど、それらのプールが速く枯渇するだけです。
Netlifyの無料プランはクライアントの本番サイトに適していますか?
トラフィックとリスク許容度によって異なります。月あたりの訪問者数が20,000人未満の非常に低トラフィックサイトで、フォーム使用が最小限の場合、メトリクスを監視していれば機能する可能性があります。ダウンタイムが実際の結果をもたらす本番クライアント向けサイトの場合、Proに支払う価値があります。月額19ドルはギャンブルをする価値がありません。
ビルド分数はどのように計算されますか?
Netlifyはあなたのビルドプロセスが彼らのインフラ上で実際に実行される時間をカウントし、最も近い分まで切り上げます。キャンセルされたビルドでも、キャンセル前に使用した分数を消費します。並列ビルド(高いプランで利用可能)は総分数を削減するのではなく、複数のビルドを同時に実行できるようにするだけです。
