あらゆるプラットフォーム上で情報システムの利用が広まっている現代において、システム障害に関連するニュースや記事を目にすることは日常的になっていると感じます。システムを運用/管理されている方にとっては、明日は我が身と身につまされる思いではないかと推察します。
本コラムでは、システム障害を取り巻く現状について考えてみたいと思います。
システム障害とは
システム障害とは、何かしらの要因で情報システムに問題が発生して正常な機能を提供できない状態となること、または、その要因となる問題や不具合のことを言います。
システム障害は、企業や個人にとって大きなリスクをもたらすもので、最近耳にしたものでも、通信事業者の回線が利用できない、オンラインバンクが利用できない、チケットが発券できない、電子決裁が利用できないなど、利用者でもある私達の生活に支障が出るケースもあります。
システム障害の要因
システム障害の要因は大きく6種類に大別されるといわれます。
各要因とその代表的な対策について紹介します。
1.ハードウェアの故障
コンピューターシステムやサーバーなどが物理的に故障することがあります。その対象として、CPU、メモリ、ハードディスク、ファン、電源、マザーボード、ネットワークボード、シャーシなどの故障のほか、停電が原因となることもあります。部品や筐体そのものを二重化したり、無停電化をするなどの対策が取られています。
2.ソフトウェアのバグ
オペレーティングシステムやドライバ、アプリケーションなどのソフトウェアに存在するプログラムのエラーがシステム障害の要因となることがあります。オーバーロード(過負荷)、メモリリーク、デッドロック、想定外の処理エラーなどが挙げられます。安定したソフトウェアを導入すること、大規模な開発を伴う場合にはソフトウェアのテストにコストを投入するなどの対策が取られています。
※メモリリークとは:プログラミングにおけるバグの一種。プログラムが確保したメモリの一部、または全部を解放するのを忘れ、確保したままになってしまうこと。
※デッドロックとは:複数の実行中のプログラムが互いに他のプログラムの結果待ちとなり、待機状態に入ったまま動かなくなる現象のこと。
3.ネットワーク要因
ネットワークインフラの障害などによって通信が妨げられることが要因となり、発生するシステム障害です。オーバーロード、回線装置の故障、ケーブル破損のほか、DDoS攻撃など外部からの攻撃もその原因となります。回線装置や経路の二重化、各種障害に対応するソリューションの導入といった対策が取られています。
※DDoS攻撃とは:ウェブサイトやサーバーに対して意図的に過剰なアクセスやデータを送付して負荷をかけて脆弱性をつくサイバー攻撃のこと。
4.ヒューマンエラー
人によるオペレーションミスがシステム障害の要因となることがあります。システム/ハードウェア/ネットワークの誤操作のほか、機密情報の遺失などが挙げられます。オペレーションの標準化、OJT/OffJT、2人体制による多重化、セキュリティ研修、個々人の意識向上など対策には限りがありませんが、減少に向けた取り組みが取られています。
5.セキュリティ侵害
悪意を持ったシステムハッキングやウィルス感染などがシステム障害の要因となることがあります。不正アクセス、ウィルス感染、機密情報の盗難、システムの破壊などが挙げられます。各種の対策ソリューション、セキュリティ研修、個々人の意識向上など対策には限りがありませんが、減少に向けた取り組みが取られています。
6.自然災害
自然災害がシステム障害の要因となることがあります。地震、洪水、台風、落雷などによりデータセンターやインフラにダメージを与え、システムの停止やデータの損失を引き起こすことがあります。自然災害への対策は難しいですが、大規模システムでは拠点の多重化、自然災害の少ない地域を選ぶといった対策が取られています。
このように、各要因に対して示した予防策や対応策を講じることで、システム全体の安定性と信頼性を向上させることができます。
システム障害の対応の内情
システム障害が発生すると、復旧に向けた対応が発生します。これは基本的に『人』が対応することになります。
ここでは、システム障害の対応にまつわる主な項目と、その内情について紹介します。
障害対応の経験
トレーニングなどにより過去の事例についての知識を身につけることはできます。しかしながら、過去の事例と類似した障害が再発した場合は比較的冷静に対応できるものですが、過去に発生した障害には、何らかの恒久対策が取られていたりしますので、類似の事象はほぼ再発はしません。
(内情)
トレーニングで身に付けた知識とシステム障害を実体験した人との経験の間には、その時の空気感や緊張感、先の見えない不安を経験した人にしか無い経験値など、どうしても埋められない差があります。恒久対応への考え方が異なり、危機意識も高くなります。
しかしながら『人』には限界があるため、経験者だけで対応することはできません。経験者の状態を維持することも難しく、その対応力も衰えていく性質もあります (筋力が低下するイメージです) 。また、経験のない未知のエラーとの遭遇は、突然戦場に放り出されるイメージに近いと思います。
初動は重要
システム障害となった場合のリスクを優先して、無害化が確認できれば後から取り下げる前提で、未知のエラーは必ず報告することが重要です。
(内情)
一報を入れるまでの時間設定 (30分以内など) がされることがありますが、それはかなり短い時間です。色々と調べてちょっと迷っている間に時間は過ぎてしまうので、急いで一報を入れることが必要です。現場では一報するだけでも負担は大きく面倒な作業であることには違いありません。電話は繋がらないことも多いので携帯メールに同報するなどが望ましいでしょう。
体制を整える
1人任せにせず、2人体制で対応する。現場責任者および顧客責任者と経過報告、終息宣言など逐次情報を共有するなど、体制を整えておくことが重要です。
(内情)
復旧の知らせを待つ側は状況が気になって仕方ないものです。状況に変化があったら必ず報告、それ以外にも1時間毎の定期報告するといった報告体制を整えることが大切です。
時系列の記録を残す
対応した内容と日時の情報は時系列で残すことが重要です。
(内情)
走り書きのメモでも良いので一時的な記録を残しておき、後に障害報告として清書するようにしましょう。障害報告への記載、ログとの照らし合わせなど、後々必要となってきます。ログは何かのタイミングで消えることもあるので早い内に確保することが大切です。
上記のような内容は、実際には情報システムの対応ルールに定められていることも多いと思います。まだ整えられていない場合は、このようなポイントを押さえてルールに盛り込むという使い方もできるかと思います。
まとめ
システム障害は避けられないリスクであり、それに備えるための継続的な取り組みと適切な対策とそれを実行する体制が必要です。情報システムの提供者には、リスク管理の観点からシステム障害に対する準備と対応を行い、システムの安定性と信頼性を確保することが求められます。
今回のコラムより、軽重の差はあれど情報システムを利用する誰もがその当事者となる可能性があると思いますので、システム障害について知っていただき、ひとりひとりが意識することで、少しずつでもシステム障害を減らす一助になれば幸いです。
参考
情報処理推進機構 | 重要インフラ分野のシステム障害への対策
https://www.ipa.go.jp/archive/digital/iot-en-ci/system/system.html
※記載の製品名は、各社の商標または登録商標です。