断片的なログしか残らない障害で、どのように仮説を立てて絞り込んだかを後から振り返れるように、 当時の分析過程を記録しておきます。
この記事では、ハングアップ時に残っていた Apache ログを手がかりに、 当時どのように判断したかを整理します。
手がかりとなったログ
マシンがハングアップする都合上、 十分なログは残っていませんでした。
その中で、唯一継続的に観測できた兆候が Apache の HTTP/2 関連警告ログです。
[Mon Feb 14 10:03:09.046163 2026] [http2:warn] [pid 1940096:tid 1940116] [client xxx.xxx.xxx.xxx:38810] h2_stream(1940096-2-1,CLEANUP): started=1, scheduled=1, ready=0, out_buffer=0
[Mon Feb 14 10:03:09.046199 2026] [http2:warn] [pid 1915817:tid 1915839] [client xxx.xxx.xxx.xxx:38594] h2_stream(1915817-362-1,CLEANUP): started=1, scheduled=1, ready=0, out_buffer=0
[Mon Feb 14 10:03:10.207426 2026] [http2:warn] [pid 1940136:tid 1940156] [client xxx.xxx.xxx.xxx:38838] h2_stream(1940136-0-1,CLEANUP): started=1, scheduled=1, ready=0, out_buffer=0
...
ログから読み取れるポイント
ログの内容を整理すると、以下のような点が読み取れます。
[http2:warn]
- Apache の HTTP/2 モジュール(mod_http2)に関する警告メッセージ
- 致命的なエラーではないものの、 ストリーム処理に異常兆候があることを示唆
h2_stream(..., CLEANUP)
HTTP/2 ストリームの後処理(クリーンアップ)段階で 処理が滞留している可能性を示します。
付随するパラメータの状態は以下の通りです。
| パラメータ | 意味 |
|---|---|
| started=1 | ストリームは開始されている |
| scheduled=1 | 処理対象としてスケジュールされている |
| ready=0 | 応答可能な状態に至っていない |
| out_buffer=0 | レスポンスデータが送信されていない |
つまり、
ストリームは確立されているが、 リクエスト処理に進まず応答も返されていない
という状態の接続が、 大量に存在していた可能性があります。
アクセス元 IP アドレス
ログに記録されたクライアント IP が 同一である点も確認できました。
これは、
特定のクライアントが多数の HTTP/2 ストリームを確立し、 それらを未完了のまま保持している
状況を示唆します。
仮説の検討
この時点で、主に次の仮説を検討しました。
① インフラ障害
AWS 側のネットワークやインスタンスに 障害が発生していた可能性です。
ただし、その場合は Service Health Dashboard などでの告知が想定されます。
② Apache の設定不備
HTTP/2 設定によっては 類似の挙動が発生する可能性もあります。
しかし、
- 同一 IP からのアクセス
- 短時間における大量の接続
という特徴を踏まえると、 設定不備のみで説明するのは不十分でした。
③ 外部からのアクセスによる影響
本サーバーは
- ALB 未使用
- CDN 未使用
- WAF 未使用
という構成であり、 インターネットから直接アクセス可能な状態でした。
このため、外部からの大量接続で Apache のワーカースレッドが枯渇し、 正常な処理ができなくなった可能性が高いと判断しました。
Slowloris 攻撃の可能性
ここで想起されたのが、次のような攻撃手法です。
- 接続を確立する
- リクエストを完了させない
- サーバー側の接続リソースを占有し続ける
いわゆる Slowloris 攻撃 です。
Slowloris は、接続を長時間維持することで Web サーバーのワーカーやスレッドを枯渇させる DoS 攻撃の一種です。
今回観測された
- 応答が返されていない HTTP/2 ストリーム
- 同一 IP からの大量接続
- サーバーのハングアップ
といった挙動は、 Slowloris による影響と整合する可能性があります。
ただし、この段階では 攻撃手法を断定するには証拠が不足しています。
この時点では断定できませんでした。再現実験で裏取りする方針としました。
参考サイト
Slowloris DDoS 攻撃とは| Akamai
https://www.akamai.com/ja/glossary/what-is-a-slowloris-ddos-attack
スローロリス (DOS攻撃ツール) - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%AD%E3%83%BC%E3%83%AD%E3%83%AA%E3%82%B9_(DOS%E6%94%BB%E6%92%83%E3%83%84%E3%83%BC%E3%83%AB)