情報処理安全確保支援士試験 2023年 秋期 午前222


目的別のサービスが多数連携して動作する大規模な分散型システムでは、障害時の挙動を予知することが困難である。このようなシステムにおいて、ステージング環境や本番環境で意図的に障害を引き起こしてシステムの挙動を観察し、発見した問題を修正することを継続的に実施し、システムの耐障害性及び運用の信頼性を高めていく手法はどれか。
DevOps
Infrastructure as Code
カオスエンジニアリング(正解)
テスト駆動開発

解説

目的別のサービスが多数連携する大規模分散システムの障害予知と耐障害性向上手法【午前2 解説】

要点まとめ

  • 結論:意図的に障害を発生させてシステムの挙動を検証し耐障害性を高める手法は「カオスエンジニアリング」です。
  • 根拠:大規模分散システムは複雑で障害予知が困難なため、実際に障害を起こして問題点を洗い出す必要があります。
  • 差がつくポイント:単なる開発手法や環境構築ではなく、障害を意図的に発生させる点が特徴であり、これが耐障害性向上に直結します。

正解の理由

選択肢の中で「カオスエンジニアリング」は、実際にシステムに障害を意図的に発生させて挙動を観察し、問題点を発見・修正する手法です。これにより、未知の障害やシステムの弱点を事前に把握し、耐障害性や運用信頼性を継続的に向上させることが可能です。
他の選択肢は開発や運用の手法や環境整備に関するものであり、障害を意図的に起こして検証する点がありません。

よくある誤解

カオスエンジニアリングは単なる障害テストではなく、継続的に実施しシステムの信頼性を高めるための戦略的な手法です。
DevOpsやテスト駆動開発は開発・運用の効率化に寄与しますが、障害を意図的に起こすことは目的としていません。

解法ステップ

  1. 問題文から「大規模分散システム」「障害時の挙動予知が困難」と読み取る。
  2. 「意図的に障害を引き起こして観察し、修正を継続的に行う」点に注目する。
  3. 選択肢の意味を整理し、障害を意図的に起こす手法を探す。
  4. 「カオスエンジニアリング」が該当することを確認し、正解とする。

選択肢別の誤答解説

  • ア: DevOps
    開発と運用の連携を強化し効率化する手法であり、障害を意図的に起こすことは含まれません。
  • イ: Infrastructure as Code
    インフラ構成をコード化して自動化する技術で、障害検証の手法ではありません。
  • ウ: カオスエンジニアリング
    正解。障害を意図的に発生させてシステムの耐障害性を高める手法です。
  • エ: テスト駆動開発
    ソフトウェア開発手法の一つで、テストを先に書いてから実装する方法であり、障害検証とは異なります。

補足コラム

カオスエンジニアリングはNetflixが提唱した手法で、実際の運用環境やステージング環境で障害をシミュレートし、システムの弱点を洗い出します。これにより、障害発生時の影響を最小限に抑える設計や運用改善が可能となります。近年はクラウド環境の普及により、より複雑な分散システムでの適用が増えています。

FAQ

Q: カオスエンジニアリングは本番環境で実施しても安全ですか?
A: 適切な計画と制御のもとで実施すれば、本番環境でも安全に障害検証が可能です。リスク管理が重要です。
Q: DevOpsとカオスエンジニアリングはどのように関係しますか?
A: DevOpsは開発と運用の連携を促進する文化や手法で、カオスエンジニアリングはその中で信頼性向上のための具体的な技術の一つと位置付けられます。

関連キーワード: カオスエンジニアリング, 分散システム, 耐障害性, 障害検証, システム信頼性, DevOps, Infrastructure as Code, テスト駆動開発
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