【ケイオスモンキー】

Chaos Monkey とは?

最終更新:
💡 計画的に障害を試し、耐えられるか確かめる

Chaos MonkeyはNetflixが公開した、インスタンスをランダムに終了して耐障害性を確かめるツール。障害を自動修復する機能ではなく、対象や時間を制限してシステムの弱点を調べるために使います。

📌 このページのポイント
Chaos Monkey:障害への耐性を確かめる対象・時間・影響範囲を制限指標と中止・復旧の手順を決める×Chaos Monkey対象からランダムにインスタンスを終了システム側切替え・再作成など設計に従って対応エラー率・応答時間を観測し、弱点を直す
Spinnakerと連携する公開版の概念です。Chaos Monkey自体が修復するわけではなく、復旧と可用性はシステムの設計によります。
ひよこ ひよこ
Chaos Monkeyって何をするの?
ペンギン先生 ペンギン先生
選んだインスタンスをランダムに終了させ、サービスがその障害に耐えられるかを確かめるツールだよ。Netflixの公開版ではSpinnakerと連携する。READMEは仮想マシンやコンテナを対象とし、AWS、Google Compute Engine、Kubernetesでのテストも案内しているね。
ひよこ ひよこ
落としたサーバーを直してくれる?
ペンギン先生 ペンギン先生
Chaos Monkey自体が直してくれるわけではないよ。冗長化、別のインスタンスへの切替え、再作成などはシステム側の役割。障害を試したときに、エラー率や応答時間がどう変わるかを観測し、設計上の弱点を見つけるんだ。
ひよこ ひよこ
本番で勝手に実行してもいいの?
ペンギン先生 ペンギン先生
勝手に実行するものではないよ。カオスエンジニアリングでは、普段の状態を示す指標と「障害が起きても保てる」という仮説を定め、影響範囲を小さくする。実務では担当者と対象、観測方法、止める条件、復旧の手順を事前に決めよう。
ひよこ ひよこ
ランダムだと制限できないのでは?
ペンギン先生 ペンギン先生
公式資料には対象の有効・無効、グループ、終了の頻度、除外するアカウントやリージョンなどの設定があるよ。時間帯も指定できる。設定の一部には未実装のものもあるので、名前だけで安全機能が働くと思わず、使う版の実装と設定を確かめよう。
ひよこ ひよこ
ペンギン先生 ペンギン先生
Chaos Monkeyはその考え方を使うツールの一例だよ。実験はインスタンス障害だけでなく、通信障害や負荷の変化なども扱う。ツールを導入しただけで強くなるわけではなく、実験結果から問題を直し、もう一度確かめることが大切なんだ。
もっと詳しく知りたい人へ

試す前に、すべてのインスタンスを対象にしてよい?

広い範囲を一度に対象にすると利用者への影響が大きくなります。Principles of Chaos Engineeringは影響範囲を最小化することを重視しています。まず限定した対象で仮説と観測方法を確認し、必要な承認・復旧手順を整えましょう。Chaos Monkeyのoutage_checkerなどは公式設定資料でno-opの実装があると説明されており、項目名だけで自動停止を保証できません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Chaos Monkey」って出てきたら「制御したインスタンス障害で弱点を見つけるツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Chaos Monkey」 = カオス・モンキー
💬 Netflixが公開したツール名。インスタンス障害を起こしてシステムの振る舞いを確かめるという役割と合わせて覚えよう。

参考資料

← 用語集にもどる