🍊
AWS EC2 ヘルスチェックは通るのに、アクセスすると502が出るときに確認すること
前提
- 構成
- Route53
- ALB
- ECS(EC2)
- (ACMで証明書取得してSSL化)
遭遇した現象
- ALBからインスタンスへのヘルスチェックは通るのに、ブラウザやInsomniaからのアクセスで502 Bad Gatewayが出る
- CloudWatchでバックエンドのログを確認したが何も出ない
- アクセスが届いている形跡がない
どうやって直したか
- ALBを作成し直してBasic configurationのポートを443から80に変更
- ヘルスチェックの方は80になっていたのでhealthyになっていた
どこが違ったか
- AWSでHTTPS化する際、Route53・ALB間、ALB・EC2間が共にHTTPSで繋がっていると思っていた
- 実際はALB・EC2間はHTTP
- HTTPSでつなぐ構成もあるらしい(別の証明書が必要らしい)
- 実際はALB・EC2間はHTTP
なぜミスに気づけなかったか
- ALBのヘルスチェックで使う設定とそれ以外のアクセスの設定が同じと思っていた
- ターゲットグループの設定を見る際にBasic configurationより下ばかり見ていた(上は名前くらいしか書いてない飾りだと思ってしまっていた)
なぜミスに気づけたか
- ALBのヘルスチェックのポートを443にしてみると通らなくなった
- ALB・EC2間の接続がHTTPSではいけないことに気づく
- 他プロジェクトで設定した箇所と見比べていて、Basic configurationのポートが違うことに気づく
Discussion