見出し画像

東証システム障害から見えたBCP機能の課題

2020年10月1日、東京証券取引所の株式売買システム「arrowhead」(アローヘッド)でシステム障害が発生し、同日中、証券取引が行えないという事象が発生した。日本の金融の中心となる機関で起きた、このシステム障害は、多くの投資家に衝撃を与えた。

今回のシステム障害は東証が記者会見でも説明した通り、ハードウェア障害時のBCP機能(障害時の業務継続機能)が正しく動作しなかったことが原因とされている。

障害の原因や責任の所在について分析した記事は多くあるため、この記事では少し違う視点からの話をする。

今回のシステム障害をシステムエンジニアの視点から見たときに、私はシステム投資を行っている多くの企業が陥っているであろうBCP機能に関する課題を再認識した。

1.東証システム障害の概要

株式売買システム「arrowhead」における障害は以下の経緯で発生した。(事象の図解は東証のニュースリリースより)

細かい用語や仕組みについては後の項目で説明をするため、現時点でわからない点は読み飛ばして構わない。

画像1

①運用系ネットワークにて両現用(Active-Active構成)で運用していた共有ディスク装置の1号機にてメモリ故障が発生
②同機器故障時に2号機への切り替えが失敗
③共有ディスクが正常に動作せず、後続業務機能が異常終了

今回の障害が重大化した原因ともとれる箇所は②の共有ディスク装置故障時の切り替えが失敗した点である。

2.障害発生に備えて実装されるBCP機能とは

そもそもシステム開発を行う際に、システム障害発生時を想定し、障害発生時に業務を継続するための機能や仕組みというものが存在する。それがここまで用語として現れていたBCP(Business Continuity Plan)機能である。

今回の「arrowhead」では

①共有ディスクを2台用意し
②通常時は2台をシステムの処理に利用し
③障害発生時は故障していないディスク1台を利用して業務を継続する

「フェイルオーバー」
という機能が実装されていた。

しかし、今回はそのフェイルオーバーの機能が正しく動作しなかったことにより障害が発生した。

障害に備えて作ったはずの機能が正しく動かない・・・
私自身はこのような事態はどのシステムでも起こりうることであると考えている。

以降、完全なBCP機能の実現が難しいことである理由を述べる。

3.BCP機能の構築が難しい理由

3-1.BCP機能は想定した障害しか対応できない

BCP機能を構築する際は、構築するBCP機能がハードウェアであろうがソフトウェアであろうが、原則、具体的な障害のパターンを洗い出し、洗い出した障害に対して、以下の内容を検討することで設計・開発を行う。

①障害の検知はどのようにして行うか
②検知した障害によって
使えなくなる機能はどこなのか
使用できない機能の代替となる機能はどのように構築するか

つまるところ、ほぼほぼ人間が自分の頭で障害のパターンや対策を考えて、機能を構築することとなる。したがって、障害のパターン漏れ設計ミス実装ミスというものが混入する危険性は大いにある。それは普通のシステム開発と同じことである。

3-2.BCP機能のテストや訓練は無数のシステムが関連する場合がある

東証の「arrowhead」ような大規模かつ、他機関等のシステムとの接続が多いシステムの場合、障害に備えたBCP機能のテストや訓練を行う場合、多くのシステムを巻き込むことになる。

本来であれば、各システムを保持する証券会社や東証内のシステムそれぞれに参加してもらい、障害時のテストや訓練を行うことが理想であるが、当然、多くの他機関に協力してもらうことは非常に難しく、労力のかかることであるため、大規模なBCP機能のテストや訓練は行われないパターンがある。

3-3.BCP機能自体は企業側の「利益」に繋がらない

企業がBCP機能の投資に前向きでない理由として、最も大きな理由であると私が考えている点はBCP機能の実現にかかるコストである。

BCP機能というのはシステムに障害が発生した際の機能であり、通常業務を継続することを目的としているため、それ単体では投資額に見合った利益とならないのである。

通常、企業のIT投資とは、システムを導入することによって、以下のような収益面での効果を得ることが目的とされている。

①新規ビジネス開始、既存ビジネスの拡大(売上・利益の向上)
②自動化による業務効率化(人件費の削減)

そんな中で、利益に繋がらないBCP機能というのは、システム投資を行う会社の経営層からは軽視される傾向にあるように思う。そしてそれによって、BCP機能開発や訓練に投入する予算が絞られる場面を見てきた。

4.リアルタイム化が進む時代に求められる金融機関の姿勢

上記のような背景があり、BCP機能の構築は、導入する企業の経済面等の技術面以外の要因で、非常に難易度が高いものとなっていることはわかっていただけただろうか。

しかし、金融業務におけるシステム化・リアルタイム化が当たり前となった昨今では、システムが停止することによって引き起こされる損害は計り知れないことから、BCP機能は決して軽視して良い機能ではない。

自身がこれから開発を行うシステムにおいては、導入企業に向けBCP機能の重要性を説き、関わる利用者にとって安全なシステムとなるよう、適切な提案をしていきたい。


=========================================
今回の記事が面白かった方は「スキ」「フォロー」をお願い致します!!
コメント・ご意見もお待ちしております。

◆Twitter
https://twitter.com/ShiroponV

◆YouTube
https://www.youtube.com/channel/UCKcAFibAxdy2jJoZrgYENMg

この記事が気に入ったらサポートをしてみませんか?