FOR LEARNERS学習中向け

K監視・運用・信頼性段2構成層運用

アラームが鳴ったときの初動|いつから・どこで・何が変わったかを切り分ける順番

アラームが鳴ったときの初動|いつから・どこで・何が変わったかを切り分ける順番

CloudWatch のアラームを作ったことはあっても、通知メールが届いた瞬間に何から開けばよいか迷う人は多いはずです。メトリクスのグラフを見て、すぐ再起動や設定変更に手が伸びると、原因が分からないまま直ってしまい、同じ通知がまた来ます。この記事は、直す前に「状態、範囲、変更、ログ」の順で切り分ける型を説明します。コンソールの操作手順ではなく、何をどの順で見るかの考え方を扱います。

この記事の結論

  • まず見るのはアラームの状態と履歴です。ALARM は「しきい値を超えた」、INSUFFICIENT_DATA は「判定できない」で、後者は異常とは限りません。
  • 次にメトリクスのグラフで「いつから」「どの範囲か(1台か全体か)」を確かめます。
  • 「その少し前に何かを変えたか」は CloudTrail のイベント履歴で、誰が・いつ・どの操作をしたかを見ます。
  • 原因の手がかりは CloudWatch Logs で絞ります。直すのはその後で、直したら記録を残します。
  • 通知が多すぎる、少なすぎるのは運用の課題として振り返り、しきい値や複合アラームで直します。

アラームが鳴ったとき、最初に何を見ればよいのか

結論から言うと、最初に見るのは「いま何が起きているか」ではなく「アラーム自身が何を言っているか」です。どのアラームが、どの状態に変わり、いつ変わったのか。通知メールの文面にも書いてありますが、アラームの履歴で確かめるのが確実です。

初動を 4 つの問いに分けると、次のようになります。

  1. 状態:このアラームは何の状態か(ALARM か INSUFFICIENT_DATA か)。
  2. 範囲:いつから、どこで(1台か全体か)数字が変わったか。
  3. 変更:その少し前に、誰が何を変えたか。
  4. ログ:アプリや OS の中では何が起きているか。

この順番には理由があります。後ろの問いほど調べるのに手間がかかるので、手間の小さいものから確かめ、見るべき範囲を狭めていきます。また「変更」を「ログ」より先にするのは、設定変更が原因の障害は、ログを読むより変更記録を見るほうが早く答えにたどり着くことが多いからです。

FIRST RESPONSE初動の4ステップ

直す前に、状態・範囲・変更・ログの順で切り分ける

  1. 状態を見る

    ALARM か INSUFFICIENT_DATA か

  2. いつから・どこで

    メトリクスで時刻と範囲

  3. 変更を見る

    CloudTrail で誰が何を

  4. ログを見る

    Logs Insights で絞る

手間の小さい確認から順に、見る範囲を狭めていく

「直す」はこの 4 つの後ろに置きます。原因が分からないまま直すと、直った理由が説明できず、再発を防ぐ手も打てません。

ALARM・OK・INSUFFICIENT_DATA は何を意味するか

メトリクスアラームの状態は 3 つです。それぞれの意味を取り違えると、初動の向きが変わってしまいます。

状態 意味 まず疑うこと
OK メトリクスがしきい値の内側にある 通知が来ていれば、直前に ALARM から戻った可能性
ALARM メトリクスがしきい値を超えた状態が、設定した期間続いた 実際に負荷や異常が起きているか、しきい値が実態に合っているか
INSUFFICIENT_DATA 判定に足るデータが届いていない 対象が止まっていないか、メトリクスが送られているか

ここで大事なのは、ALARM が「しきい値を超えた」という事実だけを表していることです。ユーザーに影響が出ているかどうかは、アラームの状態からは分かりません。逆に INSUFFICIENT_DATA は、アラームを作った直後や、対象のリソースが停止中のときにも出ます。INSUFFICIENT_DATA は「異常」ではなく「判定できない」と読むのが出発点です。

ALARM VS NO DATA2つの状態の読み方

ALARM は超えた事実、INSUFFICIENT_DATA は判定できない

ALARM

しきい値を超えた状態が続いた

  • 意味基準を超えたという事実
  • まず疑うこと実害の有無としきい値の妥当性

INSUFFICIENT_DATA

判定に足るデータが無い

  • 意味異常とは限らない
  • まず疑うこと対象の停止、データが届いているか
状態の定義は Amazon CloudWatch ユーザーガイド(アラーム)による

アラームには履歴があり、状態がいつ何から何に変わったかを後から確認できます。公式ドキュメントによると、アラームの履歴は 30 日間保持されます。「昨日の夜に一度鳴って、自然に戻っていた」といった出来事も、この履歴で追えます。

CHECK 1ここまでの確認

アラームが INSUFFICIENT_DATA になっていたとき、最初に疑うのはどれですか?

答えと解説

