安定稼働と信頼:止めない努力から、壊れても守る能力へ
金融機関で安全・安定稼働は信頼の大前提です。ただし障害ゼロを約束するのではなく、重要業務を定義し、予防・検知・縮退・復旧・学習を一体で設計します。
金融ITの技術選択、品質保証、安定稼働、業界の変化を設計判断へつなげる。
先に学ぶ内容 — Prerequisite: 銀行システム / ソフトウェア工学学ぶこと — LEARNING GOALS
このページで学ぶこと
- 可用性とオペレーショナル・レジリエンスの違い
- SLI・SLO・耐性度・RTO/RPOの使い分け
- 障害時に顧客と資金を守る運用設計
体験42 · FINANCIAL RELIABILITY(稼働と正しさの違い)
health endpointが「UP」と返せば、振込機能も正常に使える状態と言えるか確かめよう
まずは予想をひと言。本文を読んだ後、教材内の参照元で実際のhealth endpointと整合性チェックを確認します。
- 01まず予想する — PREDICT
まずここだけ:思ったことをひと言書く
health endpointが『UP』と返せば、振込機能も正常に使える状態だと言えると思いますか?
正解でなくて大丈夫です。「〜だと思う」から始めてみましょう。
ヒント1を見る
healthは何を確認していて、何を確認していないでしょうか?
ヒント2を見る
サーバーが起動していることと、業務が正しく進むことは同じでしょうか?
もっと詳しく:この問いで使う専門用語
- Operational Resilienceは、混乱が起きても重要業務を許容範囲で続ける能力です。
- SLOは、利用者に提供する信頼性の目標です。
- RTO / RPOは、復旧時間と、復元するdata時点の目標です。
日常語で理解する — PLAIN LANGUAGE
まず、ここだけつかむ
安定稼働はserverが起動していることではなく、顧客に約束した重要業務を正しいdataで提供できることです。
障害を完全になくすだけでなく、障害が起きても影響を抑え、重要業務を継続・復旧するoperational resilienceを設計します。
architecture、capacity、変更管理、監視、incident対応、DR、third party、継続的学習を1つの能力として運用します。
順番に理解する — DIFFICULT PARTS, STEP BY STEP
難しいポイントを、順番にほどく
専門用語を覚えることより、「なぜ必要か」「このシステムのどこで使うか」を理解することが目標です。
Operational Resilience
混乱が起きても重要業務を許容範囲で続ける能力です。
system障害、cyber、災害、外部provider停止を完全には防げないためです。
重要な振込経路とLedger整合性を中心に考えます。
SLO
利用者に提供する信頼性の目標です。
安定を測定可能にし、releaseと改善の判断へ使うためです。
振込成功率や遅延の正式SLOはまだ確認できません。
RTO / RPO
復旧時間と、復元するdata時点の目標です。
backupがあるだけで必要時間内に業務を戻せるとは限らないためです。
復元後はLedgerと残高の照合も必要です。
発展 — ADVANCEDもっと詳しく確認する最初の学習では読まなくても問題ありません。仕組みをもっと深く理解したい場合に開いてください。
安定稼働は『サーバーが起動中』ではない
利用者へ約束した重要業務が、正しいデータで許容時間内に提供されているかを測ります。component healthではなくend-to-end outcomeを中心にします。
| 状態 | 技術的には | 顧客・業務から見ると |
|---|---|---|
| Webは200を返す | HTTP processは応答 | 残高が古ければ利用可能とは言えない |
| DBは接続可能 | connection成功 | Ledger不一致なら正常とは言えない |
| 振込を受付 | request保存成功 | 実行状態を追えなければ信頼できない |
| 復旧完了 | server再起動 | 欠落・重複・順序・会計を照合して初めて業務復旧 |
可用性からオペレーショナル・レジリエンスへ
可用性はserviceを利用できる時間や成功率を表す重要な指標です。オペレーショナル・レジリエンスはさらに広く、system障害、cyber攻撃、災害、感染症、third party停止などが起きても重要業務を許容範囲で継続・復旧する能力を扱います。
すべての機能を同じ水準で守るのではなく、顧客・市場・金融systemへの影響から重要業務と耐性度を決めます。
- 01重要業務を特定
- 02中断が許される時間・件数・金額・data lossを定義
- 03人・process・technology・third partyの依存をmap
- 04極端だが起こり得るscenarioでtest
- 05差異を改善し、経営へ報告
- 06incidentから学び耐性度と計画を更新
信頼性を測る代表的な指標
| 指標 | 答える問い | 注意点 |
|---|---|---|
| SLI | 実際にどう動いたか | 成功率・遅延・正確性など利用者視点で測る |
| SLO | どの水準を目標にするか | 100%という願望でなく意思決定へ使う |
| Error budget | どれだけ失敗を許容できるか | 超過時のrelease・改善方針と結ぶ |
| RTO | 何時間で復旧するか | system起動でなく業務再開まで |
| RPO | どの時点までdataを戻すか | Ledgerでは単純なdata loss許容が難しい |
| 耐性度 | 重要業務がどこまで中断・劣化してよいか | 時間だけでなく件数・顧客・市場影響も含む |
安定稼働を作る8つの能力
- Architecture:single point of failureとblast radiusを減らす
- Capacity:peak、burst、依存先制限、backpressureを管理
- Change:小さなrelease、feature flag、canary、rollback
- Observability:metric、log、trace、業務event、reconciliation
- Incident:検知、指揮、連絡、止血、証拠保存、復旧
- Continuity:代替手段、DR、backup、復元・切替訓練
- Third party:due diligence、SLA、監視、exit plan、集中risk
- Learning:blameless reviewをconstraint・test・runbookへ反映
Minibankで安定稼働を考える
Minibankはtransaction、idempotency、lock、Audit、Reconciliationにより1件の金融処理の正しさを学べます。health endpointだけでなく、振込成功率、OTP失敗、RPC遅延、lock待ち、Ledger差異を観測する必要があります。
正式なSLO、on-call、capacity test、DR、third-party exitは実装済みと確認できません。教材では『あるべき姿』と『現在ある証拠』を区別します。
体験学習の続き · LEARNING LOOP
ここまで読めましたか?続けて確認してみましょう
Operational ResilienceとSLOの考え方を読んだところで、教材内の参照元で実際のhealth endpointと整合性チェックを確認し、自分の言葉で説明してみます。
- 02仕組みを確かめる — CONCEPT CHECK
画面操作なしで、仕組みを確かめる
この仕組みは、Mini Bankの画面には現れません。次のEvidenceとCode Trail、教材本文だけで理解を進めます。
- 03証拠を確認する — EVIDENCE
何を見たか、1つずつ確かめる
Evidence(判断の根拠となる記録)を確認したらチェックします。各項目の「何を見るか」を手がかりにしてください。
画面を開けない項目は、Source Trail(教材の参照元)と教材の説明で確認できます。失敗を実際に起こす必要はありません。
- 04コードの処理経路を追う — CODE TRAIL
コードを書く必要はありません
ここでは「説明されている仕組みが、実際のMini Bankのどこに実装されているか」を確認します。まずは日本語の役割説明を読み、入力した依頼がどこへ渡るかをつかみましょう。コードの全文を読む必要はありません。
まずhealth endpointが何を確認しているかを見て、次に整合性チェックが別の観測点であることを見ます。
教材の参照元を確認する — Source Trail ↓現在のhealth endpoint。
src/app/api/v1/health/route.ts整合性異常を確認する管理画面。
src/app/admin/(protected)/integrity/page.tsx - 05自分の言葉で説明する — EXPLAIN
LEVEL 1 — やさしい説明(まずここだけ)
なぜhealth endpointの応答だけでは、業務が正しく提供されているかを判断できないのでしょうか? 短い2文を目安に説明してください。
日常語だけで完了できます。専門用語の数や正誤を自動採点するものではありません。
ヒント1を見る
「Operational Resilience」という言葉を使って書いてみましょう。
ヒント2を見る
業務指標として何を測るべきか考えてみましょう。
もっと詳しく:LEVEL 2 — 専門用語を使った説明(任意)
Operational Resilience、SLO、RTO / RPOの3つを使って、安定稼働がserver uptime以上の意味を持つ理由を説明してみましょう。
挑戦する場合は、上の説明欄に追記できます。追加しなくても完了できます。
説明の確認ポイント — Checkpoint- healthのUPと業務の正しさは別だと説明できる
- 利用者にとって重要な指標を別途測る必要があると説明できる
理解を確かめる — CHECK YOUR UNDERSTANDING
3問で理解チェック
答えを頭の中で考えてから、各項目を開いて確認してください。
Q1healthがUPなら業務復旧完了ですか?
いいえ。取引の欠落・重複・順序・Ledger整合性を確認する必要があります。
Q2冗長化すればbackupは不要ですか?
不要にはなりません。同じbugや誤操作が冗長系へ複製される可能性があります。
Q3安定稼働を支えるのは運用部門だけですか?
いいえ。経営、業務、開発、security、外部providerを含む共同責任です。
完全に暗記する必要はありません。大切な考え方を説明できそうなら押してください。
業界・外部の参照元 — INDUSTRY / EXTERNAL SOURCE
業界資料・参考文献
一般論と業界知識の根拠です。外部サイトを新しいタブで開きます。
- 金融庁 — 主要行等向け監督指針:オペレーショナル・レジリエンス
重要業務、耐性度、依存関係、scenario testに関する監督上の考え方
- Basel Committee — Principles for operational resilience
governance、operational risk、business continuity、third party、incident、ICT resilienceの国際原則
- Basel Committee — ICT risk management: range of practices
非悪意のICT incidentを含む2026年時点のrisk management practice
教材の参照元 — SOURCE TRAIL
根拠と関連教材
CURRENT IMPLEMENTATIONは確認したrepository内の実装です。HISTORICAL IMPLEMENTATIONは導入・修正の履歴で、後続migrationによる再定義があり得ます。RELATED LESSONは教材への案内で、実装の一次Sourceではありません。ASSUMPTIONは仮定、UNKNOWNは未確認を表します。
確認基点: d02eae8914f39cbf06bfe422dc39c71886f82b3e / 2026-09-11。稼働環境への適用確認: UNKNOWN。パス実在の自動検査と、記述した技術的事実の確認は別です。
- 現在の実装 — CURRENT IMPLEMENTATION
src/app/api/v1/health/route.ts現在のhealth endpoint - 現在の実装 — CURRENT IMPLEMENTATION
src/app/admin/(protected)/integrity/整合性異常を確認する管理画面 - 過去の実装 — HISTORICAL IMPLEMENTATION
supabase/migrations/transaction、reconciliation、auditの実装 - 関連教材 — RELATED LESSON/docs/transaction-design関連教材の入口。Operational ReadinessとReliability / Incidentの既存教材