HOMEソフトウェア高信頼化報告書・出版物・ツール事業成果(報告書等)「情報処理システム高信頼化教訓集(ITサービス編)」 2016年度版公開

本文を印刷する

ソフトウェア高信頼化

「情報処理システム高信頼化教訓集(ITサービス編)」 2016年度版公開

2017年4月28日更新
2017年3月27日公開
独立行政法人情報処理推進機構
技術本部 ソフトウェア高信頼化センター

概要

 IPA/SECは、ITサービスを担うシステムに発生した障害の再発防止や再発時の影響範囲縮小を目的に、障害事例の情報を収集・分析し、対策を整理・体系化した上で、業界・分野を越えて共有するための取組みを行っています。その取組みの一環として、障害事例から得られた経験やノウハウを「教訓」として普遍化し、「情報処理システム高信頼化教訓集(ITサービス編)」として 2014年5月13日に初版を公開後、毎年、新たな「教訓」を追加して、最新化を行ってきました。
 今回、教訓の更なる活用推進を図るため、本教訓集の内容を拡充した教訓集2016年度版を公開しました。教訓集2016年度版では、2016年度に作成した最新の教訓や、事例から見えてくる傾向について「ヒューマンエラー」および「システムの高負荷/過負荷」の観点から分析し、原因や対策について考察した結果を追加しています。

 ※「情報処理システム高信頼化教訓集(組込みシステム編)」はこちら

背景

 ITシステムは、今や私たちの生活や社会・経済基盤を支えるあらゆる重要インフラ分野(*1)のサービスに深く浸透しています。社会に大きな影響を与える大規模システム障害の発生件数は増加傾向にあり、新聞やテレビなどのメディアでも以下のようなシステム障害に関するニュースを目にする機会が増えています。

  ・○○システムで障害か、終日つながりにくく
    原因は、法律改正直前の駆け込み需要と期末の締め処理とが重なり、想定外の大量入力にシステムの性能が耐えられなかったことである模様。
  ・□□システムで障害、午前中のサービス停止
    原因は、システムの本番装置の故障時に予備装置への自動切替えに失敗したことである模様。

 この背景には、システム障害の原因分析や発生防止対策などの情報が業界内で共有されておらず、類似の障害が繰り返し発生してしまう実状があります。障害が発生しても被害状況等の外から見える情報以外の詳しい情報が公開されず、関係企業のみによって内々に対処されることが多く、一部の大規模障害についてはシステム内部の情報が公開されることがあるものの、その情報が特定の事例に限られた対応策となっている場合が多いため、参考として他社のシステムに活かされにくいことなどが考えられます。

 この問題に対してIPA/SECでは、ITサービスの障害情報の収集・分析と対策の検討を行い、その結果を普遍化した「教訓」として取りまとめ、「情報処理システム高信頼化教訓集(ITサービス編)」として公開しています。

本教訓集の特徴

 この教訓集は、実際に発生したシステム障害を題材に、その原因や再発防止策を検討した結果を以下の観点で取りまとめたもので、幅広い分野において利用できることを目指した内容になっています。

  1. 複数の重要インフラ分野等の有識者・専門家による「重要インフラITサービス高信頼化部会」において多方面から考察を行い、業界横断的に利用可能な要素を抽出する。(図1)
  2. 所定の機密保持ルール(教訓集PartⅠ付録A参照)に従って収集した、これまで一般には未公開であった事例や情報も素材として原因や対策について考察する。
  3. 有識者・専門家の豊富な経験に基づく知見と、IPA/SEC の10年以上の活動で蓄積されたソフトウェアエンジニアリングに関する検討の成果をもとに取りまとめ、技術領域に加え、ガバナンス/マネジメント領域も対象に教訓を整理する。

図1_事例の収集・教訓化の体制と流れ

図1 事例の収集・教訓化の体制と流れ

教訓の例

各教訓は、内容により技術領域、ガバナンス/マネジメント領域の2つの観点で分類して掲載しています。(表1)

表1 掲載された教訓

太字は2016年度追加分

