S03-P01 異世界SLA99.99% ~元SEは今日も魔法インフラを落とさない~

第11話: 動いてるものを触るな

第1アーク · 6,082文字 · revised

ベルクハルト辺境伯の館は、ルーンフェル村から馬車で半日の距離にあった。
 石造りの城塞と呼ぶほうが正しい。灰色の壁は苔むし、塔の先端に翻る旗だけが時の流れに抗っている。辺境の貴族は華美を好まない。というより、そこに回す予算がないのだ。

「あれが、領主様のお館か……」

リオンは馬車から降り、館を見上げた。
 正門の前に立つ衛兵が、じろりとこちらを見る。

「何者だ」
「ルーンフェル村のリオンです。領主様に防壁魔法陣の診断を依頼されまして」
「ああ、話は聞いている。入れ」

意外にもあっさり通された。
 噂というのは速い。村の水浄化魔法陣を直した話が近隣に広まり、ついに領主の耳にまで届いたらしい。とはいえ「依頼」という体裁になっているが、実質は「召喚」に近い。貴族に呼ばれたら断る選択肢はない。

前世で客先常駐に行くときの気分を思い出す。
 指名で呼ばれるのは腕を認められた証拠だが、往々にして厄介な案件が待っている。


応接間に通された。
 重厚な木のテーブルに、年代物の椅子。壁には狩猟の獲物が飾られ、暖炉には火が入っている。
 そこに領主ベルクハルトがいた。

50代後半。白髪交じりの髪を後ろに撫でつけ、髭は丁寧に整えられている。体格はがっしりとしているが、腹は少し出ている。
 貴族らしい威厳と、辺境暮らしの実直さが同居した男だった。

「来たか」

低い声。リオンを値踏みするような眼差し。

「ルーンフェル村の……リオン、であったな。水浄化魔法陣を直したという」
「はい。お呼びいただきありがとうございます」
「ふん。礼はよい。余が聞きたいのは、お前の腕だ」

ベルクハルトは椅子の背もたれに体を預けた。

「村人どもが騒いでおる。たかが水の魔法陣を直しただけで英雄扱いとはな。余の領地にはもっと大きな魔法陣がある。防壁だ。これが最近、気まぐれを起こしておるらしい」
「気まぐれ、ですか」
「時折、防壁の強度が落ちる。一瞬のことだが、衛兵が報告してくる。まあ、すぐ戻るから実害はない。だが気分が悪い」

気分が悪い。
 リオンは内心でため息をついた。
 前世の顧客もよく言っていた。「実害はないけど気分が悪い」。つまりそれは、可視化されていないだけで確実に問題がある、ということだ。

「拝見してもよろしいですか。防壁魔法陣」
「好きにしろ。だが壊すなよ」
「壊しません。見るだけですから」


館の地下。
 石段を降りた先に、防壁魔法陣があった。

直径10メートルはある巨大な魔法陣。床一面に刻まれた紋様が、淡い青の光を放っている。
 ルーンフェル村の防壁魔法陣の倍以上の規模だ。領主の館を中心に、周辺の集落まで含めた広域を防護している。

案内してくれた執事のヘルベルトが、少し離れた場所で控えている。

「では——【診断(ダイアグノーシス)】」

リオンは魔法陣の縁に膝をつき、手を触れた。
 意識を集中する。

視界が切り替わった。

魔法陣の内部構造が展開される。入力パス、処理部、出力部。魔力の流れ。フィルタリングロジック。
 前世の感覚で言えばファイアウォールだ。外部からの物理攻撃と魔法攻撃を検知し、遮断する防御システム。

規模は大きい。構成は古い。しかし基本設計はしっかりしている。古代魔術師の仕事は、やはり一級品だ。

だが、リオンはすぐに問題を見つけた。

「……やっぱりか」

シングル構成。

防壁魔法陣の中核部、つまりコアの処理装置に相当する部分が、一つしかない。
 すべての防壁機能が、この一つのコアに依存している。冗長化されていない。バックアップもない。フェイルオーバーの仕組みもない。

