利用者からHTTP 5xxが増えたと報告された。ALB自身が生成した応答と、ターゲットが生成した応答を分けて調べたい。
同じロードバランサーと障害時間帯を対象に、CloudWatchで各5xx応答の件数を比較する。
最も適切なメトリクスと統計値の組み合わせはどれか。
ELB側とTarget側の5xxを同じ期間のSumで比較し、応答の生成元を確認して次の調査へつなげる。
詳細解説
4xxの生成元は比較できるが、今回対象の5xxを数えるメトリクスではない。
健全なターゲット数は分かるが、応答をALBとターゲットのどちらが生成したかは判別できない。
ALBが生成した5xxとターゲットが生成した5xxの件数を分けて確認できる。
応答時間とリクエスト量は調査材料になるが、5xx応答の生成元別件数ではない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
リンク先の2つの5xxメトリクス、Sum、アクセスログのステータスコード欄を確認する。
参考にした公式資料
確認できる内容
応答の生成元を区別できる。ELB側の5xxだけでアプリに原因がないと断定せず、ログを使って調べる。
理解のポイント
- HTTPCode_ELB_5XX_Count
- HTTPCode_Target_5XX_Count
- ALB
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
比較する集計条件を揃える
AWS/ApplicationELBのHTTPCode_ELB_5XX_CountはALB生成、HTTPCode_Target_5XX_Countはターゲット生成の5xxを数える。同じLoadBalancerと期間のSumで比較する。件数にAverageを使っても、期間の合計を表さない。
生成元と根本原因は別に調べる
ALBが5xxを生成しても、背後のターゲットとの接続や応答が原因の場合がある。メトリクスだけで責任範囲を断定せず、有効化したアクセスログのelb_status_codeとtarget_status_code、アプリログやターゲット状態を突き合わせる。