Application Load Balancerのターゲットグループで、ヘルスチェック設定を行う際に、通常はヘルスチェック用にパスを準備し、想定したレスポンスコード(200など)が返るような設定を行うかと思います
今回は事情によりヘルスチェック用のパスを準備できなかったため、ドキュメントルート直下にヘルスチェック用パスを設定したのですが、そのままですとBASIC認証がかかっているため、ヘルスチェックがhealthyになりません
そこでhttpd.cofでBASIC認証の除外対象として、ALBからのヘルスチェック用のアクセスを許可する設定を行いました
User Agentを参照し、
ELB-HealthChecker/2.0
となっているものをBASIC認証から除外しています
<VirtualHost *:80>
<Location />
SetEnvIf User-Agent "ELB-HealthChecker/2.0" valid-ua
<RequireAny>
Require valid-user
Require env valid-ua
</RequireAny>
</Location>
</VirtualHost>
無事ヘルスチェックがHealthyになりました
参考までに他の除外設定も含めたものを記載しておきます
<VirtualHost *:80>
<Location />
# Basic認証設定
AuthType Basic
AuthName "Password Required"
AuthUserFile /path/to/.htpasswd
# IPアドレスで除外
SetEnvIf REMOTE_ADDR 192.168.0.1 valid-ip
# URIで除外
SetEnvIf Request_URI "^/index.php" valid-url
# Hostヘッダーで除外
SetEnvIf Host "specific.example.com" valid-host
# User Agentで除外
SetEnvIf User-Agent "ELB-HealthChecker/2.0" valid-ua
# 以下の条件に一致する場合はBasic認証を除外
<RequireAny>
Require valid-user
Require env valid-ip
Require env valid-url
Require env valid-host
Require env valid-ua
</RequireAny>
</Location>
</VirtualHost>








