【AWS】メンテナンス時にALBで転送先を簡単に変える方法
TL;DR
ALB(Application Load Balancer)のリスナーのルールを使用して、ALBの転送先を変える方法を記載しています。
関連情報
以下を参考にしました。
特定のドメインの転送先を別転送先に変えたい場合(例えば、メンテナンス画面に変更させたい等)が少なからずあると思います。
ALBのリスナーのルールを使うことによって、簡単に変更することが可能だったので、メモ代わりにアウトプットしようと思いますmm
今回はまず、ALBのリスナー(HTTP : 80)で受けたときに、正常の場合EC2に転送します。
その後、メンテナンス画面にするためにルールを変更し、メンテナンス画面(擬似的に固定レスポンス)に変わるところまでを行います。
前提条件
- ALB経由でEC2(webサーバー)にさばけること。
やってみます
1. リスナーのルールを作成する。(通常用)
現在、ALBではHTTP(port80)で受け、EC2に転送しています。
EC2ではwebサーバーとして、Nginxを起動しました。
ロードバランサー
>リスナー
では以下のようになっています。
ルールの表示/編集
からルールを編集していきます。
以下のようにパスで*
を指定し、HTTP(port80)で受け取るALBのパスはEC2のターゲットグループに転送するようにルールを追加しました。
2. リスナーのルールを作成する。(メンテナンス用)
続いて、メンテナンス時に飛ばしたい転送先のルールを追加していきます。
今回は、擬似的に固定レスポンスを返すように以下のように、パスを*
で指定し、固定レスポンスを返すようにルールを追加しました。
ただし、先程追加したルールの下にルールを追加するようにします。
3. ALBのルールを変え、転送先を変えてみる。
まず、現在のALBにつなぐと以下のようにEC2につながります。
ここで、ALBのルールの優先順位を固定レスポンス(メンテナンス用)を上位にするように変更してみます。
では、もう一度ALBにつないで確認をしてみると、以下のように先程のルールが適用されています。
こんな感じにパス指定やホストを指定したりして、ALBで簡単に転送先を変えることができました。