ELB (ALB) のヘルスチェックが Request timed out になって悩んだ


ぜんぜん大した話ではないのですが、検索しても答えが見つからず、しばらく悩んだので。

ロードバランサのアウトバウンドルールが閉じていた

リクエストが通るには、

  • ロードバランサに設定したセキュリティグループのアウトバウンドルール
  • インスタンスに設定したセキュリティグループのインバウンドルール

の双方で接続を許可する必要があります。

インスタンスのインバウンドルールばかり見ていて、ロードバランサのアウトバウンドルールが閉じていることになかなか気づきませんでした。。

その他

ALB のセキュリティグループの推奨設定が以下にあります。
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-update-security-groups.html
アウトバウンドを絞るのは、ALB のルールを間違えて、変なサーバにリクエストを送るのを防ぐためでしょうか。

今回は特に関係ありませんでしたが、ヘルスチェックのリクエストは以下のような内容になるそうです。Host ヘッダは IP になるとのこと。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/elb-fix-failing-health-checks-alb/

GET / HTTP/1.1
Host: 10.0.0.1:80
Connection: close
User-Agent: ELB-HealthChecker/2.0
Accept-Encoding: gzip, compressed