答え: 2. 判定に使うデータが届いていない(対象が止まっている、送られていないなど)

INSUFFICIENT_DATA は「判定できない」状態で、異常とは限りません。まず対象が動いているか、メトリクスが届いているかを確かめます。「ALARM・OK・INSUFFICIENT_DATA は何を意味するか」の章を読み直してください。

「いつから・どこで」をメトリクスで確かめる

状態を確認したら、アラームの元になっているメトリクスのグラフを開きます。ここで確かめたいのは、次の 2 点だけです。

  • いつから:数字が変わり始めた時刻。アラームが鳴った時刻ではなく、グラフ上で最初に動いた時刻を見ます。鳴った時刻は、評価の期間が過ぎた後なので遅れます。
  • どこで:1台だけか、全体か。ディメンション(インスタンス単位、サービス単位など)で分けて見て、特定の1台だけが外れているのか、全部が同じ動きをしているのかを確かめます。

1台だけが外れているなら、そのリソース固有の問題を疑います。全体が同時に動いているなら、共通の依存先、デプロイ、設定変更を疑います。この区別だけで、次に調べる場所がかなり変わります。

グラフを見るときの注意が 2 つあります。1 つ目は、表示期間を広げて「平常時の姿」と比べることです。数字が高いこと自体が普通の時間帯もあります。2 つ目は、統計(平均、最大など)と期間の粒度で見え方が変わることです。平均では目立たない一瞬の跳ね上がりも、最大で見ると出ることがあります。アラームが使っている統計に合わせて見ると、鳴った理由が納得しやすくなります。

この段階で「いつから」が分かると、次の問いが立ちます。その時刻の少し前に、何か変わっていないか。

「何が変わったか」を CloudTrail のイベント履歴で見る

設定変更が原因の障害は、運用の現場でとても多い型です。セキュリティグループのルール、ルートテーブル、IAM ポリシー、スケーリングの設定などが、誰かの操作や自動化で書き換わると、翌朝から一部の通信だけ失敗する、といったことが起きます。

こうした「誰が・いつ・どの API を呼んだか」を記録しているのが AWS CloudTrail です。何も設定しなくても、コンソールの「イベント履歴」から過去の管理イベントを検索できます。

項目 イベント履歴で言えること
期間 過去 90 日の管理イベント
範囲 リージョンごと(見たいリージョンを切り替える)
絞り込み 1 つの属性でしか絞れない(ユーザー名、イベント名、リソース名など)

読み方の基本は、メトリクスで見つけた「いつから」の少し前の時間帯に絞り、イベント名(変更系の API 名)やリソース名で探すことです。見つかったイベントには、呼び出した主体、時刻、API 名、対象が残っています。「その変更は、数字が動き始める少し前だった」と並べられれば、有力な手がかりになります。

注意点は 3 つあります。

  • 時間が前後しても因果とは限らない。 変更と異常が近かったというだけでは、原因とは言い切れません。ログや設定の中身で裏を取ります。
  • 自動化もイベントに残る。 人の操作だけでなく、IaC のデプロイや Auto Scaling などサービスが代わりに呼んだ API も並びます。主体の欄を見て、人か仕組みかを分けます。
  • 90 日より前や、複数条件の検索には別の備えが要る。 長く残したい場合は証跡を作って S3 などに保存します(保存期間の設計は別の記事の範囲です)。

見るものの役割分担

メトリクスはいつ、CloudTrail は誰が何を、ログはなぜ

  1. メトリクス — いつから・どこで

    数字が動き始めた時刻と範囲

  2. CloudTrail — 誰が何を変えたか

    過去 90 日の管理イベント(イベント履歴)

  3. CloudWatch Logs — なぜそうなったか

    Logs Insights で絞り込み・集計

CloudTrail イベント履歴の仕様は AWS CloudTrail ユーザーガイドによる

CHECK 2ここまでの確認

昨夜のうちに、誰がセキュリティグループの設定を変えたかを調べたいとき、最初に開く先はどれですか?

答えと解説

答え: 2. CloudTrail のイベント履歴

誰が・いつ・どの API を呼んだかを記録しているのは CloudTrail です。メトリクスは「いつから変わったか」、ログは「アプリの中で何が起きたか」を見る道具です。「何が変わったかを CloudTrail のイベント履歴で見る」の章を読み直してください。

ログで原因を絞る(Logs Insights の使いどころ)

メトリクスで時刻と範囲が決まり、CloudTrail で変更の有無が分かったら、最後にアプリや OS の中で何が起きていたかを CloudWatch Logs で確かめます。ここで効くのが CloudWatch Logs Insights です。保存済みのロググループに対して、クエリで絞り込みと集計をその場で行えます。

たとえば「5xx が出ている時間帯に、どのパスのエラーが多いか」を知りたいときは、エラーを含む行に絞り込み、パスごとに件数を数えて並べ替える、という順に組み立てます。

