ALBのヘルスチェックがRequest timed outになる原因

ALB_unhealth_request-timed-out

本記事ではプライベートサブネットに配置したEC2にトラフィックを分散する際に、ヘルスチェックステータスが「unhealthy」状態であり、ヘルスステータスの詳細が「Request timed out」になり、ヘルスチェックが失敗した原因について原因と対処法を記載致します。

プライベートサブネットにEC2を配置してネットワークを構築する際にyumが通らない件についても別途解説しておりますので、以下記事もご参照ください。

参考 プライベートサブネットにEC2を配置するとyumが通らない件ITサービス指向エンジニアブログ

ヘルスチェックが通らない問題

ALBからプライベートサブネットからプライベートサブネットのEC2をターゲットグループとして登録したが、ヘルスチェックステータスがunhealthyで通らず、Request timed out状態になっています。

結論

今回の結論は「ALBに紐づいたセキュリティグループからHTTP: 80番ポートを許可するルール」をEC2のセキュリティグループのインバウンドルールに設定してやる必要がありました。

現状の構成

ヘルスチェックが通らない状態の構成を以下に記載します。

VPC, サブネットの構成

VPC IPアドレス範囲: 10.0.0.0/21

サブネット:

項目詳細①詳細②
AZap-northeast-1aap-northeast-1c
PublicSubnet10.0.0.0/2410.0.1.0/24
PrivateSubnet10.0.2.0/2410.0.3.0/24

EC2:

サブネットEC2
PrivateSubnetWebServer-dev-1
PrivateSubnetWebServer-dev-2

セキュリティグループ名: web-sg-dev(タグ: private-webserver-sg)

インバウンドルール:

インスタンス名ソースポートタイププロトコル
WebServer-dev-110.0.0.0/2422SSHTCP
WebServer-dev-110.0.0.0/2480HTTPTCP
WebServer-dev-210.0.0.0/2422SSHTCP
WebServer-dev-210.0.0.0/2480HTTPTCP

ALBの構成

名前: alb-dev

セキュリティグループ名: alb-dev-sg

AZ(ルーティング先): PrivateSubnet-dev-1, PrivateSubnet-dev-2

インバウンドルール:

ソースポートタイププロトコル
0.0.0.0/080HTTPTCP

アウトバウンドルール:

送信先ポートタイププロトコル
0.0.0.0/080HTTPTCP

ヘルスチェックが問題なく通るセキュリティグループ設定

一見EC2のインバウンドルールは問題ないように見えるが、EC2のセキュリティグループのインバウンドルールを10.0.0.0/24のHTTPプロトコルで許可ではなく、ALBに紐づいたセキュリティグループからのHTTPプロトコル80番を許可するルールをEC2のインバウンドルールに設定してやる必要があります。

修正後のEC2のセキュリティグループは以下になります。

インスタンス名ソースポートタイププロトコル
WebServer-dev-110.0.0.0/2422SSHTCP
WebServer-dev-1alb-dev-sg80HTTPTCP
WebServer-dev-210.0.0.0/2422SSHTCP
WebServer-dev-2alb-dev-sg80HTTPTCP

上記に設定することでヘルスチェックがunhealthy状態を解消することができます。

同じようにつまづいた方へのヒントになれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です