静かな情熱、図面の熱
- 山崎行政書士事務所
- 9月17日
- 読了時間: 21分

静かな情熱、図面の熱 — 完全版
(章間に「設計レビュー会議録」と「現場チャット抜粋」を挿入する構成)
語り手:律斗 / 山崎行政書士事務所
目次
微音の朝
雲海精機:赤い点滅と青い逃げ道— 設計レビュー会議録 A / 現場チャット抜粋 A —
仮設が本設の先生をする— 会議録 B / チャット B —
釣り堀弁当と行動の総和— 会議録 C / チャット C —
青葉園:湯気と鍵の所在— 会議録 D / チャット D —
Hello の迷子、鍵が鍵を忘れる夜— 会議録 E / チャット E —
NUMA FISH:欧州の波、NIS2 の風— 会議録 F / チャット F —
合奏:Sentinel・Monitor・New Relic— 会議録 G / チャット G —
供給線の罠:CI/OIDC と最小権限— 会議録 H / チャット H —
静かな経営会議:コストの音量— 会議録 I / チャット I —
大雨の朝と赤い Front Door— 会議録 J / チャット J —
監査は読者:凡例に法務— 会議録 K / チャット K —
人事の風でできた穴— 会議録 L / チャット L —
クラウド祭と舞台袖の静けさ— 会議録 M / チャット M —
茶の湯気、二度目の乾杯— 会議録 N / チャット N —
夜の設計十箇条— 会議録 O / チャット O —
もう一度、雲海へ:運用で回る“次のふつう”— 会議録 P / チャット P —
失われた通知、静かすぎる夜— 会議録 Q / チャット Q —
線の濃さ:失敗の前で太くなる線— 会議録 R / チャット R —
エピローグ:図面の熱
0 微音の朝
朝一番、空調の微音に耳を澄ませる。夜間ジョブは成功。コストの予測線は穏やかだが、ストレージの出口課金が少し膨らんだ。アラートは静か。問題は、どの種類の静けさかだ。
首のヘッドホンを回す。音楽は流さない。僕が聴きたいのは、図面の中で流れる交通整理の音だ。受付では、USB-Cのしっぽを揺らす白猫・やまにゃんが伸びをしていた。
「にゃじゅ〜る(Azure)! 朝礼は三本立てだよ」雲海精機のランサム疑い、青葉園の承継、NUMA FISH の EU 展開。どれも雲で、どれも書類。つまり、僕らの出番だ。
1 雲海精機:赤い点滅と青い逃げ道
窓のないサーバー室は夕暮れの色をしていた。NAS の赤い点滅。「README_RESTORE.txt」。叶多の肩が上がる。蓮斗は冷静だ。証拠保全→隔離→影響範囲。僕は紙に経路を描く。外へ開いた 445、古いファーム、在宅の“便利な直通”。便利の反対語は、安全ではない。設計の努力だ。
仮設の逃げ道を敷く。Azure Files、Entra ID 統合、CAで境界、Defender for Storage、Backup + WORM。「ログは Event Hub 経由で New Relic にも」悠真。「合言葉は?」やまにゃん。「システムに強く、書類に優しい」全員が笑って復旧に入った。
設計レビュー会議録 A(要約)
目的:暗号化範囲の切り分けと仮設共有の安全な立ち上げ
決定:
侵入経路は旧 NAS。外部公開を即時遮断し、証跡採取。
仮設は Azure Files + Private Endpoint + Defender。
役員向けタイムラインを 15 分間隔で更新。
Open:旧 NAS のデータ復旧の採否(費用対効果)。
アクション:蓮斗=ハッシュ採取/悠真=Event Hub 配線/ふみか=社内告知テンプレ。
現場チャット抜粋 A
08:41 悠真:AzureActivity | where OperationName contains "Set Network Rules" で誰がいつ開けたか出る。08:42 叶多:LAN 側 445 も塞いだ。NAS は電源落とす。08:45 やまにゃん:にゃ。猫の好奇心<証拠保全 でお願いします。08:47 りな:役員説明は「仮設→本設→再発防止」の三段で。法律用語は“最小限”にします。
2 仮設が本設の先生をする
仮設ほど、作法が試される。Private Endpoint を閉じ、DNS は Private Zone。“急ごしらえ”こそ美しく。IaC は Terraform。GitHub OIDC で鍵を置かない。what-if の差分は人間承認。奏汰が言う。「workspace で分けます?」「明示変数にしよう。env が名前に乗らないリソースは、夜中に迷子になる」
設計レビュー会議録 B
決定:
名前規則:{system}-{env}-{role}-{seq} を厳守。
audience 固定の Federated Credentials。
what-if 結果をふみかが“経営向け日本語”に翻訳して承認ルートへ。
指標:夜間アラート件数 / 手動承認率 / 変更の巻き戻し件数。
現場チャット抜粋 B
11:12 奏汰:TF_VAR_env=prd で実行、what-if で NSG の差分ゼロ。11:13 陽翔:コスト見込み、夜間停止分で 23% 減。11:15 ふみか:承認画面、専門用語多いので「人間語」化します。11:16 やまにゃん:人間語=猫語の近縁。にゃ。
3 釣り堀弁当と行動の総和
訓練は“おいしく”。弁当の箸袋に擬似サイトの QR。クリックしたらおかず没収、代わりに講座クーポン。三日でクリック率が半分になった。「文化は行動の総和。総和をいじるには、行動を楽しくいじる」りな。
会議録 C
決定:年 4 回の疑似フィッシング+即席講座。
KPI:クリック率、講座完了率、再発率。
注意:羞恥を使わない。笑いと学びの交換にする。
チャット C
13:02 みお:没収おかずはスタッフが責任を持っておいしく頂きました。13:03 りな:証跡は残して。おかずは残さなくていいです。13:05 ゆい:漫画「釣り針は甘口」を次回資料に差し込みます。
4 青葉園:湯気と鍵の所在
老舗茶舗の承継。クラウドの鍵が遺産の真ん中にある。Break Glass の封筒、Key Vault のアクセス、所有者の委譲、PIM。紙の上で関係者の視線が交差するたび、湯気の向こうの表情が和らぐ。「書類は安心の形です」とあやの。
会議録 D
決定:
承継計画にクラウド契約の章を新設。
Break Glass アカウントの保管と年次更新。
Key Vault は RBAC へ移行、監査ログを固定保持。
Open:旧端末の Hello 再登録の窓をどう作るか。
チャット D
10:12 蓮斗:Purge Protection 有効。削除不可。10:15 りな:封印手順書、法務チェック済。10:17 ゆい:説明漫画「鍵が鍵を忘れる」1/6枚できました。
5 Hello の迷子、鍵が鍵を忘れる夜
VPN 越しの Windows Hello for Business が安定しない。Cloud Kerberos Trust と Key Trust の手順が混線していた。「再登録の窓を作ろう」Intune の段階配布、CA で一時例外、PRT の更新をログで可視化。「漫画の出番だね」ゆいが笑う。
会議録 E
決定:
“再登録ウィンドウ”を 48 時間開け、PRT 更新監視。
失敗時のオフライン復旧 Runbook を封書で配布。
KPI:再登録成功率/一人あたり復旧時間。
チャット E
16:30 悠真:EventID 1000/61025 あたりで成否拾える。16:31 奏汰:Intune へ配布リング設定、先行 5%→25%→100%。16:33 やまにゃん:にゃ。混線注意=ケーブル結ばないのと同じ。
6 NUMA FISH:欧州の波、NIS2 の風
欧州の港でパイロット。NIS2、SCC、EU Data Boundary。りながホワイトボードに法務タグ。僕はアーキ図の凡例にDPA/責任分界/データ境界を埋め込む。凡例に法務。図面が契約の通訳になる。
会議録 F
決定:
データ滞留は EU 内。分析の一部は EUDb。移転は SCC で補完。
Managed HSM 検討、鍵の所在を明記。
インシデント 72 時間報告ラインを Runbook に追加。
KPI:越境の有無/鍵操作の監査件数/報告訓練の所要時間。
チャット F
09:42 りな:条項 28/32/33/34 の適合を凡例に紐づけます。09:44 陽翔:EU リージョンのコスト差、許容範囲。09:45 みお:プレゼンに「魚群が GDPR の波を避けるGIF」を入れたい。09:46 あやの:入れて大丈夫。
7 合奏:Sentinel・Monitor・New Relic
監視は合奏だ。Sentinel(安全)、Monitor/Log Analytics(運用)、New Relic(鼓動)。Event Hub が指揮棒の役。「色より音」僕が言うと、悠真が笑う。「味は塩だしね」
会議録 G
決定:
最低 3 本の“味見クエリ”を常備。
SigninLogs 失敗率
AzureActivity の破壊的操作
アプリ遅延の P95
ダッシュボードに“静けさの種類”凡例を追加。
KPI:誤検知率/一次対応平均時間/夜間通知件数。
チャット G
21:05 悠真:SecurityAlert | summarize by ProductName でノイズ源判明。21:07 陽翔:夜間通知 30→11 件に減。21:09 ふみか:広報の睡眠の質が 1.5 倍に。統計です。
8 供給線の罠:CI/OIDC と最小権限
みおが仕掛けたサプライチェーン演習。依存に紛れた悪意、緩い OIDC。蓮斗は audience 固定・最小権限・what-if 承認で黙って潰す。「鍵を置かない勇気」「鍵を持たない自信」言い換えは設計の武器だ。
会議録 H
決定:
人間承認は最小 2 名。
what-if 結果の「破壊的変更」は自動リジェクト。
KPI:デプロイの平均遅延/差し戻し率。
チャット H
18:14 奏汰:roleAssignment の差分あり→ブロック。18:15 みお:演習なのに本当に止められて悔しい。18:16 蓮斗:止められて嬉しい。
9 静かな経営会議:コストの音量
CFO「半分にできますか」僕は三案を出す。A:25%(夜間停止・ログ最適化)/B:30%(階層再設計)/C:50%(冗長間引き)。「C は静かすぎる。A で行きましょう」CFOは笑い、空気が軽くなった。
会議録 I
決定:A 案採用。
KPI:コスト曲線の安定度/障害時 MTTR。
チャット I
14:55 陽翔:夜間停止で 23%、ログ最適化で +4%。14:56 りな:契約の SLA 影響なし。14:58 やまにゃん:費用たいそう第一、は〜いにゃ。
10 大雨の朝と赤い Front Door
台風の朝、Front Door が赤く染まる。ヘルスプローブで切替、キャッシュ優先、重要 API は地理冗長。“本番で学ぶ”のではなく“本番で確認する”。陽翔が言う。「賭けない構成が好きだ」
会議録 J
決定:
冗長切替の演習は四半期 1 回。
ステータス投稿のテンプレを整備。
KPI:切替時間/ユーザー体験劣化率。
チャット J
07:12 悠真:FrontDoorHealthProbeLog 正常→切替完了。07:13 ふみか:SNS テンプレ投下、反応良好。07:14 あやの:広報と運用の合同打合せ、次回日程押さえました。
11 監査は読者:凡例に法務
監査は敵じゃない。読者だ。僕らは“監査パック”を更新する。アーキ図、README、Runbook、静止画ダッシュボード。凡例にDPA/責任分界/データ境界。監査人は図面を読んで首を縦に振った。
会議録 K
決定:監査パックを四半期更新。
KPI:指摘件数/是正所要日数。
チャット K
10:22 監査:図面の凡例が親切。条項との対応表が助かる。10:24 りな:読んでもらえる資料が正義。10:25 やまにゃん:読まれる猫写真も用意しました。10:25 ふみか:後で。
12 人事の風でできた穴
二度目の赤ランプ。原因は人事異動に伴う権限の穴。「設計は正しい。橋が一枚足りない」PIM のテンプレ権限、昇格理由を必須化、人事システム連動、CA の緊急逃げ道。“人の移動”をモニタする視点を月次レビューに足した。
会議録 L
決定:
役割カタログ作成、PIM に 1:1 対応。
退職・異動連携の SLA を人事部と合意。
KPI:不適切権限の検出件数/是正時間。
チャット L
17:40 陽翔:無効化の漏れ 1 件→是正。17:41 りな:人事との覚書ひな形、回覧。17:42 みお:覚書の余白に猫落書きしてもいい?17:42 あやの:だめ。
13 クラウド祭と舞台袖の静けさ
ステージ上。僕は OIDC と what-if の話をする。陽翔は Cost API、奏汰は Bicep、悠真は Sentinel。終演後、若いエンジニアが言った。「静かな話なのに、面白い」**静かな話ほど、面白くなきゃいけない。**それが僕の信条だ。
会議録 M
決定:登壇資料を事例集として公開。
KPI:資料ダウンロード/問合せ件数。
チャット M
19:30 ふみか:反響良。次回“運用で回る LZ”で招待あり。19:31 やまにゃん:出番は 3 にゃ。19:31 みお:何の数字?
14 茶の湯気、二度目の乾杯
青葉園の新店が開く夜。共有メールボックスにドメイン更新通知。PIM の昇格手順。封筒の Break Glass。先代の写真に向かい、家族が静かに乾杯した。書類が人を仲直りさせる夜がある。僕は胸の奥でうなずいた。
会議録 N
決定:承継完了。年次レビュー日を設定。
KPI:計画遵守率/未更新の有無。
チャット N
20:02 ゆい:最終回「鍵が鍵を忘れない」アップ。20:03 さくら:温かいお茶どうぞ。20:04 律斗:ありがとう。湯気は最高の UI だ。
15 夜の設計十箇条
深夜、モニターの光が壁に四角を描く。僕は**“鳴らない夜を作る十箇条”**を書き終えた。三本分離/鍵を置かない/Fail Soft/コストは副産物/凡例に法務/ログは塩/冗長の深さは人の数/仮設は先生/Runbookは物語/静けさの種類を聞き分ける。
会議録 O
決定:十箇条を社の設計原則に採用。
KPI:原則に反する変更の件数。
チャット O
23:58 みお:原則11「仕事は温かい飲み物とともに」追加希望。23:59 りな:社内限定なら検討。00:00 やまにゃん:にゃ(賛成)。
16 もう一度、雲海へ:運用で回る“次のふつう”
仮設で学び、本設へ還元する。Landing Zone を“運用で回る規模”に整え、Policy/Initiative を先に敷く。**“次のふつう”**は、最初から証跡が生える構成だ。
会議録 P
決定:
すべての新規リソースに診断設定の既定。
“何も作らない”ことを証拠化(deny のログ)。
KPI:準拠率/例外の期限管理。
チャット P
11:20 奏汰:deny で 12 件止めた。11:21 陽翔:止まった分、将来の夜間通知が 0 件。11:22 やまにゃん:未来の私たちからお礼が届きました(イメージ)。
17 失われた通知、静かすぎる夜
通知がゼロの夜が来た。嬉しいはずなのに、胸がざわつく。静かすぎるのかもしれない。僕は“味見クエリ”を流す。SigninLogs の失敗がゼロ、AzureActivity の破壊的操作もゼロ、アプリ遅延もゼロ。「ゼロが並ぶときは、どこかが壊れていることがある」
Event Hub の接続が一瞬切れていた。バッファで回復したが、ゼロの谷が生まれていた。**“静けさの種類”**をまたひとつ、体で覚える。
会議録 Q
決定:
“ゼロの谷”検出ルールを追加(到達件数の異常値検知)。
監視そのものの監視(メタ監視)。
KPI:監視断の検出時間/再発件数。
チャット Q
02:11 悠真:メタ監視、動いた。02:12 陽翔:ゼロの谷、5 分で検知。02:13 ふみか:広報の睡眠の質が 1.6 倍に。二度目の統計です。
18 線の濃さ:失敗の前で太くなる線
失敗は嫌いだ。でも、線を太くする。Hub の NSG、意図せぬ許可が 1 つ。演習で見つかった。僕は図面のその線を太く描き直す。凡例に注記を加え、Runbook にペンで太字を入れる。図面は、失敗の前で強くなる。
会議録 R
決定:
NSG ルールの“誰が・なぜ”をタグに埋め込む。
変更理由のテンプレを人間語で。
KPI:不明目的ルールの残存ゼロ。
チャット R
15:31 りな:人間語テンプレ共有。「なぜ必要か/どれだけの期間か/代替は何か」。15:32 みお:全部の申請に“猫の幸福度”を加点したい。15:33 あやの:だめ。
19 エピローグ:図面の熱
半期の最終日。通知は落ち着き、コストの曲線は素直、アラートは心地よい静けさ。窓の外、ポスターが揺れる。「静岡の街とあなたの会社を守る」首のヘッドホンを外す。音は流さない。僕にとって音は、図面の中にある。矢印と凡例と平凡な長方形が、鳴らない夜を鳴らしている。
「律斗。打ち上げ、行こう」あやのが顔を出す。「うん。静かに騒ごう」静かな情熱は、熱量の単位。図面は、温度の器。明日も線を引く。街の体温のために。
— 完 —
付録 A:設計原則・チェックシート(抜粋)
三本分離(env/ID/network)
Federated Credentials(audience 固定/最小権限)
what-if +人間承認
Policy/Initiative 先敷き/診断設定 既定
監視の味見クエリ 3 本/メタ監視
凡例に DPA/責任分界/データ境界
Runbook は物語形式(誰・いつ・どこで・何を・なぜ)
コストは副産物(夜間停止・ログ最適化・出口課金)
PIM テンプレ権限/人事連携/緊急逃げ道
“ゼロの谷”検出/静けさの種類の明示
付録 B:味見クエリ(読み物化したメモ)
サインインの体温
SigninLogs
| summarize fails=countif(ResultType != 0), total=count() by bin(TimeGenerated, 15m)
| extend fail_rate = todouble(fails) / todouble(total + 1)
破壊的操作の影
AzureActivity
| where OperationNameValue has_any ("delete","write")
| summarize count() by bin(TimeGenerated, 15m), Caller
アプリの息継ぎ
AppTraces
| summarize p95=percentile(DurationMs,95) by bin(TimeGenerated, 5m)
“味見は塩。しょっぱすぎず、物足りなさすぎず。”
——律斗視点版——
00 微音の朝
静岡の朝はいつも、街全体が深呼吸をしているみたいだ。事務所のドアを押すと、無人の会議室からほのかな機械音。モニターのバックライトが壁を淡く染める。ヘッドホンは首に掛けるが、音楽は流さない。音がしない世界を好きになったのは、いつからだったろう。
コーヒーの前にルーティンを三つ。一、夜間のジョブ結果。 失敗ゼロ。二、コストの予測線。 月次の曲線は滑らか、でもストレージの出口課金が微増。三、アラートの“静けさ”。 静けさにも種類がある。検知できずに静かなのと、異常がないから静かなのは、同じグラフに見えても別の音だ。
首元のヘッドホンを回して、息を吐いた。今日も“静けさの種類”を見分ける一日が始まる。
01 青いロゴの下で
受付のカウンターに、白い猫が背伸びしていた。しっぽの先はUSB Type-C。「おはよう、やまにゃん」「にゃじゅ〜る! 朝の定例、三本立てだよ」
地元メーカー雲海精機のランサム疑い。切り分けと仮設の共有。
老舗茶舗青葉園の事業承継。Key Vaultの権限委譲と登記の連動。
魚群AINUMA FISHのEU展開。NIS2、SCC、DPAの整合。
「三本とも重いね」と言うと、やまにゃんは胸を張った。「にゃ。だから楽しい。塩梅を決める仕事は、料理と同じにゃ」
ログは塩。僕の口癖を猫に先回りされ、苦笑いした。
02 雲海精機:赤い点滅と青い逃げ道
雲海精機のサーバー室。NASのランプが赤く瞬き、テーブルには「README_RESTORE.txt」。叶多が息を呑む。「メッセージは典型的だな」「感情は後。証拠保全からいこう」蓮斗が淡々と答える。
僕は回線経路を紙に描いた。外部に開いた445、旧NASのファーム未更新、そして在宅からの“便利な直通”。便利の反対語は安全ではない。便利の反対語は、設計の努力だ。
初手セット
該当セグメントの物理切断
暗号化範囲の差分洗い出し
イメージ取得・ハッシュ記録
役員向けの分単位タイムラインをふみかに渡す
「仮設の共有はAzure Filesで組む。AuthはEntra ID統合、境界はCAで締める。アップロードはDefender for Storageで検査。BackupはWORM併用。ログはEvent Hub経由でNew Relicにも…」悠真が続ける。「…流す。異常は両目で見たいから」
社長が深く頭を下げた。「お願いします」僕は首を横に振る。「お願いではなく合意です。私たちは“こう守る”を図面にし、御社が選ぶ。選ぶ権利は御社にあります」
選ばれた図面は、夜までに最初の線を引いた。
03 仮設が本設の先生をする
仮設の共有にアクセス制御を載せ、Private Endpointで閉じる。DNSの迂回はPrivate DNS Zone。「“急ごしらえ”に見えるけど、急ごしらえほど手順が美しくないと事故る」陽翔が笑う。「設計の俳句だね」
復旧に走りながら、僕らは本設のレイアウトを紙からコードへ移しはじめた。Hub&Spoke、ファイアウォール、WAF、Front Door。IaCはTerraform、認証はGitHub OIDC、what-ifの差分は承認フローに乗せる。奏汰が首を傾げる。「workspaceで分岐する?」「いいえ。明示変数でいこう。envが名前に入らないリソースは、夜中に迷子になる」
やまにゃんが頷く。「迷子は保護猫にゃ。にゃじゅ〜る!」
04 釣り堀弁当
復旧の片手で、訓練を仕掛ける。“経理の至急請求書”を装った攻撃シミュレーション。弁当の箸袋に擬似サイトのQR。みおが言う。「踏んだらおかず没収、代わりに講座クーポン」「罰と学びの交換取引、か」「だっておかずは思い出に残る」
結果は上々。クリック率は三日で半減。「文化は行動の総和。総和をいじるには、行動を楽しくいじる」りながまとめた。僕は心の中で付け足す。文化は図面でも変えられる。踏めない線を引く、踏みたくなくなる道を示す。それも設計。
05 青葉園:茶の湯気と鍵の在処
老舗の茶舗、青葉園。先代が遺したのは茶の香りと、クラウドの鍵。ドメイン。M365の全体管理者。Azureのサブスクリプション所有者。Key Vaultの中には証明書と秘密。Soft DeleteとPurge Protectionが牙をむき、親族の合意が追いつかない。
「法務は任せて」あやのが微笑む。「でも、鍵は技術と書類の真ん中にある」りなが机に並べた紙は、遺産分割協議書・DPA・責任分界の雛形。僕は技術側のRunbookを書く。
Break Glassの発行と金庫保管
所有者委譲のステップ
Key Vault Access Policy→RBACへの移行計画
インシデント時の連絡経路と稼働中断の判断基準
「お父さんのタブレット、Windows Hello for Businessが入ってます」蓮斗が気づく。Cloud Kerberos Trustで、VPN経由だとPRTの更新が揺れる。「“鍵が鍵を忘れる”問題だね」ゆいが苦笑い。僕はうなずく。「再登録の窓を作ろう。CAで例外を切り、Intuneのプロファイルを段階配布。漫画の説明は……」「任せてください!」ゆいの目が光る。
湯呑みから立ち上る湯気の向こうで、家族がようやく笑った。書類が人を仲直りさせる夜は、確かにある。
06 NUMA FISH:欧州の波
会議室の空気が海の匂いになる。魚群AIのNUMA FISHが、EUの港でパイロットを始めるのだ。「NIS2は対象?」「SCCとDPAは?」「EU Data Boundaryで足りる?」質問は正しい。答えは設計と紙の両側にある。
りながホワイトボードに箇条書き。
Entity分類(Essential/Important)
データ移転の根拠(SCC or EUDb)
鍵管理(Key Vault Managed HSM検討)
ログ保全(WORMと保持期間)
報告体制(72時間以内の窓口)
僕はアーキ図の凡例に法務タグを入れる。凡例に法務。図面を“契約の通訳”にするのは、僕らの十八番だ。
07 夜の合奏:SentinelとNew Relic
監視の音量を合わせる。Sentinelでセキュリティを、Monitor/Log Analyticsで運用を、New Relicでアプリの鼓動を拾う。それらをEvent Hubで束ねると、音が合奏になる。
「律斗、ダッシュボードの色、好みでいじったでしょ」悠真の軽口に、僕は肩をすくめる。「音のほうが大事だよ」「分かる。色は味付け、音は温度」「そして塩はログ」二人で笑った。
08 供給線の罠
みおが仕掛けたサプライチェーン攻撃の演習。npmに紛れた妙な依存、CIの権限の緩さ、audienceの指定漏れ。蓮斗が淡々と潰していく。Federated Credentialsを最小に、what-ifに人間承認。「鍵を置かない勇気、ね」「鍵を持たない自信、とも言える」僕らはうなずき合った。
09 静かな経営会議
CFOからのひと言。「コスト、半分にできませんか」“できるだけ”という魔法の枕詞がのっていないのは誠実の証だ。
僕は三つの案を持参した。
A案:25%削減。夜間停止、ログ最適化、ストレージの出口削減。
B案:30%削減。Front DoorとWAFの階層再設計、キャッシュ最適化。
C案:50%削減。冗長性を間引く。ただしMTTR延伸。
「静かすぎるのはC案です」会議室が静まり、CFOが笑った。「静かすぎる、か。A案でいこう。安心の音量は下げない」
数字は刀だ。でも鞘がなければ人を斬る。鞘を作るのが設計の仕事だ。
10 やまにゃん式・費用たいそう
夜間停止ジョブが走り、通知が穏やかになる。「費用たいそう第一、は〜いにゃ」やまにゃんが謎の体操を始め、皆がつられて笑う。「笑いは文化、文化は運用。運用は設計」自分で言って少し照れた。
11 大雨の朝と“赤い”Hub
台風の朝。NUMA FISHの欧州リージョンのFront Doorが赤く染まった。障害はリージョン側。だが、我々の設計に逃げ道はある。
ヘルスプローブで切替
キャッシュ優先度を上げ、ユーザー体験の劣化を抑制
重要APIは地理冗長
ステータス投稿は事前原稿を差し替え
「本番でしか学べないことがある」陽翔が言う。「でも本番でしか起こらないような設計は、学びではなく賭けだ」僕は頷く。賭けない構成、それが僕の職業倫理だ。
12 休憩室の哲学
休憩室で、りなが温かいココアを出してくれた。「設計って、性格出るよね」「出るね。僕は小心者だ」「小心者は、都市計画に向いてる。無用の曲がり角を嫌うから」
窓の外で雲が千切れる。“静かな情熱”って、派手な言葉だなと思う。でも、図面の線を一本引くとき、僕の心は確かに熱を出す。温度は低く、熱量は大きい。薪ではなく、石のような熱。
13 茶の湯気、第二幕
青葉園の承継は、紙の整備から運用の呼吸へ移った。共有メールボックスにドメイン更新通知。PIMでの昇格手順。Break Glass鍵の封筒は耐火金庫。先代の写真の前で、店主の娘さんが笑った。「お父さん、これで迷子にならないね」
僕は湯気の匂いを胸に吸い込み、心の中でひとつ頷いた。**“書類に優しい設計”**は、たぶんこの景色のことを言う。
14 広報の火加減
雲海精機に“情報漏えい疑惑”の匿名ポスト。事実無根。ふみかが静かに指示を出す。秒単位のタイムライン、第三者の監査、三層メッセージ。「炎上は火を消すより鍋を下ろす」ゆいの例えに、皆がうなずく。火加減が落ちると、料理はおいしくなった。
15 クラウド祭のステージ
ステージの上に立つと、照明の熱が肌に刺さる。やまにゃんの「にゃじゅ〜る!」で会場が和む。僕はGitHub OIDCの仕組みを、鍵を置かない設計として語った。audience固定、最小権限、what-if、人間承認。後ろで陽翔がCost APIのデモ、奏汰がBicepのwhat-if、悠真がSentinelクエリを歌わせる。
終演後、若いエンジニアが声をかけてくれた。「静かな話なのに、面白かったです」「静かな話ほど、面白くなきゃいけないからね」
16 夜更けの“設計メモ”
設計メモ:鳴らない夜をつくる十箇条
三本分離(環境/ID/ネットワーク)を崩さない
鍵を置かない(OIDC・最小権限)
Fail SafeよりFail Soft(ユーザー体験を壊さず落とす)
コストは副産物(安全と運用の結果として下げる)
凡例に法務(DPA/責任分界/データ境界を図面に)
ログは塩(味見のクエリを持つ)
冗長の深さは人の数(運用要員に合わせる)
仮設は先生(仮設で学び本設へ)
Runbookは物語(誰が、いつ、どこで、なにを、なぜ)
静けさの種類を聞き分ける
メモを書き終えると、首のヘッドホンがすべる。音は相変わらず流れない。でも、頭の中の合奏は止まらない。
17 嵐の前のメール
「半期レビュー、監査部同席でお願いします」ふみかの社内チャットに、僕は「了解」とだけ返した。監査は敵ではない。構成証跡の読者だ。読者にやさしく書けば、物語は伝わる。
監査パックを更新する。
アーキ図(凡例に法務)
IaCリポジトリのREADME(権限とaudience)
Runbook(判断基準を太字)
ダッシュボードの静止画(“静けさの種類”の説明)
やまにゃんが机の端で丸くなる。「監査さん、魚派かな肉派かな」「どっちでも、塩加減が命だよ」「にゃ。ログは塩!」
18 雲海精機:第二波
復旧から一月。再び赤い点滅。原因は人事異動に伴う権限の穴。「設計は正しかった。運用の橋が一枚足りなかった」僕は悔しさを胸の中で噛み、やるべきことを並べた。
役割ごとのテンプレ権限をPIMに載せ、昇格の理由を必須に
退職・異動ワークフローを人事システムと連動
CAのポリシーに緊急逃げ道を設け、手順を封書で配る
月次レビューに**“人の移動”の視点**を追加
「人が動くのは当たり前。設計は当たり前に強いべき」言い終えて、陽翔と目が合う。「ことば、硬派でいいね」
19 相続の続きと、静かな卒業式
青葉園の新店がオープンした日、先代の友人が花を持って訪れた。湯呑みを前に、店主の娘さんが言う。「父は“書類は苦手だ”っていつも…でも今日、店がちゃんと回っているのを見て、書類も悪くないと思いました」「書類は安心の形だからね」図面は安心の道。安心は、音が小さい。
20 エピローグ:図面の熱
半期の最終日。通知は落ち着き、コストの曲線は素直、アラートは心地よい静けさ。窓の外、夜風がポスターを揺らす。“静岡の街とあなたの会社を守る”。
首のヘッドホンを外し、机に置いた。音楽をかけない習慣は、今日も変わらない。僕にとって音は、図面の中にある。矢印や凡例や凡庸な長方形の群れが、鳴らない夜を鳴らしている。
「律斗。打ち上げ、行こう」あやのがドアの隙間から顔を出す。「うん。静かに騒ごう」
歩きながら思う。静かな情熱は、熱量の単位だ。図面は、温度の器だ。そして僕らの仕事は、街の体温を守ることだ。
富士の稜線が黒く沈み、遠くで波が崩れる。明日も図面を引こう。静かな夜のために。静かな街のために。静かな、けれど力強い、人の営みのために。
— 完 —
付録:作中技術・運用ノート(物語内で出てきた要点の“裏側”を一望)
三本分離:環境(dev/stg/prd)・ID境界(CA/PIM/Break Glass)・ネットワーク(Hub&Spoke/Private Link/Firewall/WAF)
鍵を置かない:GitHub OIDC + Federated Credentials(最小権限・audience固定・what-if+人間承認)
仮設→本設:仮設Azure Files/Defender/Backup→本設LZに学びを反映
ログは塩:SigninLogs失敗率・AzureActivity破壊的操作・AppTraces遅延、味見クエリの常備
凡例に法務:DPA/責任分界/データ境界(EUDb/SCC)をアーキ図の凡例へ
相続×クラウド:管理者承継・Key Vault権限・Break Glass・Runbook(判断基準つき)
運用Runbook:誰が/いつ/どこで/何を/なぜ(物語形式)
コスト最適化:夜間停止・ログ最適化・出口課金・キャッシュ戦略(安全優先、結果としての削減)
人の移動:PIMテンプレ権限・人事連動・緊急逃げ道・月次レビューに“人軸”を追加





コメント