fields @timestamp, @message
| filter @message like /ERROR/
| stats count() by bin(5m)

こうすると、エラーが 5 分ごとにどう増えたかが分かります。メトリクスのグラフで見つけた「いつから」と、ログの中でエラーが増え始めた時刻が重なっていれば、原因の絞り込みが進みます。

ここで使い分けを整理しておきます。

  • ログを数に変えて常時見張りたい → メトリクスフィルターで数値化し、そのメトリクスにアラームを付けて通知する。
  • 起きてしまったことを、その場で調べたい → Logs Insights で絞り込んで集計する。

前者は「次から早く気づく」ための仕組み、後者は「いま起きていることを調べる」道具です。初動で使うのは後者です。

CHECK 3ここまでの確認

すでに CloudWatch Logs に入っているログを、障害対応の最中にその場で絞り込んで件数を集計したいとき、使うのはどれですか?

答えと解説

答え: 1. CloudWatch Logs Insights

Logs Insights はロググループに対してクエリを書き、絞り込みと集計をその場で行えます。アラームの履歴は状態の変化の記録、CloudTrail は API 操作の記録で、アプリのログの中身は集計できません。「ログで原因を絞る」の章を読み直してください。

直したあとに残すこと|アラームの振り返りと、うるさいアラームの直し方

原因が分かって対処できたら、終わる前に 3 つを残します。

  1. 経緯の記録:いつ鳴ったか、いつからの異常か、何が原因か、何をしたか。アラームの履歴や CloudTrail のイベントは、保持期間が過ぎると見られなくなるので、必要な部分は文章で残します。
  2. 再発防止:原因が変更なら変更手順を、しきい値が実態に合っていなかったなら設定を直します。
  3. アラーム自体の見直し:今回、もっと早く気づけなかったか。逆に、実害のない通知は多くなかったか。

通知が多すぎる状態を放っておくと、本当に重要な通知が埋もれます。複数の条件を組み合わせて、ほんとうに対応が要るときだけ鳴らせる複合アラームは、ノイズを減らす手段として公式ドキュメントでも紹介されています。通知が少なすぎる側の対策は、見逃したメトリクスにアラームを足すことです。

何を監視対象にするか、しきい値をどう決めるか、誰に知らせるかといった設計は、初動とは別の話です。次の記事で扱います。

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

まとめ

アラームが鳴ったときの初動は、直すことではなく、切り分けることです。状態と履歴で何が起きたかを確かめ、メトリクスで「いつから・どこで」を決め、CloudTrail で「何が変わったか」を見て、ログで「なぜ」を絞ります。そのうえで直して、記録を残します。

道具の役割は決まっています。メトリクスは時刻と範囲、CloudTrail は変更の主体と内容、ログはアプリの中の様子です。迷ったら、いま知りたいのが「いつ」「誰が」「なぜ」のどれかを自分に聞いてみてください。

参照ソース

SCOREこの記事の確認テスト

0/3問 正解

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

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

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

HAND IT OVER人に渡すなら

一言で説明するなら

火災報知器が鳴ったら、消す前に「どの部屋で、いつから、直前に誰が何を触ったか」を見ます。アラームの初動も同じで、警報の中身、現場の範囲、直前の変更記録、現場の日誌の順に確かめます。

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

FAQよくある質問

CloudTrail のイベント履歴では、どこまで遡れますか?

過去 90 日の管理イベントを、リージョンごとに見られます。絞り込みに使える属性は一度に 1 つです。90 日より前を調べたい場合や、条件を重ねて検索したい場合は、証跡を作って S3 などに残しておく必要があります。

アラームが多すぎて、通知を見なくなってしまったらどうしますか?

しきい値や評価の期間を見直す、複数の条件を組み合わせる複合アラームにまとめる、といった方法で通知を減らします。何を監視するかの設計は「監視の設計」の記事で扱います。

この記事の次は何を読めばよいですか?

「何を、誰に、どの基準で知らせるか」を決める監視設計の記事です。初動を覚えたあとに読むと、アラームを作る側の考え方がつながります。

SAME TRACK同じ領域の記事

ログの保存の設計|どこに・いつまで・どの形で残すかを、見る頻度と守る理由から決める
ログの保存の設計|どこに・いつまで・どの形で残すかを、見る頻度と守る理由から決める 段2 構成設計
AWS のログの仕組み|CloudTrail・CloudWatch Logs・フローログ・Config で何が分かるか
AWS のログの仕組み|CloudTrail・CloudWatch Logs・フローログ・Config で何が分かるか 段2 構成仕組み
Amazon CloudWatch とは何か|メトリクス・ログ・アラーム・ダッシュボードで「何を見れば何が分かるか」
Amazon CloudWatch とは何か|メトリクス・ログ・アラーム・ダッシュボードで「何を見れば何が分かるか」 段2 構成とは