この Azure Well-Architected Framework のオペレーショナル エクセレンスチェックリストの推奨事項に適用されます。
| OE:08 | 構造化されたインシデント管理プロセスを確立します。 すべての手順を明確に文書化するインシデント対応計画を作成します。 オンコール ローテーション、インシデント管理、緊急時リソース アクセス、事後分析の実行といった人的責任を明確に定義します。 迅速な検出、トラブルシューティング、修正を促進するアーキテクチャの設計戦略を有効にします。 |
|---|
インシデントが発生した場合、ワークロード チームは明確で構造化された手順で準備する必要があります。
インシデント対応には、2 つの重要な側面があります。 1 つ目はアーキテクチャであり、効果的な応答手順をサポートし、障害がコンポーネント間で連鎖するのを防ぐシステムの設計に重点を置きます。 2 つ目は、問題を迅速に管理するための検出、封じ込め、トリアージをカバーする手順です。その後、根本原因分析と事後分析を行って再発を防ぎます。 定期的な訓練は、準備を維持し、計画を効果的に実行できるようにするために役立ちます。
この記事では、対応に役立つアーキテクチャを設計するための実証済みの戦略と、チームを落ち着かせ、調整し、制御できるようにする対応計画について説明します。
定義
| 任期 | Definition |
|---|---|
| カオスエンジニアリング (Chaos Engineering) | システムに意図的に障害や有害な状態を挿入して、回復性と回復の手順をテストします。 |
| 封じ込め | インシデントが他のコンポーネントやシステムに影響を与えないように、インシデントの影響を制限する。 |
| 検出 | インシデントが発生したか、発生していることを識別します。 |
| 事後評価 | 関連するすべてのチームが関与するインシデントの構造化された責任のないレビュー。学習した教訓を取り込み、プロセス、ツール、システムに対する実用的な改善を定義します。 |
| RCA (根本原因分析) | 再発防止の要因を含む、インシデントの根本的な原因の調査と特定。 |
| RPO (復旧ポイントの目標) | 時間単位で測定されたデータ損失の許容される最大量。 |
| RTO (目標復旧時間) | 許容できない影響を引き起こす前に、インシデントの後にシステムまたはサービスを停止できる最大許容時間。 |
| トリアージ | インシデントを評価して優先順位を付け、適切な対応を決定します。 |
アーキテクチャでの包含と分離を構築する
インシデントは避けられないので、 障害を制限し、爆発半径を制限するようにアーキテクチャを設計します。 コンポーネントで障害が発生したときに、影響が分離され、システムの他の部分に連鎖しないようにします。
リソースのセグメント化、マイクロサービスによるコンポーネントの切り離し、設計にバルクヘッドやパブリッシャー/サブスクライバーなどの設計パターンを適用するなどの手法を使用してこれを実現します。 必要に応じて、外部リソースの使用も検討してください。 たとえば、アプリケーション内の構成値をハードコーディングする代わりに、外部構成ストアを使用して、アプリケーション コードまたは展開パッケージの外部の設定を管理します。
迅速な検出のための監視機能を構築する
強力なインシデント対応計画は、適切に設計された監視スタックに依存します。 構造化されたログ記録、対象を絞ったダッシュボード、アクションにつながるアラートなどの機能は、チームが迅速に対応し、ノイズを最小限に抑え、アラートの疲労を回避するのに役立ちます。
効果的な監視には、2 つの重要なディメンションがあります。 まず、応答プロセスは、サービスの正常性、依存関係の状態、セキュリティ侵害、データの整合性などの重要なインジケーターに関する通知を Azure からタイムリーに受け取る必要があります。 次 に、ソリューション自体は、高度な構造化されたテレメトリ、ログ、メトリック、トレースを出力する必要があります。これにより、詳細な分析、トリアージ、根本原因の特定が可能になります。
インシデントを正確に再構築できるように、主要 なビジネス ワークフローはエンドツーエンドで追跡可能である必要があります 。 たとえば、注文処理システムでは、チームは注文を受け取ったとき、支払い承認が試行されたとき、エラーが発生した場所を追跡できる必要があります。 構成可能なログ詳細度、メモリ ダンプ、環境間での診断データの安全な共有を使用してデバッグを容易にするコンポーネントを設計します。 これらの機能は、迅速で効果的なインシデント対応に必要な可視性とコンテキストを提供します。
診断データとプラクティスを活用して支援する
問題の診断と解決をより迅速かつ信頼性の高いものにするためのソリューションを設計します。 このアプローチでは、デバッグと可観測性をシステムの設計に埋め込みます。
これは、クラッシュやメモリ ダンプなど、関連するすべての診断データの適切なコレクションから始まります。 効果的な相関関係と分析のために、このデータを安全に収集、格納、共有するために必要なツールが用意されていることを確認します。 ネットワーク トレーサーやシンボル サーバーなどのツールは、より詳細なデバッグ機能をサポートするために統合する必要があります。 最後に、セキュリティで保護されたストレージ、制限されたアクセス、および適切なデータ ガバナンス制御によって、すべての診断データが改ざんから保護されていることを確認します。
システムには、インシデント管理をサポートする組み込みのフックとトグルも含める必要があります。 これらのメカニズムは、再デプロイを行わずに、障害のあるコンポーネントをリアルタイムで無効または分離するのに役立ちます。 さらに、失敗したリソースは、すぐに破棄するのではなく、フォレンジック分析のために検疫済みの状態で保持する必要があります。
1 つのウィンドウでインシデント データを視覚化する
リアルタイムの状態の更新、可視性、知識共有のための一元化されたインシデント管理ダッシュボードまたはポータルを構築します。 ダッシュボードは信頼の共有ソースとして機能し、全員が優先順位、現在のアクション、依存関係に合わせて調整されるようにする必要があります。 インシデントはチームにとってストレスの多い状況であり、フォーカスを維持し、タイムリーな意思決定に役立つだけの十分な情報を持っています。 また、アカウンタビリティと継続的学習の文化を強化します。
主要なコンポーネントには、監視データ、タイムライン、所有権の詳細、重大度インジケーターを含める必要があります。 可視性はロール固有で、RBAC などの適切なセキュリティ制御を使用して、ユーザーが機密データや顧客データを公開することなく必要な情報にアクセスできるようにする必要があります。 関連するリソースへのリンクと明確な手順を含め、次の手順とその責任についてユーザーをガイドします。 必要に応じて、オンデマンド サブスクリプションまたはアラートをサポートして、インシデントの状態が変化したときに関係者に通知します。
監査証跡をキャプチャして保存する
インシデント対応をサポートするための主要な要件として監査を使用してソリューションを設計します。 監査証跡は主にセキュリティ対策と見なされることが多いが、運用分析でも同様に重要です。 システムは、構成の変更、管理アクション、デプロイ、バックアップ、チューニング アクティビティなどの運用手順の詳細なレコードをキャプチャする必要があります。
インシデント対応計画を文書化する
インシデント対応計画では、インシデントの管理に関連する 重要な役割 と、それぞれの責任を定義する必要があります。 所有権を明確にすると、混乱が軽減され、アクションが検出から解決まで調整されます。 インシデント マネージャー、技術リーダー、コミュニケーションなどの役割を特定することで、アカウンタビリティを設定し、一貫した意思決定をサポートします。
計画には、インシデントの報告方法、通知者、チャネルを示す コミュニケーションとエスカレーションの構造 を含める必要があります。 これにより、情報が適切なユーザーにすばやく移動し、重要な瞬間にギャップや重複を防ぐことができます。
この計画には、検出、トリアージ、封じ込め、回復中にチームが従う 主要な手順 も含める必要があります。 これらの手順は、応答のための予測可能なフレームワークを提供し、運用の安定性を維持するのに役立ちます。 これらの手順を定期的に確認すると、以前のインシデントから得られたシステムの変更と教訓に合わせて計画が調整されます。
トレードオフ。 過度に積極的な対応戦略では、誤ったアラームや不要なエスカレーションがトリガーされる可能性があります。
同様に、しきい値違反によってトリガーされるスケーリングや自己復旧などの自動アクションでは、追加のコストと運用オーバーヘッドが発生する可能性があります。 最適なしきい値は明らかでない可能性があるため、より低い環境でのテストを通じて検証し、実際の要件に合わせて運用試用版を慎重に監視します。
プランをテストする
ドライ ランまたはカオス エンジニアリング演習を使用して、インシデント対応プロセスを定期的にテストします。 現実的なインシデントをシミュレートして回復可能性を検証し、RTO と RPO のターゲットを検証し、通信とエスカレーション計画が負荷の下で機能することを確認します。
これらのテストを行わないと、小規模な障害が長時間の停止や大きなデータ損失にすばやくエスカレートし、チームのクランブリングとビジネス運用が危険にさらされる可能性があります。 テストを使用すると、実際のインシデントが発生する前にギャップを特定し、調整を向上させることができます。
RCA の結果をシステムの改善に変える
各インシデントの後、徹底的な RCA を実行して、根本的な原因と要因を特定します。 公平なファシリテーターが率いる責任追及を行わない事後分析に従って、各チームは観察、成功、改善の機会を共有します。
継続的にレッスンをシステムにフィードバックすることで、インシデントを繰り返す可能性が低くなります。 インシデント対応計画の絞り込み、同様の問題を早期に検出するための可観測性の強化、ワークロード設計の改善の 3 つの領域で、アクション可能な項目をキャプチャして分類してください。
自動化を通じて機敏性と一貫性を実現する
インシデント対応ワークフロー全体に自動化を組み込み、手作業を減らし、対応を加速します。 Azure Batch、Runbook、Functions、Logic Apps などのツールを使用して 、検出、封じ込め、アラート、通信を、実用的な限り自動化します。 復旧、検証、トラブルシューティング、根本原因分析用のスクリプトとコードとしてのインフラストラクチャ (IaC) テンプレートのライブラリを維持します。 これらの自動化が文書化され、アクセス可能であることを確認して、チームがインシデント時にそれらを確実に実行できるようにします。 自動化すればするほど、応答の一貫性が高くなります。
Azure ファシリテーション
Azure Monitor は、クラウドとオンプレミスの環境からの監視データを収集し、分析し、それに応答するための包括的なソリューションです。 これには、自動スケーリングやその他の self-healing メカニズムなど、自動通知やその他のアクション用に構成できる堅牢なアラート プラットフォームが含まれています。
機械学習を統合するには Monitor を使用します。 インシデントのトリアージとプロアクティブな対策を自動化して最適化します。 詳細については、Monitor の AIOps と機械学習に関する記事を参照してください。
Log Analytics は、Monitor に組み込まれている堅牢な分析ツールです。 Log Analytics を使用すると、集計されたログに対してクエリを実行し、ワークロードに関する分析情報を得ることができます。
Microsoft は、Azure 関連のインシデント対応トレーニングを提供しています。 詳細については、「Azure Incident Readiness の概要」と「インシデント対応」を参照してください。
Azure Network Watcher の 接続モニター を使用して、Azure リソース全体のネットワーク接続とパフォーマンスを継続的に追跡します。 緊急インシデントの間、接続モニターのカスタム ブックは、接続の正常性、待機時間の傾向、アラートの状態をリアルタイムで可視化します。 効果的な RCA を行い、より高速な解決を実現するには、Network Watcher 診断ツールスイート内の 接続のトラブルシューティング を使用します。
トラフィック分析を使用して、仮想ネットワーク フロー ログを分析し、ブロックされたトラフィック、悪意のあるフロー、公開されたポートなどの分析情報を表示します。 トラフィック分析でブックを作成すると、チームはライブ トラフィックの動作を監視し、アラートを受信し、タイムラインとトポロジ ビューを使用して、影響を受けるネットワーク セグメントをすばやく特定し、効果的に対応できます。
関連リンク
オペレーショナル エクセレンス チェックリスト
完全なレコメンデーションのセットを参照してください。