はじめに
Webシステムなどで、特定のURLのみ特定のEC2へアクセスしてほしいケースなどはありますか。
例えばWordpressをインストールした2台のEC2があった場合、
Wordpressへの管理画面のアクセスは特定のサーバーへアクセスを割り振りたいといったケースが考えられます。
ALB使えばとても簡単に実装することができますので試してみました。
また本手順では、VPCの作成やサブネットの作成、EC2構築、ALB用のセキュリティグループなどの作成は済んでいる想定としております。
設定方法
AWSマネージメントコンソールのEC2から
「ロードバランサー」を選択し、「ロードバランサーの作成」を選択します。
「Application Load Balancer」を選択して、「作成」を選択します。
ロードバランサー名、VPC、サブネットを選択します。
※ロードバランサー名は [FutureALB]としています。
「セキュリティグループの設定」をクリックし、ALB用のセキュリティグループを選択してください。
ターゲットグループの作成をクリックします。
ターゲットグループ名をFutureALB-tgと名前を入力し、次へをクリックします。
インスタンスをクリックして、「保留中として以下を含める」をクリックします。
ターゲットが追加されたことを確認し、ターゲットグループの作成をクリックします。
ロードバランサー設定画面に戻り、もう1つターゲットグループを作成します。
ターゲットグループMainFutureALB-tgと名前を入力して次へをクリックします。
インスタンスをクリックして、「保留中として以下を含める」をクリックします。
ターゲットが追加されたことを確認し、ターゲットグループの作成をクリックし、ロードバランサーの作成をクリックしてください。
ロードバランサー設定画面に戻り先ほど作成したMainFutureALB-tgを選択します。
「ロードバランサー」>>「リスナー」>>「ルールを管理」をクリックします。
振り分けたいURIと振り分け先のターゲットグループMainFutureALB-tgを入力し、「保存」をクリックします。
「http://example.com/test/*」へのアクセスがあった場合、
振り分けをFutureALB-tg(1台目)にアクセスが振り分けられます。
その他のURLにアクセスすると、MainFutureALB-tg(2台目)にアクセスが振り分けられます。
動作確認
http://example.com/test/
http://example.com/
まとめ
ALB+EC2構成などの場合に、特定のURLのみ割り振り設定を行いたい場合には、
今回のようなパスベースのルーティング設定を使うことが可能ですので、
必要であれば利用するのも良いかもしれません。