これが止まれば、防壁は全部落ちる。

リオンはさらに深く診断した。

コアの負荷は許容範囲内だが、ピーク時に処理が追いつかない瞬間がある。魔獣の群れが接近したとき、暴風雨のとき——外部からの負荷が一気に高まると、処理が一瞬遅延する。

「これが『気まぐれ』の正体か……」

防壁の強度が一瞬落ちるという衛兵の報告。
 それは「気まぐれ」ではなく、コアの処理遅延だ。システムリソースが一時的に枯渇して、防壁の出力が低下している。

今はまだ「一瞬」で済んでいる。
 だが、コアの劣化が進めば遅延は長くなる。やがて数秒になり、数十秒になり。

そしていつか、コアが完全に停止する。

そのとき、バックアップはない。
 フェイルオーバーもない。
 防壁は落ちる。

「……前世と同じだ」

リオンは小さく呟いた。

シングルポイント障害(SPOF)
 システム全体が、たった一つの要素に依存している構成。その一点が壊れたら、全部止まる。

前世のインフラ設計では、絶対に避けるべき構成だ。
 本番環境でシングル構成なんて、レビューで一発却下される。

でも、この世界ではそれが当たり前だった。


リオンは地下から戻り、応接間でベルクハルトに報告した。

「防壁魔法陣の診断結果をお伝えします」
「うむ。申せ」

ベルクハルトは葡萄酒のグラスを傾けながら、リオンを見た。

「まず、防壁の強度が一時的に低下する件ですが、原因がわかりました」
「ほう」
「コア処理部の負荷です。外部からの刺激が集中したとき、処理が追いつかず一瞬遅延します。これが防壁出力の低下として現れています」
「つまり、直せるのか」
「遅延の問題は、コアの魔力効率を調整すれば緩和できます。ですが」

リオンは一拍置いた。

「より根本的な問題があります」

ベルクハルトの眉が上がった。

「この防壁魔法陣は、シングル構成です」
「しんぐる?」
「中核の処理装置が一つしかありません。すべての防壁機能が、たった一つのコアに依存しています。もしこのコアが完全に停止したら——防壁は全面的に落ちます。バックアップがないんです」

沈黙。

ベルクハルトはグラスをテーブルに置いた。

「……それは、どういうことだ?」
「簡単に言えば——壊れたら、一瞬で丸裸になるということです。防壁が消えて、館も、周辺の集落も、何の防御もない状態になります」

執事のヘルベルトが、小さく息を呑んだのが聞こえた。

ベルクハルトは腕を組んだ。

「それで、どうすればよいと言うのだ」
冗長化(じょうちょうか)です。コアをもう一つ構築して、片方が止まっても、もう片方が自動的に引き継ぐようにします。これをフェイルオーバー構成と言います」

リオンは身振りを交えて説明した。
 前世で何十回と上司や顧客に説明した内容だ。冗長構成の必要性。シングルポイント障害のリスク。可用性の概念。

ベルクハルトは黙って聞いていた。
 理解しているのかしていないのか、表情からは読めない。

リオンが説明を終えると、ベルクハルトはゆっくりと口を開いた。

「……リオンとやら」
「はい」
「その防壁魔法陣は、余の祖父の代から動いておる」

リオンは嫌な予感がした。

「60年以上だ。その間、一度も落ちたことはない」
「……はい」
「一度もだぞ?」

ベルクハルトは指を立てた。

「魔獣の大群が来たときも、嵐の夜も、帝国との小競り合いのときも——防壁は耐えた。60年間、一度も落ちずにだ」

リオンは何と言うべきか迷った。
 60年間落ちなかったことは、事実だろう。だが、それは「落ちない証明」ではない。ただ「まだ落ちていない」だけだ。

「領主様、60年間問題がなかったのは素晴らしいことです。ですが」
「動いてるものを触るな」

ベルクハルトは断言した。

「余の父もそう言っておった。動いているものに手を加えるな。余計なことをすれば、かえって壊れる。触らぬ神に祟りなし、だ」

来た。

