去年、クライアントから電話が来た。本気でパニックになっていた。そのエージェンシーのマーケティングサイトがキャンペーンの最中に落ちていたのだ。サーバークラッシュでもない、DDoS攻撃でもない。火曜の午後に無料プランの上限を超えたからというだけで、Netlifyが帯域幅を絞ったのだ。請求サイクルがリセットされるまであと3週間ある時期だった。彼は2021年からStarterプランを使っていて、一度もこのことを気にしたことがなかった。正直に言うと、その電話がくるまで、私だって気にしていなかった。
その事件があったから、Netlifyの無料プランが正確に何を提供するのか、どこで静かに使用を制限されるのか、Proへのアップグレードが本当に価値があるのか、それとも、もっと賢い回避策があるのか、ちゃんと整理して考えることにした。Seahawk の人生を通じて1万2000を超えるサイトを構築・ホストしてきた。Netlifyを通じた案件を十分にやってきたので、共有する価値のある意見を持っている。
Netlify Starterプランに実際に含まれるもの
具体的に説明しよう。Netlify Starterプランは無料で、クレジットカード不要。チームあたり1メンバーまでサポートされている。ここが、お前が得られるものだ:
毎月100GBの帯域幅(全サイト合計)
月間300ビルドミニット(全プロジェクト共有)
Netlify Functions:月間125,000リクエストおよび100時間のランタイム
Forms:月間100フォーム送信
1件の同時ビルド(その他はすべてキュー)
Gitからの継続的デプロイメント(GitHub、GitLab、Bitbucket)
インスタント・ロールバック
Let's Encryptによる自動HTTPS対応のカスタムドメイン
Netlify Edgeネットワーク(CDN)を含む
プルリクエストに対するデプロイプレビュー
このリストは確かに素晴らしく見えます。個人用ポートフォリオサイト、小規模なブロシュアサイト、趣味のプロジェクトであれば、本当に充分です。HTTPS自動化だけでも、以前は1サイトあたり20分かけて手作業でやっていましたが、今はまったく手間がかかりません。
しかし、マーケティング文案から気づくべき点がある。そうした制限はチームアカウント全体で共有されるということだ。1つのアカウント、すべてのサイト、1つのプール。
帯域幅制限が実際に効いてくる場面
100GBは大きく聞こえるが、常に大きいわけではない。
こう考えてみてほしい。平均ページサイズが2MBの適切に最適化されたサイト、画像圧縮がまともでなければその数字はすぐに増える、は訪問者500人ごとに1GBを消費する。月間訪問者50,000人に拡大すると、100GBが消える。1つのサイトで。
2022年、食とトラベルのクライアント向けにGatsbyのブログプロジェクトを運営していた。良質なコンテンツ、その背後に適切なSEO対策がある。サイトは月間60,000セッション前後を獲得し始め、それは素晴らしいと思っていたが、帯域幅が85GBに達し、月がまだ9日残っていることに気づいた。すぐにNetlify Proに移行した。
人々が考慮に入れないこと。Netlifyはアウトバウンド帯域幅をカウントする。つまり、訪問者がダウンロードするすべてのアセットを。最適化されていないヒーロー画像、埋め込みフォント、適切にコード分割されていないJavaScriptバンドル、すべてが対象だ。どこでホストする前にWebPageTestで自分のサイトを実行し、ページサイズをコントロール下に置く。その1つの習慣が、複数のクライアントを不要なアップグレードから救ってくれた。
制限に達したときに起こること
Netlifyは単に速度を落とすだけではない。訪問者のブラウザにはNetlifyブランドのエラーページがサイトの代わりに表示される。洗練されたものではない。実際に対応するための十分な前置き期間を持つ警告メールもない。サイトがダウンする。それが私のクライアントに起きたことだ。
ダッシュボードで支出通知を設定することはできるし、初日から設定することを強く推奨するが、常に十分なバッファを持つトリガーとなるわけではない。サイトが実際のトラフィックを取得している場合は、帯域幅使用状況を週単位でチェックしてほしい。
300ビルドミニッツ問題
これはまずエージェンシーが引っかかる制限で、バンド幅ではない。
300分は1つのサイトなら十分に思える。だが5~10のクライアントプロジェクトを1つのNetlifyアカウント配下で管理していて、それぞれがプッシュのたびにCI/CDパイプラインをトリガーしていたら、月半ばまでに使い切る。Next.jsやGatsbyのビルドはコンテンツの多いサイトなら、キャッシングの設定がどれだけ上手いかに応じて3~15分のどこかで実行される。
Seahawk無料枠プロジェクトで私がやっていることはこれだ:
ビルドキャッシングを正しく有効にする。Netlifyは設定すればnode_modulesディレクトリをビルド間でキャッシュする。これをスキップするな。リデプロイ時に60~70%ビルド時間を短縮できる。
