AWS ロードバランサーでリスナールールを試してみる

前回 AWS でロードバランサーを作ってアクセス分散を試してみました。
今回は、リスナールールを作成して IP ベースの振り分けとリダイレクトを試してみます。

目次

前提

AWS ロードバランサーを介してサーバーを公開するで作成したロードバランサーがあることを前提とします。

IP ベースの振り分け

ターゲットグループを追加

前回作成したロードバランサーでは、ロードバランサー(ALB)を 1 つ、ターゲットグループを 1 つでした。
今回は、振り分けするためにターゲットグループ TARGET-GP1 を追加で作成します。

作成後は以下のようになります。

TARGET-GP0 と TARGET-GP1 それぞれに、インスタンスを参加させています。
参加させるインスタンスには nginx を設定しておき、それぞれのデフォルトページを見分けるために書き換えておきます。

リスナールールの追加

ロードバランサーを開くと作成済みの ALB があります。
HTTPS:443 の「ルール表示/編集」を開きます。

追加を押して、ルールを作成します。

今回は、自分の使用しているグローバル IP からアクセスしている時だけ先に作った追加のターゲットグループに振り分けます。
現在使用しているグローバル IP は、CMAN - IP アドレス確認で確認しました。

送信元 IP はxxx.xxx.xxx.xxx/32の形式で記述しました。

確認(IP ベース振り分け)

https://[ロードバランサーヘ割り当てたドメイン]にアクセスしてみます。

以下のようになります。

グローバル IP が異なるようにスマートフォンをキャリア回線で接続し、同じアドレスに接続すると別の画面が表示されることを確認できました。

リダイレクト

現在のロードバランサーは、80 番ポートで受け取るとターゲットグループの 80 番ポートへ転送する仕組みになっています。
この状態だと「保護されていない通信」の警告が出ることになります。

80 番ポートで受け取ったら、443 番ポートにリダイレクトさせてみます。

リスナールールを編集

ロードバランサーの http:80 のリスナールールは以下のようになっています。

以下のように編集します。

  • 追加:どのパスでも、https://#{host}:443/#{path}?#{query}に転送
  • 編集:固定レスポンス 503 を返す

確認(リダイレクト)

http://[ロードバランサーヘ割り当てたドメイン]にアクセスしてみます。

アドレスバーを見ると警告がないことを確認できます。

この設定時に、インスタンスに割り当てたセキュリティグループからも http:80 番ポートの許可を外してあげました。


今回は、リスナールールを使って振り分けとリダイレクトを試みてみました。
リスナールールでは触っていない項目もまだあるので、他も触りたいところです。

ではでは。