サーバー増強ゼロで負荷を100分の1にした話【後編】- メールが生んだ逆転の発想
よくある質問 (FAQ)
結局、何をしてサーバー負荷を減らしたのですか?
この解決策が効果的だった理由は?
「サーバーを買えば解決する」と嘘をつかなかった理由は?
この経験が20年後のサーバーレス愛につながった理由は?
この経験から得られる教訓は?
サーバー増強ゼロで負荷を100分の1にした話【後編】
前編では、センター試験合否判定システムの負荷問題を、サーバー増強なしで解決した話をお伝えしました。 後編では、その裏側と20年後への影響について語ります。
そして、40度の熱
その翌年、私は40度の熱を出して寝込んでいた。
クライアントからの電話。 「お大事に」の一言はなく、「システムは大丈夫ですか?」とだけ。
20年前、リモートワークなんて言葉もない時代。 それでも、解熱剤を飲み、ベッドの中でノートPCを開いた。 オフィスとSkypeで接続し、学生スタッフからの報告や指示要請に答えながら、VPN経由でサーバーに接続して状況を監視した。
冷たいと思うだろうか。 でも、向こうも休みなしで働いている。 センター試験直後の塾は戦場だ。 保護者からの問い合わせが殺到し、職員全員が不眠不休。 お互い、限界状態での戦いだった。
本当のエンジニアリング
「サーバーを買えば解決する」
これは半分正解で、半分間違いだ。 確かに一時的には解決する。 でも、来年は?再来年は?生徒数が増えたら?
正直に「分かりません」と答えたことで、別の道を探すしかなくなった。
制約が創造性を生むとはこのことだ。
まとめ - タイトルは釣りである
さて、ここでネタばらしをしよう。 タイトルは釣りだ。
正確に言えば:
- サーバーの負荷は確かに激減した ✓
- でも「100分の1」は…まあ、盛った
- 実際は「DBへのアクセスを避けた」が正しい
何をしたか?
**判定処理中に、登録した全大学の結果をメールで送信した。 **
たったそれだけ。
23時から1時までの判定処理中、DBから結果を取り出しながら、順次メールを送信。 受験生は午前1時を待たずに、メールで全ての判定結果を受け取れる。
ルールベースエンジンが複雑な配点方式で計算した結果 - 「英語と国語の高い方で計算したA判定」「数学400点換算でのB判定」- が、全てメールに記載される。
結果:
- 午前1時の「針のような鋭いピーク」が消滅
- Web公開時のアクセスが激減
- サーバー購入費ゼロ
- 500万円のロードバランサーは結局使わなかった
枯れた技術「メール」で、スケーラビリティ問題を回避した。
もしあの時「大丈夫です!サーバー買えば完璧です!」と嘘をついていたら、この解決策は生まれなかった。
**正直であることが、最高の解決策を生んだ。 **
サーバーの性能を100倍にする方法?簡単だ。 **そもそもアクセスさせなければいい。 **
これが、商業プログラミングの真髄。 これが、本物のエンジニアリング。
エピローグ - 20年後の答え
だから、サーバーのスケーリングとか処理能力の見積もりは、私にはトラウマだ。
Azureが出たとき、Microsoftは「クラウドがそれを解決してくれる」と喧伝していた。 騙された。 結局、何台のVMが必要で、どのスペックで、ピーク時にはいくつまでスケールして…という見積もり地獄は変わらなかった。
その後、コンテナ技術やオーケストレーションが実装された。 Dockerはまだいい。 でも、Kubernetesを使うことには、どうしても心理的抵抗があった。
「またAzureみたいに騙されるのではないか…」
ノードは何台必要?ポッドのリソース制限は?HPA(Horizontal Pod Autoscaler)の閾値は?結局、見積もり地獄は形を変えただけじゃないか。
この問題を本当に解決したのは、サーバーレスだ。
アクセスが来たら勝手にスケール。 来なければゼロ。 見積もり不要。 考えなくていい。 ノードもポッドも知らなくていい。
だから、今ではCloudflareが大好きだ。 20年前のトラウマから、ようやく解放された。
追記:あの時、「サーバーを買えない」という制約が、「アクセスさせない」という逆転の発想を生んだ。 今思えば、それが今のサーバーレス愛につながっている。 制約は時に、最高の教師となる。
そして、技術の進化を素直に信じられなくなった自分がいる。 「これで解決!」と言われても、「本当に?」と疑ってしまう。 それもまた、20年の経験がもたらした「財産」なのかもしれない。