第14話:優
初回のアラート音から5分、一向に鳴り止む気配を見せない。
VIP席の優雅なBGMは、無機質な警告音によって塗り替えられていた。
俺と西園寺は、屋内のテーブルに腰掛けて、ほぼ同時にノートPCを開いて状況を見守っていた。
エンジニアにとって、それは反射に近い。
西園寺が持っていた最新型PCの薄さと、俺の会社支給の分厚いボロいノートPC。
その対比すら考える余裕もなく、俺たちは黒い画面に向き合った。
「……アクセススパイクだ。花火のLIVE配信ページに、予測の3倍を超えるトラフィックが来ている」
西園寺が冷静に状況を分析する。
その指は滑らかにキーボードを叩いている。動揺は見られない。さすがだ。
「WebサーバのCPU使用率が95%を超過。ロードバランサーのレイテンシも悪化している。……チッ、この量が続いたらいずれ落ちるな」
「DBの応答も遅延しています! コネクション数が上限に張り付いてます!」
手元のログには、『Too many connections』のエラーが大量に吐き出されている。
「もう上限いっぱいになって10分になるな。 なら、もう答えは一つだ」
西園寺は短く対策案を指示した。
「オートスケーリングの上限を解放する。WebとDBのインスタンスを倍増させろ。力技だが、これで捌けるはずだ」
教科書通りの、完璧な判断だ。
クラウドのメリットは、リソースを柔軟に増減できることにある。金さえ積めば、理論上は無限のスケーラビリティを得られる。
だが。
俺の背筋に、冷たいものが走った。
「待ってください。それはマズい」
「何?」
「このDBは、レガシーシステムからの移行案件です。アプリケーション側の接続プール(コネクションプール)の設定が、古いままになっている可能性があります」
俺は画面を指差した。
「今のボトルネックはCPUじゃない。コネクション数です。この状態でインスタンスを増やしたら、その分新規接続要求が殺到して、DBが完全にパンクします!」
西園寺の指が止まった。
眉間に皺が寄る。
「……理論上、コネクションプールは自動調整されるはずだ。グランツの標準構成ならそうなっている」
「確かに、10年ぐらいに見直されたルールならその通りです。ただ、標準構成通りに動いてる保証なんてありません! 前回のリプレイス時にきちんと見直されたのか、わかりません!」
俺の警告が終わる前に、西園寺はチャットでインフラチームへの指示を終えていた。
自信に満ちた、迷いのない打鍵だった。
「議論している時間はない。今は止血が最優先だ。僕の判断に従え」
次の瞬間。
画面上のグラフが、垂直に跳ね上がった。
応答速度が改善するどころか、タイムアウトのエラーログが滝のように流れ始める。
「な……ッ!?」
「最悪の結果じゃねーか……!」
DBが応答不能になった。
完全に詰まった。
これでは、LIVE配信どころかサイトのトップページすら表示されない。
VIP席の大型モニターに映し出されていた中継映像が、プツンと途切れ、ローディング画面に変わる。
会場のあちこちから「あれ?」「止まった?」という声が聞こえ始める。
「ば、馬鹿な……。リソースは足りているはずだ。なぜだ……!? 」
西園寺の声に焦りが混じる。
彼は「正しい」手順を踏んだ。だが、その正しさは「綺麗な環境」でしか通用しない正しさだ。
泥臭い、継ぎ接ぎだらけの環境では、その正論が命取りになる。
「どいてください」
「え?」
「西園寺さん、失礼します」
俺は一歩踏み出した。謝罪している暇はない。
自分のPCを引き寄せ、ターミナル画面を最前面に出す。
「DBが窒息してるんで、手動で逃がします」
「逃がす? スケールアウトでダメだったんだぞ、どうやって……」
「3分だけ持たせればいいんですよね。花火のクライマックスまで」
俺は普段使い慣れた、汚いシェルスクリプトを呼び出した。
本来なら、絶対に本番環境で叩いてはいけない禁断のコマンド群だ。
「静的コンテンツへのリダイレクトを最優先に切り替えます。動的なクエリは、APIゲートウェイ側で9割遮断!」
「なっ、9割!? そんなことをしたらユーザーが見れなくなる!」
「とりあえず、VIPユーザーと課金ユーザーのセッションだけ通します! 無料ユーザーはキャッシュ済みの静止画を表示させる!」
キーボードを叩く。指が勝手に動く。
これは、古いオンプレミス環境で、貧弱なサーバーを騙し騙し運用していた頃の応急処置だ。
スマートじゃない。
ログは汚れるし、一部のユーザーにはエラーが出る。
だが、サービス全体がダウンして「真っ暗」になるよりはマシだ。
「なにを……そんな乱暴なこと、規程違反だぞ!」
「落ちたら元も子もありません。あとで一緒に怒られてくださいね!」
俺は西園寺の制止を無視し、インフラチームへ連絡もせずに、設定を流し込んだ。
効いてくれ! 頼む!!
特大の一尺玉が爆発音を奏でるのと同時に、Enterキーを叩いた。
――ガクン。
エラーの滝が止まった。
DBの負荷グラフが、危険域からギリギリのラインまで下がる。
サイトのトップページが表示された。
大型モニターのLIVE配信が、カクつきながらも復活する。美麗な花火の映像が戻ってきた。
「……よし、繋がった」
俺は息を吐き、椅子の背もたれに体重を預けた。
全身から力が抜けていく。額から汗が流れ落ちた。
頭上で、今日一番大きな花火が炸裂した。
ドォーン、と腹に響く音とともに、視界が真っ白に染まる。
歓声が上がった。
誰も、スマホの画面の向こう側で起きていたギリギリの攻防など知らない。
それでいい。
何も起きなかったように振る舞うのが、インフラ屋の仕事だ。
「……ふん」
隣で、西園寺が小さく鼻を鳴らした。
彼はPCを閉じ、立ち上がった。
「泥臭いな。美しくない」
「ええ。つぎはぎだらけですから」
「だが……この状況では、それが全体最適だったということか」
西園寺は、悔しさを隠すように、夜空を見上げた。
その横顔は、やはり完璧に整っていたが、少しだけ人間臭く見えた。
「勉強になったよ、井伊くん」
俺もまた、モニターから目を離し、夜空を見上げた。
ちょうど、最後の花火が打ち上がるところだった。
ドォーン、と腹に響く音とともに、黄金色の柳が、ゆっくりと夜空に垂れ下がってくる。
視界いっぱいに広がる光の粒子。
それは、システムトラブルの緊張感も、立場の違いも、全てを洗い流すかのように美しかった。
やがて、光が消え、静寂が戻ってくる。
会場からは、名残惜しそうな拍手が湧き起こった。
「……単刀直入に言うが」
静けさの中で、西園寺が再び口を開いた。
「来期、本社に来ないか? 僕のチームで、その現場力を活かしてほしい」
突然のスカウトだった。
隣で聞いていた佐藤が、目を見開いてこちらを見ている。
本社への栄転。給料は倍増。エリートコースへの片道切符。
普通のサラリーマンなら、泣いて喜ぶオファーだ。
だが、俺の答えは決まっていた。
俺は西園寺だけに聞こえるように、小声で囁いた。
「……謹んで辞退させていただきます」
「なぜだ? 待遇は保証するぞ」
「俺は……楽をしたいんで」
「は?」
「本社に行ったら、毎日こんなギリギリの戦いをしなきゃいけないんでしょう? 俺の『E加減』ライフが崩壊します。……たまにこうやって、泥臭く尻拭いをするくらいが、俺にはお似合いなんですよ」
西園寺はきょとんとした顔をした後、呆れたように、しかし楽しそうに笑った。
「……君は、本当に面白い男だね。欲がないというか、なんというか」
「買いかぶりすぎですよ」
彼は俺の肩をポンと叩くと、佐藤の方を一瞥もしないまま、VIP席を出て行った。
負け惜しみ一つ言わず、結果を認めて去る。
最後まで、腹が立つくらいエリートだった。
残されたのは、花火の余韻と、俺たち二人だけ。
周囲の人が帰り支度を始める中、佐藤がそっと近づいてきた。
その瞳は、花火の残像のように潤んでいた。
「……断っちゃったの? 本社に行けば、エリートになれたのに」
「お前はもう知ってるだろ、俺がエリート街道に興味がないことくらい」
「そうね。もちろん」
「ねえ、幸太朗くん」
佐藤が小声で囁いた。
周囲の喧騒にかき消されそうな、小さな声。
「やっぱり、貴方が私の最適解よ」
俺は苦笑した。
またその呼び方か。
でもまあ、悪い気はしなかった。
「……そりゃどうも。バグだらけのソリューションだけどな」
「いいの。デバッグは、私が一生かけてやってあげるから」
佐藤が俺の手を握りしめた。
その手は、さっきよりも少しだけ温かかった。
指先が少し震えているのが分かった。彼女もまた、必死だったのだ。
俺は握り返した。強く。
俺たちの夏は、まだ始まったばかりだ。
前途多難で、ロジックが通じない、バグだらけの日々。
それでも、隣にこのめんどくさい「彼女」がいるなら、まあ悪くはないかもしれない。
夜空に消えていく煙を見上げながら、俺は柄にもなくそんなことを思っていた。
来週からの仕事のことは、一旦忘れることにしよう。
「……ねえ、幸太朗くん」
「ん?」
「プライベートの時だけでいいから、その……名前で呼んでくれない?」
「名前?」
「『優』よ。……佐藤って、日本で一番多い苗字なのよ? ユニーク(一意)性が低すぎるわ」
彼女は顔を赤らめながら、またしても論理武装を始めた。
「識別子として、より精度の高い『優』を推奨するわ。……それに、その方が……」
「その方が?」
「……特別感、あるじゃない」
最後の方は、蚊の鳴くような声だった。
普段の「氷の女帝」からは想像もつかない、少女のような表情。
「……善処する」
「善処じゃなくて、実行して」
「へいへい。……分かったよ、優」
俺が名前を口にすると、彼女はビクッと肩を震わせ、それから花火よりも眩しい笑顔を見せた。




