AWS ApplicationLoadBalancerリスナールールで特定 IP 以外をメンテナンスページ表示

AWS ApplicationLoadBalancerリスナールールで特定 IP 以外をメンテナンスページ表示

概要

AWS で運用している Web サービスでメンテナンスが必要となり、ALB でメンテ切り替えをした際の対応をまとめました。

手順

ALB Listener 一覧からルール変更をします。

※ 今回 2 ポートのみ解放しており、80 は 443 に転送してるので、443 のみ対応しました。

その後、

  • 送信元 IP = 社内 IP (ex. 11.22.33.44/32 ) → default の TargetGroup へ転送 で「保存」
  • 社内 IP 以外の送信元 IP 全て ( 0.0.0.0/0 ) → 503 text/html メンテ文言をレスポンス で 「保存」

以上で 社内 IP は、通常通りアクセス可、それ以外はメンテナンスページを表示させることができました。

まとめてルールを追加して保存が出来ず、1 つずつルール追加で保存になります。

レスポンスできる Content-Type って何があるの?

Content-Type に application/json 等も返せるので、 API サーバのメンテ時にはこちらを利用して文言を渡しました。

ちょっとした注意

最大文字数が 1024 文字でした ♪

CSS を レスポンス本文 に追加すると文字数 1024 を超えてしまいそうなので、S3 にアップロードし公開し、そちらを参照するようにしたりしました。

AWS ApplicationLoadBalancerリスナールールで特定 IP 以外をメンテナンスページ表示

https://kenzo0107.github.io/2019/09/29/2019-09-30-aws-applicationloadbalancer-ip/

Author

Kenzo Tanaka

Posted on

2019-09-30

Licensed under

コメント