システム障害の事例からみる原因と対策
近年、IT技術の発達により、私たちの生活や企業活動とシステムはより密接になっています。しかし、ここ数年でシステムトラブルやシステム障害の発生が増えてきています。システム障害が起きると顧客満足度の低下や企業への不信感、機会損失など企業にとっては大規模な損害が生じます。
しかし、それを避けるためにシステム障害が起きてしまう原因を知り、事前に対策ができれば安心できるはずです。
本コラムでは事例を交えながらシステム障害が起こる原因とその対策について紹介します。
1.システム障害とは
システム障害とは、何らかの原因で情報システムを構成する機械やソフトウェア、通信回線、ネットワークなどに問題が発生し、正常な状態を維持できなくなることです。また、その原因となった問題や不具合のことを言います。
インターネットやITの普及により2009年以降システム障害の発生件数は増加傾向であり、2019年の発生件数は過去最大と言われています。
企業でシステム障害が起きると業務の中断や顧客へのサービス提供ができなくなる事態に発展します。特に金融機関や通信事業者、行政機関などでシステム障害が発生すると、社会全体に大きな影響を及ぼします。
2.システム障害になる原因
では、システム障害が起きてしまう原因は何でしょうか。例えば、コンピュータウイルスや使用しているハードウェア、ソフトウェアの故障を思い浮かべる人は多いと思います。
実はシステム障害の原因は大きく分けると主に「ハードウェア障害」「ヒューマンエラー」「ソフトウェア障害」「コンピュータウイルス」「盗難」「自然災害」の6つに大別されます。
実際のシステム障害の原因には「ハードウェア・ソフトウェアシステムの故障や破損、データ量の超過やアクセスの集中などによるシステムの処理能力の超過、サイバー攻撃、作業ミス、設計や開発段階でのバグの見落としによるソフトウェアの不具合、メンテナンスや保守作業の不備、システムの脆弱性を狙ったSQLインジェクション」などが挙げられます。
3.システム障害の事例
それでは、実際にどういったシステム障害が過去に発生したのでしょうか。ここではいくつかの事例を紹介します。
①処理性能の超過によるシステム障害
2021年6月に大手キャリアでシステム障害が発生し、約10時間の間、バーコード決済などの利用ができない事態が起きました。
背景として、その大手キャリアは2021年3月末頃に新料金プランを開始しており、その結果新規顧客や他キャリアからの乗り換えでユーザーが増えたことや、5月末~6月にかけてバーコード決済によるポイント還元キャンペーンの実施により、バーコード決済を利用する人が増えました。
これらの影響により決済のデータ量がサーバの処理性能を超過してしまい、システムが停止しました。
当時そのバーコード決済を利用していた人は約3500万人と言われています。それだけの利用者が約10時間の間、システム障害によって利用できない事態になってしまったのは大手キャリアにとって大きな損失となりました。
②通信網のシステム障害によるサービスダウン
2019年2月にクレジット決済サービスを提供している会社でシステム障害が起こり、クレジットカード等のカード決済が行えない事態が起きました。
クレジット決済を行う会社はクレジットカード会社と加盟店を結ぶサービスであり、このサービスの通信網に障害が起き、一時的にサービスがダウンしました。その結果、カード決済ができなくなるという事態に発展しました。
また、障害発生から復旧までに時間がかかったのは円滑に代替機との切り替えができなかったという作業ミスが原因との一部報道もあります。
この障害は約40分間続き、決済件数で約10万件、端末台数で約70万台に影響が出ました。
③プログラム不具合によるシステム障害
2019年1月某日に約2日間かけて、大手コンビニなどに設置してある銀行の小型ATMで暗証番号の入力を間違えた際に、一部の提携金融機関のキャッシュカードが取り込まれてしまうという不具合が発生しました。
背景として、その銀行では2018年の年末にシステムの更新を行った際、プログラムの不具合により一部システムの更新で失敗が発生したのが原因だとしています。
システム障害が起きた期間に提携金融機関のカードの取り扱いは約15万件あり、取り込まれたカードの件数は981件と言われています。
④システムの高負荷によるシステム障害
レンタルサーバサービスを提供している会社で、2018年に約1ヶ月の間メールの送受信やサーバのファイル転送ができないというシステム障害が断続的に発生しました。
ストレージシステムでのデータ処理において一時的に高負荷が発生したためにストレージを増強しましたが、設定値を誤ったためストレージ全体の処理能力が低下してしまいました。その結果、一時サービスを全面停止してストレージの増強と設定値の適正化を行いました。
その会社のサービスを利用するユーザー数は中小企業や官公庁などを合わせて約2万社とされており、サービスの停止による被害は大規模なものになりました。
4.システム障害の対策
システム障害が起きると社会に大きな影響を与えます。しかし、システム障害が起きる前に対策を実施すれば安全に企業活動が行え、顧客に満足して利用して頂けるはずです。
では、どのような対策をすればよいのでしょうか。ここからはいくつかの対策を紹介します。
①負荷分散で処理能力の維持
サーバへのアクセス集中などでシステムに高負荷がかかると処理が追い付かず、システム障害が発生する恐れがあります。これを防ぐために、負荷分散を行うのが対策の一つです。負荷分散の仕組みを導入することで、サーバにかかる負荷を分散し、処理速度や通信速度を落とさずにシステムを運用できます。
とはいえ、負荷分散の導入にはコストがかかるデメリットがあります。
負荷分散を導入する前に、運用するシステムがどこまでの負荷に耐えられるかテストを行いましょう。その結果、想定した負荷に耐えられない場合は、負荷分散の仕組みを検討します。
②システムの脆弱性の診断
近年ではデータの改ざんや破壊、ウイルス攻撃、SQLインジェクションといったサイバー攻撃が増え、知らない間にシステムが攻撃を受けているという事例もあります。このようなサイバー攻撃はシステムやセキュリティの弱点などを狙って攻撃してきます。
なので、運用するシステムの脆弱性を診断することが大事です。脆弱性とはプログラムの不具合などで発生したセキュリティ上の欠陥のことです。この脆弱性を診断することで、どこにセキュリティリスクがあるかを把握できます。その結果、リスクに対する対策が適切に打てるようになります。
③クラウド環境の導入
日本は災害大国と言われており、地震や台風などの被害により、施設に設置したサーバに問題が生じるリスクがあります。対策としてクラウド環境を構築し、環境を分散することで施設のシステムがダウンしても、事業を継続して行うことができます。
例えば、2011年の東日本大震災の時にクラウドによる分散環境がなかった病院では、電子カルテシステムがダウンして患者のデータが活用できませんでした。一方で、クラウド環境を導入していた病院では電子カルテのデータをデータセンターに蓄積していたおかげで、患者の診療を継続できたという事例もあります。
クラウド環境の導入で、災害時やハードウェアの破壊が起きたとしても、事業を止めずに継続することができます。
④テストによるシステムの品質向上
ソフトウェアの開発や設計段階で作り込んだバグに気づかずにソフトウェアを使用すると、運用時に不具合が発生してシステム障害が起きる恐れがあります。そのような不具合やバグを見つけるためには、テストを実施する必要があります。
「仕様に不備がないか」、「正しく動作をするか」といったテストをすることで、ソフトウェアに存在するバグや不具合を見つけることができ、修正することでソフトウェア全体の品質が向上します。その結果、システム障害の発生リスクを軽減できます。
⑤人為的ミスの防止
保守や運用時のヒューマンエラー(人間による誤認識、誤操作)によるシステム障害も多く発生しています。特に「見間違い、聞き間違い」「思い込みや誤った知識の習得」「やり忘れや勘違い」が原因でシステム障害へと発展します。
なので、こうしたヒューマンエラーを防ぐ対策が必要です。
例えば
・チェックリストを作成し、作業漏れなどをなくす。
・複数人によるダブルチェックを行う。
・判断基準を統一するためのマニュアルの作成。
・聞き間違いなどを防ぐために文書化して伝達する。
・ヒヤリハットの事例を共有する。
などの対策により、未然に人為的ミスを防止できます。
5. まとめ
現代ではシステム障害の数が年々増えています。また、たった1つのシステム障害で、簡単に企業への信頼が失墜し、顧客の不信感が募っていきます。
とはいえ、多くの方々が「そうはいっても、私たちは大丈夫でしょう」と考えています。今回紹介した事例にある企業の方々も、自分のところでシステム障害が起きるとは思っていなかったはずですが、いつ、どこで気づかないうちに不具合が生じてもおかしくありません。
なので、そうならないためにも、事前の対策が必要です。例えば今回紹介した負荷分散やクラウド環境の導入、脆弱性の診断や品質向上のためのテストを行うことが対策の一環になります。「備えあれば患いなし」という言葉があるように、事前の対策を検討してみてください。
当社では上流工程から下流工程まで一貫した検証を行う第三者検証やシステムのセキュリティリスクを洗い出す脆弱性診断を独自のテスト観点から実施し、お客様の品質向上のお手伝いを行っています。
「第三者にシステムの品質を評価して欲しい」とお考えの方は、ぜひお気軽にお問い合わせください。