AWS Health Dashboard で構築するインシデント管理 - 障害通知の自動化と影響分析
サービス障害の検知から EventBridge 連携の自動通知、Organizations 統合による組織全体の影響分析までを一貫して紹介します。
Health Dashboard の 2 つのビュー
Health Dashboard はサービスヘルス (AWS サービスの稼働状況) とアカウントヘルス (自アカウントに影響するイベント) の 2 つのビューを提供します。サービスヘルスは AWS サービス全体の稼働状況を表示し、リージョンごとのサービス障害を確認できます。アカウントヘルスは自分のアカウントに影響するイベントのみを表示し、EC2 インスタンスのメンテナンス予定、RDS の計画的フェイルオーバー、EBS ボリュームの障害通知など、具体的なリソースに紐づいた情報を提供します。アカウントヘルスのイベントは影響を受けるリソースの ARN が含まれるため、対応が必要なリソースを特定しやすくなります。イベントは issue、accountNotification、scheduledChange の区分に分かれ、accountNotification はアカウントとサービスの管理やセキュリティに関する通知、scheduledChange は予定された変更の通知です。対応が必要かどうかは actionability のフィールドで判断でき、サービスの障害のイベントにはこのラベルが付かないため、区分と合わせて通知先を設計します。
EventBridge 連携による自動通知
Health イベントは EventBridge に自動送信されるため、イベントルールで特定のイベントタイプをフィルタリングし、Lambda や SNS にルーティングできます。EC2 のメンテナンス通知を Slack チャネルに自動投稿し、影響を受けるインスタンスの一覧を添付するワークフローを組めます。Lambda 関数で Health イベントを受け取り、影響を受けるインスタンスを Auto Scaling グループから一時的に除外し、メンテナンス完了後に復帰させる自動対応も実装可能です。AWS Chatbot と組み合わせると、Slack チャネルに Health イベントのリッチな通知が自動投稿されます。EventBridge ルールのイベントパターンでは source を aws.health、detail-type を AWS Health Event に指定し、detail.service や detail.eventTypeCategory でさらにフィルタリングします。us-east-1 リージョンのルールでグローバルイベント (IAM、Route 53、CloudFront の障害) を受信し、他リージョンのルールではリージョナルサービスのみが対象です。この設計を見落とすとグローバルサービスの障害通知を取りこぼします。
Organizations 統合と組織全体の監視
Organizations の Health API (Organizational View) を有効にすると、組織内の全アカウントの Health イベントを管理アカウントまたは委任管理者アカウントから集約して確認できます。数百のアカウントを運用する大規模組織では、個別アカウントの Health Dashboard を確認するのは手間がかかります。 Organizational View で全アカウントのイベントを一元監視し、影響範囲の大きいイベントを優先的に対応します。 EventBridge ルールで組織全体の Health イベントを集約し、セキュリティチームや運用チームに一括通知する構成にできます。
インシデント対応ワークフローの設計パターン
Health Dashboard を中核としたインシデント対応は 3 段階で設計します。第 1 段階 (検知) では EventBridge ルールがイベントを受信し、SNS 経由で運用担当者に即座に通知します。第 2 段階 (トリアージ) では Lambda 関数が影響を受けるリソースの一覧を取得し、Systems Manager OpsCenter に OpsItem として自動起票します。OpsItem には関連する CloudWatch アラーム、影響リソースの ARN、推奨アクションが紐づけられるため、担当者は単一の画面から対応を開始できます。第 3 段階 (自動修復) では Systems Manager Automation ランブックを起動し、定型的な対応 (インスタンスの再起動、スナップショットからの復元、DNS のフェイルオーバー) を自動で実行します。この 3 段階設計により、夜間の障害でも初動を自動化できます。PagerDuty や Opsgenie と連携する場合は、Health イベントの actionability などのフィールドでエスカレーションのポリシーを選びます。
CloudWatch や他サービスとの使い分け
Health Dashboard は AWS インフラ側の障害を通知するのに対し、CloudWatch Alarms はアプリケーションメトリクスの異常を検知します。両者は補完関係にあり、併用します。例えば EBS ボリュームの I/O エラーは Health Dashboard から通知される一方、ボリュームの IOPS スロットリングは CloudWatch メトリクスで検知します。Trusted Advisor は設定上のリスク (セキュリティグループの開放、利用率の低いリソース) を検出しますが、リアルタイムの障害通知は行いません。AWS Fault Injection Simulator (FIS) はカオスエンジニアリングで意図的に障害を注入するツールであり、Health Dashboard の通知パイプラインが正しく動作するかの検証にも使えます。Systems Manager Incident Manager はインシデントのライフサイクル管理 (検知、エスカレーション、対応、振り返り) を統合するサービスで、Health Dashboard のイベントをトリガーとしてインシデントを自動起票する構成にできます。
Health Dashboard の料金
Health Dashboard は無料で利用できます。サービスヘルスとアカウントヘルスの閲覧、EventBridge へのイベント送信に追加料金は発生しません。Health API を使うには、AWS Business Support+、AWS Enterprise Support、AWS Unified Operations のいずれかのプランが必要です。通知先の SNS / Lambda の利用料金は別途発生します。Lambda 関数の実行料金は、Health イベントの件数に応じて発生します。
まとめ
Health Dashboard は AWS サービスの障害とアカウント固有のイベントをリアルタイムに通知するサービスです。EventBridge 連携で自動通知と自動対応を構築し、Organizations 統合で組織全体の影響を一元監視します。3 段階のインシデント対応ワークフロー (検知、トリアージ、自動修復) を設計し、CloudWatch Alarms や Incident Manager と組み合わせると、障害対応の初動を自動化できます。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。