リオンの脳裏に、前世の記憶が鮮明に蘇った。

あれは入社5年目のことだった。
 基幹システムのデータベースサーバー。シングル構成。冗長化を提案したら、部長に言われた。

「動いてるものを触るな」

一字一句、同じだ。
 異世界に来てまで、この台詞を聞くことになるとは思わなかった。

「……領主様」
「それに、金がかかるのだろう?」

ベルクハルトは先回りした。

「コアをもう一つ構築するとなれば、魔法陣の増設工事が必要だ。職人を雇い、素材を集め、工期は数ヶ月。費用は——いくらだ」
「概算ですが、金ゼル30枚ほどかと」
「馬鹿を言え」

ベルクハルトは鼻を鳴らした。

「金ゼル30枚。辺境領の年間予算の何割だと思っている。それを、壊れてもいないものに注ぎ込めと?」

リオンは唇を引き結んだ。
 前世でも同じだった。冗長化の提案は、いつも予算で却下される。「壊れてから直せばいい」「壊れたことないから大丈夫」。そう言われ続けてきた。

「領主様、確かに今は動いています。ですが、コアは確実に劣化しています。診断で確認しました。このまま放置すれば」
「放置ではない。今まで通り動かしているだけだ」
「今まで通りでは、いずれ」
「リオン」

ベルクハルトの声が、低く重くなった。

「お前の腕は認めよう。水の魔法陣を直したのも、診断の力も本物だろう。だが」

彼は立ち上がった。リオンを見下ろす。

「余はこの領地を40年治めてきた。防壁が落ちたことは一度もない。お前は15歳の小僧だ。60年動いているものを、15歳の小僧に弄らせるほど余は愚かではない」

正論だった。
 少なくとも、この世界の常識では。

動いているものは正しい。長く動いているものは、より正しい。それを変えるリスクのほうが、放置するリスクより高い。そう信じている人間を、論理だけで動かすことはできない。

前世でも、できなかった。

「……承知しました」

リオンは頭を下げた。


館を出て、中庭を歩く。
 秋の風が冷たい。空は高く、雲が流れている。

「リオン殿」

追いかけてきたのは、執事のヘルベルトだった。40代半ば、痩せ型で眼鏡をかけた……いや、この世界に眼鏡はない。目を細めて物を見る癖がある、知性的な顔の男だ。

「先ほどのお話」
「聞いていましたか」
「恐れながら。……領主様のお気持ちもわかります。ですが、あなたの言うことにも理がある」

ヘルベルトは声を落とした。

「実は、防壁の『気まぐれ』は、ここ1年で増えています。以前は年に1、2回だったものが、今は月に数回。衛兵たちの間でも不安が広がっておりまして」
「劣化が進んでいる証拠ですね」
「やはり……」

ヘルベルトは眉を曇らせた。

「何かできることはありませんか。領主様を説得する材料でも」
「説得は難しいでしょう。壊れるまでは」

リオンは正直に言った。

「前の世界……いえ、僕の経験上、『動いてるものを触るな』派の人は、実際に壊れるまで動きません。壊れて初めて『なぜ対策しなかった』と言い出す。でも、提案したときには却下したのを忘れてる」

ヘルベルトが苦い顔をした。心当たりがあるのかもしれない。

「ただ——」リオンは続けた。「応急処置はできます。コアの魔力効率を調整して、遅延を減らすことはできる。根本解決にはなりませんが、延命にはなります」
「ぜひ、お願いしたい」
「それと、防壁の状態を定期的に記録してください。強度低下の頻度、時間帯、天候——」
「記録、ですか」
「ログです。障害の傾向を把握するために必要です。いつか領主様を説得するとき、データがあれば話が違います」

ヘルベルトは真剣な顔で頷いた。

「承知しました。衛兵に指示します」


馬車に乗り、館を後にする。
 揺れる荷台の上で、リオンはぼんやりと空を見上げていた。

「動いてるものを触るな、か……」

前世の記憶が、次々と蘇る。

