FOR PROFESSIONALSプロフェッショナル向け

K監視・運用・信頼性段4設計層とは

AWS FIS とは何か|実験テンプレート・停止条件で「壊れ方を計画して確かめる」

AWS FIS とは何か|実験テンプレート・停止条件で「壊れ方を計画して確かめる」

監視を設計し、DR の方式も選んだ。図の上では、切り替えも通知も正しく動くはずです。けれども「本当にその順で動くのか」は、実際に壊れるまで分かりません。障害の当日に初めて確かめるのは、いちばん高くつくやり方です。かといって本番を勝手に壊せば、上司や顧客に説明がつきません。この記事は、その間を埋める AWS Fault Injection Service(FIS)を、部品と安全弁の考え方から説明します。

この記事の結論

  • FIS は、実際の AWS リソースに計画した障害を注入し、アプリの反応を観察するマネージドサービスで、カオスエンジニアリングの実行基盤です。
  • 実験テンプレートは「アクション(何をする)・ターゲット(どれに)・停止条件(どこで止める)」の設計図で、実験はこのテンプレートから走ります。
  • 停止条件は CloudWatch アラームで、定常状態(レイテンシなど)を数値で決めて初めて置けます。止まった実験は再開できません。
  • 実際のリソースに実際の操作をするので、先に仮説を書き、本番の前にプレ本番で試します。
  • 監視設計(SLO)と DR 設計(RTO・RPO)を「確かめる」側の部品として位置づけると、使いどころが見えます。

FIS とは何か|「壊れ方を計画して確かめる」サービス

AWS Fault Injection Service(FIS)は、AWS のワークロードに対して障害を意図的に注入する実験を、マネージドで実行するサービスです。公式ドキュメントは、障害注入の実験を通じてアプリの性能・可観測性・回復性を改善するためのものと位置づけています。

考え方の名前はカオスエンジニアリングです。「本番で何が起きるか分からない」ことを減らすために、起きうる障害をあらかじめ決めて小さく起こし、システムがどう反応するかを観察します。ランダムに壊すことが目的ではなく、壊れ方を計画して、設計の想定と実際のずれを見つけることが目的です。

FIS が担うのは「注入して、安全に止める」部分です。何を観察して合否を決めるかは、あなたの監視(CloudWatch のメトリクスやアラーム)が担います。だから監視設計が先に要ります。

READ ALSO — 実務向け・段3 基盤 監視設計|何を見るかは SLO から逆算する。4つのシグナルと、アラームを鳴らす基準の決め方

なぜ壊すのか|設計図と実際の挙動のずれを、障害より先に見つける

冗長構成や DR は、構成図の上では「AZ が1つ落ちても動く」「リージョンを切り替えられる」と書けます。ところが実際には、次のようなずれが起きがちです。

  • 切り替えを前提にしたタイムアウトやリトライの設定が、想定より長い
  • アラームの閾値が緩く、劣化を検知するのが遅い
  • 通知は飛ぶが、誰が何を見るかが決まっていない

これらは図を眺めても見つかりません。障害が起きてから見つかると、それがそのまま事故になります。事故の形をした問題を、事故になる前に自分の手で再現して見つけるのが、わざと壊す理由です。

AWS の Well-Architected フレームワークの信頼性の柱にも、信頼性をテストするという考え方があります。FIS はその実行手段の1つとして、公式ドキュメントから案内されています。柱の全体像は別の記事で扱っています。

READ ALSO — 学習中向け・段2 構成 AWS Well-Architected フレームワークとは|6つの柱・設計原則・レンズを「問いの集まり」として使う

実験テンプレートの部品|アクション・ターゲット・停止条件

FIS の実験は、実験テンプレートから走ります。テンプレートは実験の設計図で、主に3つを決めます。

THREE PARTSテンプレートの3部品

実験テンプレートはアクション・ターゲット・停止条件で決まる

  1. アクション

    何をするか

    例: インスタンスの停止、API エラー

    決める: 起こす障害の種類

  2. ターゲット

    どのリソースにか

    例: 小さく絞った対象

    決める: 影響の範囲

  3. 停止条件

    どこで止めるか

    例: CloudWatch アラーム

    決める: 打ち切りの数字

部品 決めること 考え方
アクション どんな障害を起こすか インスタンスの停止、API エラーの注入など。種類の一覧は公式で確認する
ターゲット どのリソースに起こすか 範囲を絞る。最初は小さく選ぶ
停止条件 どこで実験を打ち切るか CloudWatch アラームで、定常状態の崩れを検知する