教訓ID 教訓概要
ガバナンス/マネジメント領域
G1 システム開発を情シス部門だけの仕事にせず、各事業部門が自分のこととして捉える「態勢」をつくることが大切
G2 発注者は要件定義に責任を持ってシステム構築に関わるべし
G3 運用部門は上流工程(企画・要件定義)から開発部門と連携して進めるべし
G4 運用者は少しでも気になった事象は放置せず共有し、とことん追求すべし
G5 サービスの拡大期には業務の処理量について特に入念な予測を実施すべし
G6 作業ミスとルール逸脱は、個人の問題でなく、組織の問題!
G7 クラウド事業者と利用者が連携した統制がとれたトラブル対応体制を整備すべし
G8 共同利用システムでは、非常時対応を含めて利用者間の情報共有を図ること
G9 システム利用不可時の手作業による代替業務マニュアルを作成し定期的な訓練を行うべし
G10 関係者からの疑義問合せは自社システムに問題が発生していることを前提に対処すべし!
G11 システムの重要度に応じて運用・保守の体制・作業に濃淡をつけるべし
G12 キャパシティ管理は、業務部門とIT部門のパートナーシップを強化するとともに、管理項目と閾値を設定してPDCAサイクルをまわすべし
G13 キャパシティ管理は関連システムとの整合性の確保が大切
G14 設計時に定めたキャパシティ管理項目は、環境の変化にあわせて見直すべし
G15 保守作業は「予期せぬ事態の発生」を想定し、サービス継続を最優先として保守作業前への戻しを常に考慮すること
G16 本番環境へのリリースは、保守担当が無断でできないような仕組みを作るべし!
技術領域
T1 サービスの継続を優先するシステムにおいては、疑わしき構成要素を積極的にシステムから切り離せ(“フェールソフト”の考え方)
T2 蟻の目だけでなく、システム全体を俯瞰する鳥の目で総合的な対策を行うべし
T3 現場をよく知り、現場の知識を集約し、現場の動きをシミュレートできるようにすべし
T4 システム全体に影響する変化点を明確にし、その管理ルールを策定せよ
T5 サービスの視点で、「変更管理」の仕組み作りと「品質管理責任」の明確化を!
T6 テスト環境と本番環境の差異を体系的に整理し、障害のリスク対策を練る
T7 バックアップ切替えが失敗する場合を考慮すべし
T8 仮想サーバになってもリソース管理、性能監視は運用の要である
T9 検証は万全?それでもシステム障害は起こる。回避策を準備しておくこと
T10 メッシュ構成の範囲は、可用性の確保と、障害の波及リスクのバランスを勘案して決定する
T11 サイレント障害を検知するには、適切なサービス監視が重要
T12 新製品は、旧製品と同一仕様と言われても、必ず差異を確認!
T13 利用者の観点に立った、業務シナリオに即したレビュー、テストが重要
T14 Webページ更新時には、応答速度の変化等、性能面のチェックも忘れずに
T15 緊急時こそ、データの一貫性を確保するよう注意すべし
T16 システム構成機器の修正パッチ情報の収集は頻繁に行い、緊急性に応じて計画的に対応すべし
T17 長時間連続運転による不安定動作発生の回避には定期的な再起動も有効!
T18 新たなサブシステムと老朽化した既存システムとを連携する場合は両者の仕様整合性を十分確認すべし
T19 リレーショナルデータベース(RDBMS)のクエリ自動最適化機能の適用は慎重に!
T20 パッケージ製品の機能カスタマイズはリスクを認識し
特に必要十分なチェック体制やチェック手順を整備して進めること
T21 作業ミスを減らすためには、作業指示者と作業者の連携で漏れのない対策を!
T22 隠れたバッファの存在を把握し、目的別の閾値設定と超過アラート監視でオーバフローを未然に防止すること
T23 障害監視は、複数の観点から実装し、障害の見逃しを防げ!
T24 サービス縮退時の対策を考慮せよ
T25 障害原因が不明でも再発予防と発生時対策はできる
T26 既存システムの流用開発はその前提条件を十分把握し、そのまま利用可能な部分と変更する部分を調査して実施する

 教訓集では、実際の事例から分析した原因、再発防止策を個別の教訓に詳しく記載したのち、発生しうる障害とその原因を一覧で示すことにより、障害と原因の関係性を明確化しています。

  一例として、表1の教訓T23「障害監視は、複数の観点から実装し、障害の見逃しを防げ!」を紹介します。この事例で取り上げる障害は、24時間365日サービス提供するオンラインシステムにおいてシステム障害が発生した際に、4重化してあったDBサーバに備わっていた2種類の監視機能がそれぞれ監視漏れと監視ミスを発生させた結果、全DBサーバが停止し、システムが停止したというものです(障害概要を図2に示します)。障害の直接原因は、DBサーバ間の通信の際に使用するネットワークスイッチのキャッシュメモリ障害でしたが、根本原因は、ネットワークスイッチを含んだDBサーバの障害監視が適切でなかったことでした。本事例では、以下の3点を再発防止の対策とすることにより、運用監視で起きる障害検知ミスを減らすための教訓としています。

  • 個々の機器の監視を複数のツールで行う。
  • 複数の監視機能の組み合わせで動作に問題ないか確認する。
  • 十分な保守時間の確保

