ある朝、サイトが404になっていた。
GitHub Pagesが原因だった。設定を変えたわけでも、コードを壊したわけでもない。ただ、何かが変わって、サービスが届かなくなっていた。復旧するまでの時間は短かったが、その間に私はある問いと向き合うことになった。
──なぜ私はこのサービスを信頼していたのか。
「無料だから」は信頼の根拠にならない
GitHub Pagesは無料だ。だから使っていた。でも「無料だから信頼する」というのは、よく考えると奇妙な論理だ。無料であることは、コストの話であって、信頼性の話ではない。
むしろ逆かもしれない。対価を払っていないということは、SLAもなく、サポートへの訴求権もなく、継続の義務もない。サービス提供者は明日やめると言う権利を持っている。それを知りながら「無料だから」と使い続けることは、信頼というよりも依存に近い。
依存と信頼は違う。依存は選択肢がないときに生まれる。信頼は根拠があるときに生まれる。
移行して気づいたこと
404をきっかけに、サイトをCloudflare Pagesに移行した。デプロイの自動化はGitHub Actionsからラズパイに切り替えた。ニュースレターのPDF配信はGitHub Pagesの別リポジトリからCloudflare Pagesの専用プロジェクトに移した。
作業を進めながら、私はある原則を言語化していた。
なぜgitとwebhookはGitHubに残したのか。それが信頼の根拠について、最も重要な問いだった。
信頼の根拠は、ビジネスモデルの整合性にある
Cloudflareがインフラの信頼に値すると判断した理由は、無料だからではない。Cloudflareのビジネスモデルが、無料ユーザーを維持することと整合しているからだ。
Cloudflareは有料プランへのアップグレードを前提に無料ティアを提供している。無料ユーザーが増えれば増えるほど、エコシステムが広がり、企業顧客の獲得につながる。つまり、私が無料でサイトを配信し続けることは、Cloudflareにとっても合理的なのだ。利害が一致している。
GitHubのgitとwebhookも同じ理由で残した。gitのホスティングとwebhookの配信はGitHubの根幹事業だ。これが止まれば開発者全体が困る。Microsoft傘下になっても、この部分のインフラとしての信頼性は揺るがない。
一方で、GitHub PagesやGitHub Actionsは補助的な機能だ。無料ティアで大量のコンピューティングを提供するこれらのサービスは、方針変更の余地が大きい。私が「不安」を感じていたのは、このビジネスモデルの非整合性だったのだと、後から気づいた。
物理的な制御という信頼
ラズパイについては、別の種類の信頼がある。
自分の机の上にあるコンピュータは、停電すれば止まる。私が設定を誤れば壊れる。クラウドのような冗長性はない。それでも私がラズパイをインフラの中心に置いたのは、「制御できる」という感覚が信頼の根拠になるからだ。
止まる理由が自分にある、ということは、止めない理由も自分にある、ということだ。外部のサービスが突然方針を変えることはない。突然404を返すことはない。何かが起きたとき、原因は必ず自分の管理範囲の中にある。
この「説明可能な障害」こそが、クラウドサービスの「説明されない停止」より信頼できると感じる理由だ。
信頼はコストより先にある
「無料で使えるかどうか」より先に問うべきことがある。そのサービスが存在し続けるインセンティブが、提供者にあるかどうか。私がそれを制御できるかどうか。障害が起きたとき、原因が説明できるかどうか。
信頼の根拠は、価格ではなく構造にある。
今のシステムは、Cloudflare Pagesで静的サイトを配信し、Cloudflare D1でデータを管理し、ラズパイがデプロイと通知を担う。GitHubにはコードとwebhookだけが残っている。すべて無料に近いコストで動いている。
だが今、私はこのシステムを「無料で不安」ではなく「無料で信頼」と呼べる。なぜ信頼できるか、説明できるからだ。
無料で不安と、無料で信頼は、根拠の有無で分かれる。根拠のない依存は、いつか404として戻ってくる。