アクションの種類はサービスごとに多く、更新もあるので、この記事では網羅しません。公式のアクション一覧を見て、自分の構成で試したい障害に合うものを選びます。

大事なのは、3つを揃えて初めてテンプレートが成り立つ点です。「何を壊すか」だけ決めて「どこで止めるか」が空のまま走らせることは、設計図の時点で避けます。

CHECK 1ここまでの確認

FIS の実験テンプレートを構成する3つの要素は何か?

答えと解説

答え: 1. アクション・ターゲット・停止条件

テンプレートは「何をするか(アクション)」「どのリソースにか(ターゲット)」「どこで止めるか(停止条件)」を決める設計図です。「実験テンプレートの部品」の章を読み直してください。

停止条件はなぜ CloudWatch アラームか|定常状態を数字で決める

停止条件は、実験が想定より悪い方へ進んだときに自動で打ち切る安全弁です。公式ドキュメントでは、停止条件は CloudWatch アラームとして指定します。アラームの状態が条件に当たると、FIS は実験を止めます。

ここで必要になるのが定常状態の定義です。定常状態とは、「いつもこの範囲なら正常」とみなす状態のことです。たとえばリクエストの遅延、エラー率、正常に応答している台数などを、数字で決めます。

  • 定常状態を数字にする(例: 遅延がこの範囲なら正常)
  • その範囲を外れたら発報するアラームを作る
  • そのアラームを停止条件に指定する

こうして、「許容を超えたら人の判断を待たずに止まる」実験が作れます。つまり停止条件が置けるかどうかは、定常状態を数字で決められているかどうかで決まります。数字が無いと、止めどころも無いからです。

注意点が1つあります。停止条件で止まった実験は再開できません。原因を確かめ、閾値や範囲を見直して、新しく作り直して走らせます。

練習問題でも、計画的な障害注入と安全装置の組み合わせは、FIS の実験テンプレートで CloudWatch アラームを停止条件に指定する形が正解の考え方です。ここまでの内容と同じです。

CHECK 2ここまでの確認

遅延が定常状態の許容値を超えた時点で、実験を自動で終わらせたい。何を指定する?

答えと解説

答え: 2. 閾値を定常状態から決めた CloudWatch アラームを停止条件にする

止めどころは、定常状態を数字で決めたアラームに置きます。人の判断を待たずに止まるための安全弁です。「停止条件はなぜ CloudWatch アラームか」の章に戻ってください。

実験の進め方|仮説・プレ本番・本番の順と、記録の残し方

FIS は実際のリソースに実際の操作をします。公式ドキュメントも、実験を事前に計画し、まず本番以外の環境で試すことを勧めています。進め方は、次のループに落とすと説明しやすくなります。

EXPERIMENT LOOP実験の回し方

仮説を先に書き、注入して観察し、直してまた回す

実験

プレ本番から

  1. 定常状態を決める
  2. 仮説を書く
  3. 注入する
  4. 観察する
  5. 直す
  1. 定常状態を決める: 何が正常かを数字にする
  2. 仮説を書く: 「AZ 内のインスタンスを止めても、この範囲で応答し続ける」のように、結果を先に言葉にする
  3. 注入する: テンプレートから実験を走らせる。停止条件は必ず付ける
  4. 観察する: 仮説どおりだったか、アラームは想定どおりに鳴ったか、通知は届いたかを見る
  5. 直す: ずれがあれば設計を直し、また実験する

順番は プレ本番 → 本番 です。最初から本番に当てるのではなく、範囲を小さくして、本番に近い環境で挙動を確かめます。本番で実験する場合も、影響を受ける範囲と時間帯を決め、関係者に知らせたうえで行います。

記録も成果物です。仮説・テンプレートの内容・結果・見つかったずれと直した点を残すと、次の人が同じ実験を再現できます。ずれが障害として現れたときには、ポストモーテムの材料にもなります。

READ ALSO — 実務向け・段3 基盤 ポストモーテムとは何か|障害のあとに「誰のせいか」ではなく「なぜ起きたか」を残す振り返りの型

CHECK 3ここまでの確認

初めて FIS を使うとき、いきなり本番で走らせるのが勧められないのはなぜか?

答えと解説

答え: 2. 実際のリソースに実際の操作をするため、先に計画を書いてプレ本番で試すのが望ましいから

FIS は模擬ではなく実リソースに作用します。仮説と範囲を決め、プレ本番で挙動を見てから本番へ進みます。「実験の進め方」の章を読み直してください。

他の確かめ方との違いは何か|DR 訓練・負荷試験・FIS の使い分け

「確かめる」手段は FIS だけではありません。何を確かめたいかで使い分けます。

