ELBを用いて特定のパスを負荷分散させるには?

URL から ELB の転送先 target group を変更

gw からアプリケーションサーバへの通信で、特定のパスの時だけ別サーバに通信を飛ばしたい。

本日は上記のようなケースで活用できる、URL パスに特定の文字列が含まれる場合に別環境へ通信先を変更する方法をご紹介します。

導入できる事例

  • サービス開始当初は Ruby 環境で作っていたが今後追加するサービスは PHP で構築したい。しかしドメインを別にすることは SEO 的に難しいためドメインを変更せず実現したい。
  • 1つのサービス、1つのドメインで機能ごとに処理を別サーバに分割し、リスクヘッジを確保したい。

事前準備

  • パスに合致した時の通信先となる target group 及び EC2 Instance を登録しておく。

導入手順

AWS Management Console から設定する

AWS Management Console に接続し、EC2 サービス画面を開きます。

左セクションから「ロードバランシング」における「ロードバランサー」を選択します。

設定を導入したいELBを選択した状態で、下セクションの「リスナー」タブを開き、変更したいプロトコルの「ルールの表示 / 編集」をクリックします。

「ルール」の一覧画面が表示されたかと思います。以下のような画面です。

「+」タブを選択すると、新しいルールの追加画面に変化します。
「—ルールの挿入—」といった表示が追加されていると思いますので、クリックすると以下の画像のようなレイアウトが表示されます。

「条件の追加」「アクションの追加」を押すと設定ウィンドウが展開されます。
以下の画像のように設定を行います。


この例であればパスに「cart」が含まれる場合にターゲットグループ「techmania」へ通信を転送する形となります。
設定内容を再度確認し、問題がなければ青色のチェックボタンをクリックで条件やアクションの設定を保存します。


最後に画面右上の「保存」ボタンを押すことで設定完了です!

それでは今回はここまで!
お疲れ様でした!

※ 条件はパス以外にもいくつか設定が可能です。要件に応じて適切にご利用ください。

AWSカテゴリの最新記事