i5-10400と16GB RAMを搭載したOptiPlex 7070でサービスを動かすということは、常にセットアップからあらゆるパフォーマンスを絞り出すことに集中するということだ。このサイトの速度を最適化する旅は、すべてを変える気づきにつながった。それはハードウェアのアップグレードではなかった。
パフォーマンスの謎
最適化の旅は、Chrome DevTools MCPを使ってサイトの速度をテストすることから始まった。結果は謙虚にさせられるものだった。セルフホスト型サイトは、Appleのようなプロダクションサイトや、最近応募した会社のウェブサイトとすら太刀打ちできなかった。当然、これがきっかけでAIアシスタントとの調査に向かい、なぜ彼らのウェブサイトがあれほどパフォーマンスが良いのかを理解しようとした。
すぐにあるパターンが見えてきた。高パフォーマンスなサイトのほとんどは、プレミアムホスティングサービスにお金を払っていた。一方こちらは、セルフホストの電力とインターネットで運用していた。それが、そもそもこの構成が十分なものなのかという疑問を投げかけた。
セルフホスティングの現実チェック
いくつか計算してみると、OptiPlex 7070の構成は、有料ホスティングオプションと比較してかなり競争力があることが分かった。考えてみてほしい。ホスティングプロバイダーから6vCPUを得るには、通常月額約20ドルを支払うことになる。年間240ドルで、しかもウェブサイトのホスティングだけに限られる。
一方このセットアップは、ウェブサイトだけでなく、他にも多くのセルフホスト型サービスを処理している。ハードウェアへの投資は一度きりのコストであり、電気代とインターネット代の継続的な支払い(インターネットだけで月約50ドル)はあるものの、その柔軟性と学びの機会はそれをはるかに上回る価値がある。
セルフホスティングは単にお金を節約することだけではない。ネットワーキングを理解し、実世界の問題をトラブルシューティングし、失敗から学ぶことだ。管理型ホスティングでは、そうした実践的な経験は得られない。
インターネットのボトルネック
最初の診断は明確に思われた。問題はインターネット接続だと。速度が不安定で帯域幅も限られており、ウェブサイトはTime To First Byte(TTFB)2秒、全体の読み込み時間5秒に苦しんでいた。ほぼ瞬時に読み込まれるプロフェッショナルなサイトと比べると、これらの数字はがっかりするものだった。
セルフホスティングで達成できることの限界に到達したように思えた。結局のところ、インターネットがボトルネックなら、他に何ができるだろうか?こうした速度をセルフホスト構成にとって「十分良い」ものとして受け入れることが、唯一の選択肢のように感じられた。
CDNの気づき
そこで電球が灯った瞬間が訪れた。CDN(コンテンツデリバリーネットワーク)キャッシュが実際にはよく理解されていなかったのだ。
ドメインはすでにCloudflareに登録されており、理論上CDNがページをキャッシュすることは知られていたが、適切に設定されていなかった。パフォーマンスは、それと気づかないまま置き去りにされていた。
CDNキャッシュの設定に踏み込んだ後、すべてが変わった。ウェブサイトのTTFBは2秒から200ミリ秒未満に落ち、10倍の改善となった。以前は読み込みに5秒かかっていたページが、リピート訪問者にとってはほぼ瞬時に表示されるようになった。
落とし穴もある。すべてのキャッシュヒットが成功するわけではないため、パフォーマンスは一貫していない。キャッシュがミスすると、訪問者は依然として自宅サーバーからの遅い読み込み時間を経験する。しかしキャッシュがヒットすると(人気ページではほとんどの場合そうなる)、体験は驚くほど速くなる。
重要な学び
- ハードウェアが常にボトルネックとは限らない。ミドルレンジのOptiPlexは決して問題ではなく、問題はネットワーク遅延と設定だった。
- セルフホスティングは実行可能だ。適切なCDN設定があれば、セルフホスト型サイトは、住宅用インターネット上であっても、プロフェッショナルにホストされたサイトと張り合える。
- 理解が重要だ。ブレイクスルーは、より良いホスティングにお金を使うことからではなく、CDNキャッシュがどう機能するかを理解し、適切に設定することから生まれた。
- やりながら学ぶこと。セルフホスティングは、スタック全体を理解することを強いる。何かがうまくいかないとき、深く掘り下げて理由を突き止めなければならない。それは非常に貴重な経験だ。
この先の道
キャッシュヒット率を改善し、どのコンテンツをどれくらいの期間キャッシュするかを最適化する作業は継続中だ。しかし、TTFB2秒から200ミリ秒未満のレスポンスタイムへの変貌は、セルフホストするという決断を裏付けるものとなった。
セルフホスティングを検討している人へ。最初のパフォーマンス数値に落胆しないでほしい。多くの場合、解決策はより良いハードウェアやより速いインターネットではなく、すでに手元にあるツールを理解し、適切に設定することにある。
時として、最良の最適化はアップグレードではなく、すでに持っているものの使い方をようやく学ぶことなのだ。