入社5年目。基幹DBのシングル構成。冗長化提案。部長の一言。「動いてるものを触るな」。
 その3年後、深夜2時にディスクが吹っ飛んだ。復旧に48時間。損害額は冗長化費用の100倍。
 部長は言った。「なぜ対策しなかった」。
 議事録を見せた。部長は黙った。

「……まあ、そうなるよな」

リオンは苦笑した。

本番環境ぶっつけで障害が起きてからでは遅い。
 でも、壊れるまでは誰も金を出さない。
 これは前世でも、この世界でも変わらない、永遠の課題だ。

馬車が街道の凹凸で跳ねた。

リオンは診断結果を思い返していた。
 あの防壁魔法陣のコア。劣化は確実に進行している。今の頻度で遅延が増え続ければ、早ければ1年、遅くとも2年以内に、致命的な障害が起きる可能性がある。

そのとき、バックアップはない。
 フェイルオーバーもない。
 防壁は落ちて、領地は丸裸になる。

領主は「動いてるものを触るな」と言った。
 動いているうちは、それでいいのかもしれない。

でも、止まったら?

「本番環境ぶっつけで障害が起きてからでは遅いんですが……」

誰に言うともなく、リオンは呟いた。

馬車は揺れ続ける。辺境の街道は整備が行き届かず、車輪が石を踏むたびに体が跳ねる。

ふと、リオンは別のことを考えた。

ベルクハルトの館だけの問題じゃない。
 この辺境の防壁魔法陣は、おそらくすべてシングル構成だ。どの村も、どの町も、たった一つのコアに命を預けている。

そしてどの領主も、どの村長も、同じことを言うだろう。

「今まで壊れたことない」
 「動いてるものを触るな」
 「予算がない」

前世の客先を回っていたときと、何も変わらない。


ルーンフェル村に戻ったのは、日が暮れてからだった。

自室に戻り、リオンは手元の巻物にペンを走らせた。
 防壁魔法陣の診断結果。シングル構成のリスク。コアの劣化状況。応急処置の内容。

そして、冗長化の設計案。

領主に却下されたから、やめる?
 そんなわけがない。

却下されたなら、記録に残す。設計書を作っておく。いつか必要になったとき、いや必ず必要になる、すぐに動けるように。

「障害は起きる。必ず起きる」

リオンは巻物に書いた。

前世の鉄則だ。
 「障害は起きないだろう」ではなく、「障害は起きる」を前提に設計する。
 壊れないシステムなんて存在しない。壊れたときにどれだけ早く復旧できるか。壊れても止まらない仕組みをどう作るか。

それが——可用性設計(アベイラビリティ・デザイン)だ。

「……まあ、いつか必ず来るからな」

リオンはペンを置き、巻物を丸めた。

壊れてからでは遅い。
 でも、壊れるまでは動けない。

だったら、壊れたとき最速で対応できる準備をしておく。

それが今の自分にできる、精一杯のことだった。


窓の外で、風が鳴っている。
 秋が深まり、冬が近づいている。

リオンは机の上の巻物を見つめた。
 冗長化設計書。まだ誰にも必要とされていない巻物。

前世で、九条諒も同じことをしていた。
 提案書を作り、上に却下され、机の引き出しに入れて——障害が起きた日に引っ張り出す。

「同じことしてるな、僕は」

苦笑が漏れる。

でも、今回は前世と違う結末にしたい。

壊れてから「だから言ったのに」と言うのではなく。
 壊れる前に、何とかしたい。

その方法は——まだ、見つかっていない。

リオンは灯火魔法陣の明かりを消して、寝台に横になった。

暗闇の中で、ベルクハルトの言葉が反響している。

——動いてるものを触るな。

動いているうちは、誰も危機感を持たない。
 止まったときには、もう遅い。

この世界で——いつか、それを思い知る日が来る。

リオンは、確信していた。


【あとがき】
「動いてるものを触るな」。IT業界で幾度となく聞いた台詞を、異世界の領主に言わせてみました。壊れてからでは遅い、でも壊れるまで予算は出ない。この構図は普遍的です。

文字数: 6,082