【かおすえんじにありんぐ】

カオスエンジニアリング とは?

💡 「本番で壊してみる」ことで本当の強さを確かめる実験手法
📌 このページのポイント
カオスエンジニアリングの流れ 1. 仮説を立てる 定常状態を定義する 2. 障害を注入 サーバ停止・遅延など 3. 影響を観察 システム挙動を監視 4. 改善する 弱点を修正する 継続的 サイクル Netflix Chaos Monkey 本番環境でランダムに インスタンスを停止 障害の例 サーバクラッシュ / 遅延 ネットワーク分断 / 高負荷 意図的に障害を起こし、システムの回復力(レジリエンス)を検証・強化する手法
カオスエンジニアリングの流れ
ひよこ ひよこ

本番環境を壊すなんて怖くない?

ペンギン先生 ペンギン先生

「本番を意図的に壊す」というと怖く聞こえるけど、要は「どうせいつか壊れるなら、自分たちがコントロールできる状況で先に壊して学んでおこう」という発想なんだ。想定外の障害で夜中に起こされるより、計画的に実験して弱点をつぶしておく方がいいよね。

ひよこ ひよこ

Chaos Monkeyって何をするツールなの?

ペンギン先生 ペンギン先生

Netflixが作ったもので、本番のAWS EC2インスタンスをランダムに強制終了するツールだよ。「どのサーバーが突然落ちても大丈夫」な仕組みになっているかを常に検証し続けるんだ。最初に聞いたときは冗談かと思う人が多いけど、Netflixは本当に本番で動かしていたんだよ。

ひよこ ひよこ

やり方が適当だとシステムを壊してしまいそうだけど…

ペンギン先生 ペンギン先生

そう、カオスエンジニアリングには「科学的実験」の考え方が大切なんだ。まず「このサーバーが落ちてもレイテンシが増加しないはず」という仮説を立てて、影響範囲を限定し、モニタリングを見ながら実験する。仮説が外れたら問題を発見できたということで改善できるよ。ルールなく破壊するのはただの破壊行為だね。

ひよこ ひよこ

一般の企業でも使えるの?本番でやるのはやっぱりハードルが高い?

ペンギン先生 ペンギン先生

最初から本番でやらなくていいんだ。ステージング環境から始めて、ゲームデイ(障害訓練の日)を設けて少しずつ慣れていく方法もある。ただし本当の耐障害性は本番でしか分からないことも多くて、ステージングと本番の環境差があるとステージングでの実験が本番での挙動を保証しない問題がある。また、カオス実験をしていない機能やサービスに思わぬ影響が出る「爆発半径(blast radius)」の管理も重要な概念で、ここを誤ると本当の大障害になることがあるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「カオスエンジニアリング」って出てきたら「本番環境に意図的に障害を起こしてシステムの弱点を事前に見つける実験的なアプローチだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Chaos Engineering」 = 混乱(カオス)を使ったエンジニアリング
💬 Netflixが2011年に「Chaos Monkey(本番サーバーをランダムに落とすツール)」を公開したことから広まった手法だよ
← 用語集にもどる