- 新しい順
- 投票が多い順
- コメントが多い順
・ELBへはどのようなURLでリクエストしていますか?
ご自身で取得したドメイン(例:example.com)でしょうか?
ELBのDNS名(例:hoge.ap-northeast-1.elb.amazonaws.com)でしょうか?
・ドメインを正引きした時のIPアドレスへ直接アクセスした場合も同じでしょうか?
・EC2直接へのHTTPポート疎通はできているでしょうか?
502とのことでELBかEC2がHTTPのレスポンスを返しているようにも見えます。ブラウザの開発ツールやcurlでレスポンスヘッダなどをみていけばわかるかもしれません。
ありがとうございます。
ELBへのリクエストは、自身で取得したドメインでしたが接続できなかったので、
ELBのDNS名やIPアドレスでのアクセスも試してみましたがダメでした。
EC2直接のHTTPポート疎通には問題がない状態です。
現状ですが、サブネットやEC2をELBから切断→再接続を行ってた結果、問題は解決されました。
問題が発生した原因が特定できていない事は不安ですが…
3か月ほど前からHPへの接続がが不定期に遅くなる(30秒ほどかかる)現象が起き始めていたので、
ELBで何か起きていたとは思うのですが。
現状問題は解決されたとのことでよかったです。
突発的に発生したとするとELBの障害の可能性もありますね。
断続的に発生するようであれば詳しく調べておいたほうがいいかもしれません。
感覚的に
EC2のアプリケーション側で処理に時間がかかってタイムアウトだと504、
ヘルスチェック失敗してEC2に接続できない場合だと503あたりが出そうなので、
時間がかかってかつ502という事象から見ると、
「EC2までリクエストがいって、処理か接続に時間がかかって、かつレスポンスがおかしい」
みたいな感じかなと思いました。
もし原因特定まで考えるならば、もう既に実施されていることもあるかもしれませんが、
事前に
・nginxアクセスログで通常リクエストとELBヘルスチェックリクエストのログを分離
・nginxアクセスログフォーマットにrequest_timeを追加
あたりを設定しておいて
問題発生時は
・syslog(messages)の確認(高負荷、リソース不足していないか)
・ELBアクセスログ、nginxアクセス&エラーログの確認
・EC2上でtcpdumpなどでHTTPポートに本当にリクエスト来ていないか確認
・もしEC2までリクエストが来ていたらリクエスト・レスポンスヘッダを確認
・もしアプリケーション側でリダイレクトかけていたら、そのリダイレクト先のドメインが引けるか、生きているかの確認
あたりでしょうか...
最悪ELBにもEC2にも痕跡がなくて、不安なようであれば
同じ設定のELBを作成して、そちらにDNS向ける
とかでもいいかもしれません。
以上、思いついたことをつらつらと挙げてみました。
長くてすみません。。^^;
関連するコンテンツ
- 質問済み 7年前
- AWS公式更新しました 6ヶ月前
- AWS公式更新しました 2年前