図2 教訓例:T23の障害概要

図2 教訓例:T23の障害概要

効果

 ITシステムの構築・運用やその管理は、社会や技術の進展にともなって複雑化・多様化しており、一人一人の作業者や個別の企業で対応できる範囲には限界があります。そして、その限界は今後ますます顕在化していくものと考えられます。一方、求められる対応は今後一層複雑化・多様化していきます。したがって、システムの構築・運用及びその管理に関わる課題を解決するために、より多くの人々・企業の経験を社会全体で共有・伝承することが求められています。

 本教訓集の内容が、ITサービスの責任者のもとで、システムの構築・運用及びその管理における指針などとして活用されること、また、高信頼なシステムを構築・運用するための基準などに組み込まれることを期待します。

普及・展開

 IPA/SECでは2014年度から、本教訓集の活用に向けた普及展開活動を行うとともに、障害情報の分析に基づく教訓の共有の仕組みを幅広い業界・分野に展開しています。具体的には、業界団体の協力を得ながら、業界ごとなど、より精度の高い形での情報共有の仕組みの構築を目指しています。(図3)
 これにより、障害情報に基づく「教訓」が業界・分野を越えて幅広く共有され、国民生活や社会・経済基盤を支える重要インフラ分野などにおけるシステムの信頼性向上が期待できます。

図3 障害情報に基づく教訓の共有による信頼性向上のしくみ

図3 障害情報に基づく教訓の共有による信頼性向上のしくみ

 また、本教訓集をより有効にご活用いただくために、自社内で発生したシステム障害事例や再発防止策などを自らで「教訓」として作成し、それらを企業間や業界内でも共有・活用可能とするためのガイドブック2編(下記リンク)を公開しています。


「情報処理システム高信頼化教訓作成ガイドブック(ITサービス編)」及び 「情報処理システム高信頼化教訓活用ガイドブック(ITサービス編)」を公開

脚注

(*1)内閣サイバーセキュリティセンターでは「情報通信、金融、航空、鉄道、電力、ガス、政府・行政サービス、医療、水道、物流、化学、クレジット、石油」の13分野を重要インフラに定義している。(平成26年5月19日「重要インフラの情報セキュリティ対策に係る第3次行動計画」(平成27年5月25日改訂))

ダウンロード

ダウンロードの際に簡単なアンケートのご協力をお願いしています。
(アンケート入力後にダウンロードのリンクが表示されます)
  「情報処理システム高信頼化教訓集(ITサービス編)」2016年度版のダウンロード
 ※この教訓集には、旧版に記載された教訓がすべて掲載されています。

サービスやシステムの信頼性を高めるための教訓集ダイジェスト(2016年度版)(PDF:2.28MB)

教訓のリンク集(ITサービス編)

情報システム高信頼化教訓集(ITサービス編)に収録されている教訓一覧から個々の教訓を直接照会できるようにしています。
「情報処理システム高信頼化教訓集(ITサービス編)」各教訓のリンク集
このリンク集には、教訓集に掲載された教訓に加えて、新規に作成した教訓も随時登録を予定しています。

更新履歴

2017年4月28日 「サービスやシステムの信頼性を高めるための教訓集 ダイジェスト(2016年度版)」PDF版を追加しました。