令和5年度 秋期 情報処理安全確保支援士試験 午前II 問22
目的別のサービスが多数連携して動作する大規模な分散型のシステムでは,障害時の挙動を予知することが困難である。このようなシステムにおいて,ステージング環境や本番環境で意図的に障害を引き起こしてシステムの挙動を観察し,発見した問題を修正することを継続的に実施し,システムの耐障害性及びシステム運用の信頼性を高めていく手法はどれか。
解答・解説
正解: ウ. カオスエンジニアリング
正解は ウ です。
カオスエンジニアリングとは、稼働中のシステムに対して意図的に障害を引き起こすことで、予期せぬトラブルが発生した際のシステムの挙動を観察し、未知の問題を発見・修正して耐障害性や信頼性を高める手法です。マイクロサービスアーキテクチャなどの大規模な分散システムにおいて、障害時の影響を最小限に抑えるための検証として用いられます。
各選択肢の解説
- ア DevOps:開発(Development)チームと運用(Operations)チームが緊密に連携・協力し、ソフトウェアのビルド、テスト、リリースを迅速かつ継続的に行う開発手法です。
- イ Infrastructure as Code(IaC):サーバーやネットワークなどのインフラ構築・設定を、手動で行うのではなくコードとして記述し、自動化・バージョン管理する手法です。
- ウ カオスエンジニアリング:正解。本番環境やステージング環境で意図的に疑似障害を注入し、システムの耐障害性を検証します。
- エ テスト駆動開発(TDD):プログラムの実装を行う前にテストコードを書き、そのテストをパスするように本番のコードを実装していく開発手法です。