システムデザイン2026年6月14日
六つの駅、六つの死に方:あるHTTPリクエストの生存の旅
技術ノートと省察 —— すべてのリクエストが辿らねばならない道について、そしてなぜその道を辿るのかについて。
読む
タグ
システムデザイン技術ノートと省察 —— すべてのリクエストが辿らねばならない道について、そしてなぜその道を辿るのかについて。
システムデザイン毎日使っているのに、一度も正面から向き合ったことのない技術がある。私にとってDNSがまさにそれだった。 10年間、ドメイン名を打ち続けてきた。ドメインを買い、レコードを設定し、「伝播(propagation)」を待ち、上がらないと悪態をつき、上がると喜ぶ——なのに、なぜ上がるのかを本当には理解していなかった。私にとってDNSは壁のスイッチのようなものだった。押せば部屋が明るくなる。壊れたら電気屋を呼ぶ。 あるデプロイの夜まではそうだった。サイトが落ちた。IPへのpingは通る。IPに直接curlするとページが返ってくる。ただドメイン名だけが沈黙していた。私はそれを見つめながら、少し情けない事実に気づいた。どこから直せばいいのかすら分からない。なぜなら、壊れているその当のものを、一度もきちんと理解したことがなかったからだ。 そこで、おそらくエンジニアだけが合理的だと思えることをやった。ドキュメントをざっと読む代わりに、座ってRustでDNSサーバーを丸ごと書いたのだ。プロジェクト名は mini-dns。この記事は、ようやく蓋を開けたとき、そのブラックボックスが私に語ってくれたことの記録である。