DR DRILL VS FIS確かめる対象の違い

DR 訓練は人と手順を、FIS は構成の反応を確かめる

DR 訓練

手順と人の動き

  • 手順書どおりに復旧できるか
  • 切り替えの判断と連絡

FIS

構成の反応

  • 部品が止まっても持ちこたえるか
  • アラームが想定どおり鳴るか
手段 確かめるもの 向いている問い
DR 訓練 手順と人の動き 切り替えの手順書どおりに、担当者が復旧できるか
負荷試験 量に対する余裕 負荷が増えたとき、どこで遅くなるか
FIS 障害に対する構成の反応 部品が止まったとき、自動で持ちこたえるか

3つは競合せず、補い合います。FIS で構成の自動の反応を確かめたうえで、DR 訓練で人が動く部分を確かめる、という順が自然です。DR の方式選びと訓練は次の記事で扱います。

READ ALSO — プロフェッショナル向け・段4 設計 災害対策(DR)の設計|RTO と RPO から4つの方式を選び、訓練で確かめる

よくある誤解|「本番を壊すサービス」ではなく、止めどころを決めて壊すもの

説明を求められたときの、よくある誤解を整理します。

FIS で避けたいこと

  • 仮説も定常状態も決めずに、「とりあえず壊してみる」
  • 停止条件を付けない、または意味のない閾値のアラームを付ける
  • 初回からいきなり本番で走らせる
  • 結果を記録せず、直した点を残さない
  • 「本番を壊す乱暴なサービスでは?」 → 範囲・時間・停止条件を先に決めて起こすもので、止めどころの無い破壊ではありません。
  • 「壊れなければ成功?」 → 仮説どおりに動いたと分かることも成果です。ずれが見つかれば、障害の前に直せたことになります。
  • 「監視が無くても使える?」 → 注入はできても、判定できません。停止条件にも監視が要ります。

料金は、公式ドキュメントではアクションの実行時間(分)と対象アカウント数で決まると説明されています。金額は変わりうるため、公式の料金ページで確認してください。

Cloudory 執筆者(AWS 認定 全冠)

FIS を使うかどうかより先に、「何を正常とみなすか」を数字で言えるかが問われます。監視設計を済ませているなら、次の一手は小さな実験を1本、プレ本番で計画することです。

参照ソース

SCOREこの記事の確認テスト

0/3問 正解

各章の「ここまでの確認」に答えると、ここに集まります。結果はこの端末のブラウザにだけ残り、サーバには送りません。

PRACTICEこの記事の論点を練習問題で確かめる

この記事が扱うサービスの問題だけを続けて解けます。練習問題は Google でログインした人が使えます(練習問題の一覧)。

HAND IT OVER人に渡すなら

一言で説明するなら

避難訓練の火災報知器を実際に鳴らす仕組みです。いつ、どの階で、どこまでやるかを先に決め、人が危ないと判断する前に自動で止まる合図も用意してから、本物の動きを確かめます。

前提を持たない人にそのまま渡せる記事です。「後輩に説明する」「顧客に理由を伝える」の材料として。

FAQよくある質問

FIS と負荷試験の違いは何か?

負荷試験はリクエストの量をかけて限界や遅くなる点を見ます。FIS はインスタンスの停止や API エラーなど、障害そのものを注入して構成の反応を見ます。目的が違うので置き換えにはならず、並べて使います。

停止した実験は再開できるか?

できません。停止条件で止まった実験は、そのまま続きから再開する形にはなりません。原因を確かめて、実験を作り直して走らせます。

FIS の料金はどう決まるか?

公式ドキュメントでは、アクションを実行した時間(分)と対象のアカウント数で決まると説明されています。金額は変わりうるので、公式の料金ページで確認してください。

この次は何を読めばよいか?

確かめる対象としていちばん大きいのが災害対策です。RTO と RPO から方式を選ぶ「災害対策(DR)の設計」に進んでください。

SAME TRACK同じ領域の記事

ログの保存の設計|どこに・いつまで・どの形で残すかを、見る頻度と守る理由から決める
ログの保存の設計|どこに・いつまで・どの形で残すかを、見る頻度と守る理由から決める 段2 構成設計
アラームが鳴ったときの初動|いつから・どこで・何が変わったかを切り分ける順番
アラームが鳴ったときの初動|いつから・どこで・何が変わったかを切り分ける順番 段2 構成運用
AWS のログの仕組み|CloudTrail・CloudWatch Logs・フローログ・Config で何が分かるか
AWS のログの仕組み|CloudTrail・CloudWatch Logs・フローログ・Config で何が分かるか 段2 構成仕組み