「ウェブサイトのダウンタイムインシデント対応チェックリストとハンドブック」
自動監視アラートがトリガーされると、エンジニアリング チームは、平均復旧時間 (MTTR) を最小限に抑え、ユーザーの混乱を防ぐために、構造化されたインシデント対応ワークフローに従う必要があります。
この運用プレイブックは、重大度の高い運用停止時のサイト信頼性エンジニア (SRE)、DevOps チーム、Web 開発者向けに設計された、実戦テスト済みの段階的なチェックリストを提供します。
回答優先のまとめ
効果的な Web サイトのダウンタイム インシデント対応ワークフローは、特定とトリアージ (マルチリージョン プローブのコンセンサスの検証)、根本原因の分離 (DNS、TLS、エッジ CDN、およびバックエンド データベース層の検査)、インシデント軽減 (最近の展開のロールバックまたはサーバー リソースのスケーリング)、事後分析 (根本原因と予防措置項目の文書化) の 4 つの重要なフェーズで構成されます。標準化されたチェックリストに従うと、平均復旧時間 (MTTR) が数時間から数分に短縮されます。
段階的なインシデント優先順位付けワークフロー
フェーズ 1: 停止の特定とトリアージ (0 ~ 2 分)
- 機能停止の範囲を確認する: SimpleOps でマルチリージョン プローブのコンセンサスを検査し、機能停止がグローバル ユーザーに影響を与えるのか、それとも特定の地理的領域に影響を与えるのかを確認します。
- アラート優先度の確認: 完全な可用性障害 (HTTP 5xx、TCP 接続タイムアウト) と局所的なパフォーマンス低下 (LCP > 4.0 秒) を区別します。
- オンコール チームに通知: インシデントの更新情報を社内の開発者チャット チャネル (Slack、Telegram) に転送し、インシデント コマンダーを割り当てます。
フェーズ 2: 根本原因の分離 (2 ~ 5 分)
- DNS 解決層の検査: ドメイン ネーム サーバーが正しい A/AAAA レコードを解決していることを確認し、グローバル DNS 伝播の遅延やレジストラ ロック エラーがないか確認します。
- SSL/TLS 証明書の健全性を検証: 証明書の有効期限、サブジェクト代替名 (SAN)、および CA トラスト チェーンの整合性を確認します。
- エッジ CDN とリバース プロキシを検査する: エッジ HTTP 応答ステータス コード (例: 502 Bad Gateway、504 Gateway Timeout、500 Internal Error) とエッジ キャッシュ ヒット率を検査します。
- バックエンド データベースとアプリケーション サーバーの評価: CPU 使用率、メモリ使用率、接続プールの飽和状態、データベース ロックのデッドロックを確認します。
フェーズ 3: 緩和と解決 (5 ~ 15 分)
- 緊急ロールバックの実行: 停止が最近のコードのデプロイメントまたはインフラストラクチャの変更と同時に発生した場合は、自動化された CI/CD ロールバックをただちに実行します。
- セカンダリ リージョンへのフェールオーバー: リージョンのハードウェア障害が発生した場合、トラフィックを冗長インフラストラクチャ ノードまたはセカンダリ CDN オリジンに再ルーティングします。
- レート制限またはサーキット ブレーカーを適用する: レート制限を有効にするか、重要でないバックグラウンド ジョブを一時的に無効にすることで、トラフィックの急増時にデータベース インスタンスを保護します。
フェーズ 4: 事後および予防措置 (インシデント後)
- インシデントのタイムラインを文書化: アラートの検出、初期トリアージ、根本原因の特定、解決のための正確なタイムスタンプを記録します。
- 責任のない事後分析の実施: エンジニアリングの遡及調査を開催して、安全対策が失敗した理由を分析し、予防措置項目を確立します。
- 自動監視の更新: SimpleOps に特定の回帰チェックまたはカスタム合成テストを追加して、今後同様の脆弱性パターンを検出します。
インシデント重大度マトリックス
| 重大度レベル | 定義 | 影響範囲 | 目標MTTR | エスカレーション チャネル |
|---|---|---|---|---|
| SEV-1 (重大) | コアサービスの完全な停止または API 障害。 | すべての運用ユーザーが影響を受けます。 | $< 15\text{ 分}$ | テレグラムボット + PagerDuty |
| SEV-2 (高) | 主要な機能の部分的な低下 (チェックアウトが遅いなど)。 | ユーザーのかなりの部分が影響を受けます。 | $< 45\text{ 分}$ | Slack #devops-alerts |
| SEV-3 (中程度) | 重要ではない機能の障害または Web Vitals の軽度のリグレッション。 | 顧客への影響は最小限に抑えられます。 | $< 4\text{ 時間}$ | メールダイジェスト |
一般的な障害パターンと緊急修正
- データベース接続プールの枯渇: アクティブな接続をリセットするか、
my.cnf/postgresql.conf構成ファイルの最大プール制限を増やします。 - 期限切れの ACME SSL 証明書:
--force-renewalを使用して手動の Certbot 更新コマンドを実行し、Nginx を介した HTTP-01 チャレンジ ルーティングを確認します。 - Nginx リバース プロキシ 502 不正なゲートウェイ: アップストリーム アプリケーション サーバー プロセス (例: Node.js PM2 インスタンスまたは Go Gin バイナリ) がポート 8080 または 4000 で実行されていることを確認します。
- メモリ リーク プロセスのクラッシュ: ワーカー スレッド プールまたはアプリケーション インスタンスを再起動し、診断プロファイリングのためにヒープ ダンプ メモリ スナップショットを収集します。
コミュニケーションとステークホルダーの透明性
大規模な運用停止中は、技術的な修復と同様に、外部および内部の明確なコミュニケーションが重要です。
- お客様への通知: 現実的な推定解決時間と明確な進捗状況の最新情報を記載して、公開ステータス ページを直ちに更新します。
- 内部ステータス同期: インシデント コマンダー、エンジニアリング リーダー、カスタマー サポート担当者の間で 15 分間の運用同期を保持します。
- インシデント後のコミュニケーション: 何が起こったのか、なぜ起こったのか、再発を防ぐためにどのような永続的なエンジニアリング変更が行われたのかを説明するインシデント レポートを顧客に送信します。
インシデント ハンドブックのメンテナンスのベスト プラクティス
- SEV-1 停止のたびに確認する: 事後遡及の直後に手順の手順を更新し、トリアージの手順を改善します。
- 監視フックの自動化: SimpleOps Webhook がアラートを Slack チャネルと Telegram チャネルに自動的に投稿するようにします。
- 訓練対応ワークフロー: 四半期ごとにシミュレートされた停止火災訓練を実施し、新しいエンジニアリング チームのメンバーにインシデント プロトコルについてトレーニングします。
- 明確なエスカレーション パスを維持する: インシデント管理名簿内の 2 番目および 3 番目のオンコール連絡先の詳細を最新の状態に保ちます。
自動化されたインシデント対応に SimpleOps を使用する
SimpleOps は、最新の DevOps ワークフローと直接統合され、Slack、Telegram、電子メール、またはカスタム Webhook 経由でインスタント インシデント アラートを送信し、最初に失敗が確認されたときにチームのチェックリストを自動的に開始します。
よくある質問
このトピックに関するよくある質問
ウェブサイトの高速性と操作性を確保
SimpleOps は、15 を超えるグローバル チェック リージョンから稼働時間、SSL セキュリティ証明書、API エンドポイント、および Core Web Vitals を 60 秒ごとに継続的に監視します。