ベルクハルト辺境伯の館は、ルーンフェル村から馬車で半日の距離にあった。
石造りの城塞と呼ぶほうが正しい。灰色の壁は苔むし、塔の先端に翻る旗だけが時の流れに抗っている。辺境の貴族は華美を好まない。というより、そこに回す予算がないのだ。
「あれが、領主様のお館か……」
リオンは馬車から降り、館を見上げた。
正門の前に立つ衛兵が、じろりとこちらを見る。
「何者だ」
「ルーンフェル村のリオンです。領主様に防壁魔法陣の診断を依頼されまして」
「ああ、話は聞いている。入れ」
意外にもあっさり通された。
噂というのは速い。村の水浄化魔法陣を直した話が近隣に広まり、ついに領主の耳にまで届いたらしい。とはいえ「依頼」という体裁になっているが、実質は「召喚」に近い。貴族に呼ばれたら断る選択肢はない。
前世で客先常駐に行くときの気分を思い出す。
指名で呼ばれるのは腕を認められた証拠だが、往々にして厄介な案件が待っている。
応接間に通された。
重厚な木のテーブルに、年代物の椅子。壁には狩猟の獲物が飾られ、暖炉には火が入っている。
そこに領主ベルクハルトがいた。
50代後半。白髪交じりの髪を後ろに撫でつけ、髭は丁寧に整えられている。体格はがっしりとしているが、腹は少し出ている。
貴族らしい威厳と、辺境暮らしの実直さが同居した男だった。
「来たか」
低い声。リオンを値踏みするような眼差し。
「ルーンフェル村の……リオン、であったな。水浄化魔法陣を直したという」
「はい。お呼びいただきありがとうございます」
「ふん。礼はよい。余が聞きたいのは、お前の腕だ」
ベルクハルトは椅子の背もたれに体を預けた。
「村人どもが騒いでおる。たかが水の魔法陣を直しただけで英雄扱いとはな。余の領地にはもっと大きな魔法陣がある。防壁だ。これが最近、気まぐれを起こしておるらしい」
「気まぐれ、ですか」
「時折、防壁の強度が落ちる。一瞬のことだが、衛兵が報告してくる。まあ、すぐ戻るから実害はない。だが気分が悪い」
気分が悪い。
リオンは内心でため息をついた。
前世の顧客もよく言っていた。「実害はないけど気分が悪い」。つまりそれは、可視化されていないだけで確実に問題がある、ということだ。
「拝見してもよろしいですか。防壁魔法陣」
「好きにしろ。だが壊すなよ」
「壊しません。見るだけですから」
館の地下。
石段を降りた先に、防壁魔法陣があった。
直径10メートルはある巨大な魔法陣。床一面に刻まれた紋様が、淡い青の光を放っている。
ルーンフェル村の防壁魔法陣の倍以上の規模だ。領主の館を中心に、周辺の集落まで含めた広域を防護している。
案内してくれた執事のヘルベルトが、少し離れた場所で控えている。
「では——【診断】」
リオンは魔法陣の縁に膝をつき、手を触れた。
意識を集中する。
視界が切り替わった。
魔法陣の内部構造が展開される。入力パス、処理部、出力部。魔力の流れ。フィルタリングロジック。
前世の感覚で言えばファイアウォールだ。外部からの物理攻撃と魔法攻撃を検知し、遮断する防御システム。
規模は大きい。構成は古い。しかし基本設計はしっかりしている。古代魔術師の仕事は、やはり一級品だ。
だが、リオンはすぐに問題を見つけた。
「……やっぱりか」
シングル構成。
防壁魔法陣の中核部、つまりコアの処理装置に相当する部分が、一つしかない。
すべての防壁機能が、この一つのコアに依存している。冗長化されていない。バックアップもない。フェイルオーバーの仕組みもない。
これが止まれば、防壁は全部落ちる。
リオンはさらに深く診断した。
コアの負荷は許容範囲内だが、ピーク時に処理が追いつかない瞬間がある。魔獣の群れが接近したとき、暴風雨のとき——外部からの負荷が一気に高まると、処理が一瞬遅延する。
「これが『気まぐれ』の正体か……」
防壁の強度が一瞬落ちるという衛兵の報告。
それは「気まぐれ」ではなく、コアの処理遅延だ。システムリソースが一時的に枯渇して、防壁の出力が低下している。
今はまだ「一瞬」で済んでいる。
だが、コアの劣化が進めば遅延は長くなる。やがて数秒になり、数十秒になり。
そしていつか、コアが完全に停止する。
そのとき、バックアップはない。
フェイルオーバーもない。
防壁は落ちる。
「……前世と同じだ」
リオンは小さく呟いた。
シングルポイント障害。
システム全体が、たった一つの要素に依存している構成。その一点が壊れたら、全部止まる。
前世のインフラ設計では、絶対に避けるべき構成だ。
本番環境でシングル構成なんて、レビューで一発却下される。
でも、この世界ではそれが当たり前だった。
リオンは地下から戻り、応接間でベルクハルトに報告した。
「防壁魔法陣の診断結果をお伝えします」
「うむ。申せ」
ベルクハルトは葡萄酒のグラスを傾けながら、リオンを見た。
「まず、防壁の強度が一時的に低下する件ですが、原因がわかりました」
「ほう」
「コア処理部の負荷です。外部からの刺激が集中したとき、処理が追いつかず一瞬遅延します。これが防壁出力の低下として現れています」
「つまり、直せるのか」
「遅延の問題は、コアの魔力効率を調整すれば緩和できます。ですが」
リオンは一拍置いた。
「より根本的な問題があります」
ベルクハルトの眉が上がった。
「この防壁魔法陣は、シングル構成です」
「しんぐる?」
「中核の処理装置が一つしかありません。すべての防壁機能が、たった一つのコアに依存しています。もしこのコアが完全に停止したら——防壁は全面的に落ちます。バックアップがないんです」
沈黙。
ベルクハルトはグラスをテーブルに置いた。
「……それは、どういうことだ?」
「簡単に言えば——壊れたら、一瞬で丸裸になるということです。防壁が消えて、館も、周辺の集落も、何の防御もない状態になります」
執事のヘルベルトが、小さく息を呑んだのが聞こえた。
ベルクハルトは腕を組んだ。
「それで、どうすればよいと言うのだ」
「冗長化です。コアをもう一つ構築して、片方が止まっても、もう片方が自動的に引き継ぐようにします。これをフェイルオーバー構成と言います」
リオンは身振りを交えて説明した。
前世で何十回と上司や顧客に説明した内容だ。冗長構成の必要性。シングルポイント障害のリスク。可用性の概念。
ベルクハルトは黙って聞いていた。
理解しているのかしていないのか、表情からは読めない。
リオンが説明を終えると、ベルクハルトはゆっくりと口を開いた。
「……リオンとやら」
「はい」
「その防壁魔法陣は、余の祖父の代から動いておる」
リオンは嫌な予感がした。
「60年以上だ。その間、一度も落ちたことはない」
「……はい」
「一度もだぞ?」
ベルクハルトは指を立てた。
「魔獣の大群が来たときも、嵐の夜も、帝国との小競り合いのときも——防壁は耐えた。60年間、一度も落ちずにだ」
リオンは何と言うべきか迷った。
60年間落ちなかったことは、事実だろう。だが、それは「落ちない証明」ではない。ただ「まだ落ちていない」だけだ。
「領主様、60年間問題がなかったのは素晴らしいことです。ですが」
「動いてるものを触るな」
ベルクハルトは断言した。
「余の父もそう言っておった。動いているものに手を加えるな。余計なことをすれば、かえって壊れる。触らぬ神に祟りなし、だ」
来た。
リオンの脳裏に、前世の記憶が鮮明に蘇った。
あれは入社5年目のことだった。
基幹システムのデータベースサーバー。シングル構成。冗長化を提案したら、部長に言われた。
「動いてるものを触るな」
一字一句、同じだ。
異世界に来てまで、この台詞を聞くことになるとは思わなかった。
「……領主様」
「それに、金がかかるのだろう?」
ベルクハルトは先回りした。
「コアをもう一つ構築するとなれば、魔法陣の増設工事が必要だ。職人を雇い、素材を集め、工期は数ヶ月。費用は——いくらだ」
「概算ですが、金ゼル30枚ほどかと」
「馬鹿を言え」
ベルクハルトは鼻を鳴らした。
「金ゼル30枚。辺境領の年間予算の何割だと思っている。それを、壊れてもいないものに注ぎ込めと?」
リオンは唇を引き結んだ。
前世でも同じだった。冗長化の提案は、いつも予算で却下される。「壊れてから直せばいい」「壊れたことないから大丈夫」。そう言われ続けてきた。
「領主様、確かに今は動いています。ですが、コアは確実に劣化しています。診断で確認しました。このまま放置すれば」
「放置ではない。今まで通り動かしているだけだ」
「今まで通りでは、いずれ」
「リオン」
ベルクハルトの声が、低く重くなった。
「お前の腕は認めよう。水の魔法陣を直したのも、診断の力も本物だろう。だが」
彼は立ち上がった。リオンを見下ろす。
「余はこの領地を40年治めてきた。防壁が落ちたことは一度もない。お前は15歳の小僧だ。60年動いているものを、15歳の小僧に弄らせるほど余は愚かではない」
正論だった。
少なくとも、この世界の常識では。
動いているものは正しい。長く動いているものは、より正しい。それを変えるリスクのほうが、放置するリスクより高い。そう信じている人間を、論理だけで動かすことはできない。
前世でも、できなかった。
「……承知しました」
リオンは頭を下げた。
館を出て、中庭を歩く。
秋の風が冷たい。空は高く、雲が流れている。
「リオン殿」
追いかけてきたのは、執事のヘルベルトだった。40代半ば、痩せ型で眼鏡をかけた……いや、この世界に眼鏡はない。目を細めて物を見る癖がある、知性的な顔の男だ。
「先ほどのお話」
「聞いていましたか」
「恐れながら。……領主様のお気持ちもわかります。ですが、あなたの言うことにも理がある」
ヘルベルトは声を落とした。
「実は、防壁の『気まぐれ』は、ここ1年で増えています。以前は年に1、2回だったものが、今は月に数回。衛兵たちの間でも不安が広がっておりまして」
「劣化が進んでいる証拠ですね」
「やはり……」
ヘルベルトは眉を曇らせた。
「何かできることはありませんか。領主様を説得する材料でも」
「説得は難しいでしょう。壊れるまでは」
リオンは正直に言った。
「前の世界……いえ、僕の経験上、『動いてるものを触るな』派の人は、実際に壊れるまで動きません。壊れて初めて『なぜ対策しなかった』と言い出す。でも、提案したときには却下したのを忘れてる」
ヘルベルトが苦い顔をした。心当たりがあるのかもしれない。
「ただ——」リオンは続けた。「応急処置はできます。コアの魔力効率を調整して、遅延を減らすことはできる。根本解決にはなりませんが、延命にはなります」
「ぜひ、お願いしたい」
「それと、防壁の状態を定期的に記録してください。強度低下の頻度、時間帯、天候——」
「記録、ですか」
「ログです。障害の傾向を把握するために必要です。いつか領主様を説得するとき、データがあれば話が違います」
ヘルベルトは真剣な顔で頷いた。
「承知しました。衛兵に指示します」
馬車に乗り、館を後にする。
揺れる荷台の上で、リオンはぼんやりと空を見上げていた。
「動いてるものを触るな、か……」
前世の記憶が、次々と蘇る。
入社5年目。基幹DBのシングル構成。冗長化提案。部長の一言。「動いてるものを触るな」。
その3年後、深夜2時にディスクが吹っ飛んだ。復旧に48時間。損害額は冗長化費用の100倍。
部長は言った。「なぜ対策しなかった」。
議事録を見せた。部長は黙った。
「……まあ、そうなるよな」
リオンは苦笑した。
本番環境ぶっつけで障害が起きてからでは遅い。
でも、壊れるまでは誰も金を出さない。
これは前世でも、この世界でも変わらない、永遠の課題だ。
馬車が街道の凹凸で跳ねた。
リオンは診断結果を思い返していた。
あの防壁魔法陣のコア。劣化は確実に進行している。今の頻度で遅延が増え続ければ、早ければ1年、遅くとも2年以内に、致命的な障害が起きる可能性がある。
そのとき、バックアップはない。
フェイルオーバーもない。
防壁は落ちて、領地は丸裸になる。
領主は「動いてるものを触るな」と言った。
動いているうちは、それでいいのかもしれない。
でも、止まったら?
「本番環境ぶっつけで障害が起きてからでは遅いんですが……」
誰に言うともなく、リオンは呟いた。
馬車は揺れ続ける。辺境の街道は整備が行き届かず、車輪が石を踏むたびに体が跳ねる。
ふと、リオンは別のことを考えた。
ベルクハルトの館だけの問題じゃない。
この辺境の防壁魔法陣は、おそらくすべてシングル構成だ。どの村も、どの町も、たった一つのコアに命を預けている。
そしてどの領主も、どの村長も、同じことを言うだろう。
「今まで壊れたことない」
「動いてるものを触るな」
「予算がない」
前世の客先を回っていたときと、何も変わらない。
ルーンフェル村に戻ったのは、日が暮れてからだった。
自室に戻り、リオンは手元の巻物にペンを走らせた。
防壁魔法陣の診断結果。シングル構成のリスク。コアの劣化状況。応急処置の内容。
そして、冗長化の設計案。
領主に却下されたから、やめる?
そんなわけがない。
却下されたなら、記録に残す。設計書を作っておく。いつか必要になったとき、いや必ず必要になる、すぐに動けるように。
「障害は起きる。必ず起きる」
リオンは巻物に書いた。
前世の鉄則だ。
「障害は起きないだろう」ではなく、「障害は起きる」を前提に設計する。
壊れないシステムなんて存在しない。壊れたときにどれだけ早く復旧できるか。壊れても止まらない仕組みをどう作るか。
それが——可用性設計だ。
「……まあ、いつか必ず来るからな」
リオンはペンを置き、巻物を丸めた。
壊れてからでは遅い。
でも、壊れるまでは動けない。
だったら、壊れたとき最速で対応できる準備をしておく。
それが今の自分にできる、精一杯のことだった。
窓の外で、風が鳴っている。
秋が深まり、冬が近づいている。
リオンは机の上の巻物を見つめた。
冗長化設計書。まだ誰にも必要とされていない巻物。
前世で、九条諒も同じことをしていた。
提案書を作り、上に却下され、机の引き出しに入れて——障害が起きた日に引っ張り出す。
「同じことしてるな、僕は」
苦笑が漏れる。
でも、今回は前世と違う結末にしたい。
壊れてから「だから言ったのに」と言うのではなく。
壊れる前に、何とかしたい。
その方法は——まだ、見つかっていない。
リオンは灯火魔法陣の明かりを消して、寝台に横になった。
暗闇の中で、ベルクハルトの言葉が反響している。
——動いてるものを触るな。
動いているうちは、誰も危機感を持たない。
止まったときには、もう遅い。
この世界で——いつか、それを思い知る日が来る。
リオンは、確信していた。
【あとがき】
「動いてるものを触るな」。IT業界で幾度となく聞いた台詞を、異世界の領主に言わせてみました。壊れてからでは遅い、でも壊れるまで予算は出ない。この構図は普遍的です。