AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

ALBが一時的にUnHealthyな状態となる

0

お世話になります。

ApplicationLoadBalancerとEC2の組み合わせでサイトの運用を行なっておりますが、 ここ数日(2023/4/19~2023/4/20)で数分~30分ほどの間、 アクセスが出来ない状況が数回(1日1~2回程度)発生します。

問題を調査したところ、ELBの以下のメトリクスで異常が検出されている(カウント数が跳ねている)ことを確認しております。

  • UnHealthyHostCount
  • HTTPCode_ELB_5XX_Count
  • HTTPCode_ELB_4XX_Count
  • HTTPCode_Target_5XX_Count
  • HTTPCode_Target_4XX_Count

また、問題が発生した時刻にEC2サーバー上のphp-fpmのエラーログに

connect() to unix:/run/php-fpm/www.sock failed (11: Resource temporarily unavailable) while connecting to upstream

というエラーが発生し、502がレスポンスとして返されていることを確認しております。

Nginxのアクセスログには、499 及び 502が発生することを確認しております。

現在の構成で運用開始して2ヶ月ほど経ちますが、問題の数分間以外は正常に稼働しております。 一時的にALBに異常が発生しているように思われますが、時間帯も不規則で原因の特定が出来ていないため 解決方法の見立てが付いていない状況です。

この問題を解決するため、以下について知りたいと思っています。

  1. ALBのメトリクスに異常が検出された原因
  2. EC2とALBのどちらが起因しているのか
  3. 問題が再発しないようにするための対策

私自身がAWSにあまり明るくないこともあり、何か必要な情報が抜けているかもしれません。 もし追加で必要な項目がございましたら、出来る範囲で開示いたします。

大変恐縮ではございますが、みなさまのお知恵をお借り出来ますと幸いです。 何卒、よろしくお願いいたします。

1回答
2
承認された回答
  1. ALBのメトリクスに異常が検出された原因

UnHealthyHostCountメトリクスはターゲットがUnhealthyの時に判断されるメトリクスです。
HTTPCode_ELBメトリクスはALBがクライアントに返したレスポンスで判断されるメトリクスです。 HTTPCode_TargetメトリクスがALBのターゲット (EC2) から返ってきたレスポンスで判断されるメトリクスです。

上記の状況からALBのターゲット (EC2) で何かしら問題が発生して (HTTPCode_Targetメトリクスが上がる) アクセスできなくなり、ALBのヘルスチェックが失敗するようになったことが考えられます。
また、ALBからEC2へのアクセスが出来なくなるとALBから502エラーなどを返すのでHTTPCode_ELBメトリクスが上がったと思われます。

  1. EC2とALBのどちらが起因しているのか

ご提供いただいたログからEC2 (Nginx) で何かしら問題があると考えられます。

  1. 問題が再発しないようにするための対策

該当のエラーが出ている時間でEC2の負荷が高かったりしていませんでしょうか?
また以下のブログのように負荷が高くなくてもエラーが発生する場合がありますのでご確認いただければと思います。
https://medicalfields.jp/blog/centos/%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%A8cpu%E3%81%AB%E4%BD%99%E8%A3%95%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%ABnginx%E3%81%A7503%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%81%A6%E3%80%81php-fpm/

profile picture
エキスパート
回答済み 2年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン