AWSロードバランサーの背後にあるサーバからメンテナンスページを返したい

 2019/10/01 -  moriya -  ~1 Minute

AWS で運用しているサーバがあり、ロードバランサー(ELB)に複数台のインスタンスがぶらさがっている構成。(centos7)

メンテナンス中に工事中ページを出してほしいというリクエスト。

工事中も特定のIPアドレスからは動作確認をしたい。

/etc/http.d/maintenance.conf などを以下のように作る。(記憶を元に書いているので間違っているかも)

RewriteEngine on
RewriteCond !%{HTTP_USER_AGENT} ELB-HealthChecker
RewriteCond !%{HTTP:X-FORWARDED-FOR} ^適当¥.な¥.IP¥.アドレス$
RewriteRule ^.*$ メンテナンスページのURL [R,L]

その後、webサーバを再起動。(systemctl restart httpd)

メンテナンスページの URL は S3 に static hosting などしておけばよいかも?

[R,L] ではなく [R=何かのエラーコード,L] にしたほうがよいかも? R=503 とかがよいかとは思うのだが、IE でうまく表示できず、時間もなかったので、上記設定にした。