Amazon Web Services ブログ

新規 – AWS Application Load Balancer に対するホストベースのルーティングのサポート

昨年、新しい AWS Application Load Balancer (Elastic Load Balancing の重要な一部) をご紹介し、リクエストの URL のパス要素に基づいて受信 HTTP および HTTPS トラフィックをルーティングするための設定方法について説明しました。このパスベースのルーティングにより、たとえば /api へのリクエストをサーバーのセット (ターゲットグループとも呼ばれます) にルーティングし、/mobile へのリクエストを別のセットにルーティングすることができます。このようにトラフィックをセグメント化することで、リクエストのカテゴリ別に処理環境を制御できます。たとえば、最適な処理環境として、/api リクエストにはコンピューティング最適化インスタンスを指定し、/mobile リクエストにはメモリ最適化インスタンスを指定できます。

ホストベースのルーティングと追加のルール
この度、別のルーティングオプションが利用可能になりました。Host ヘッダーに指定したドメイン名に基づいて受信トラフィックをルーティングする Application Load Balancer ルールを作成できるようになりました。api.example.com へのリクエストは 1 つのターゲットグループに送信し、mobile.example.com へのリクエストは別のターゲットグループに送信して、他のすべてのリクエストは (デフォルトルールで) 3 番目のターゲットグループに送信することができます。ホストベースのルーティングとパスベースのルーティングを組み合わせたルールを作成することもできます。これにより、api.example.com/production へのリクエストと api.example.com/sandbox へのリクエストを別々のターゲットグループにルーティングできます。これまでは、一部のお客様はプロキシサーバー群を設定して実行し、ホストベースのルーティングに使用していました。今回のリリースにより、ルーティングは Application Load Balancer によって行われるため、プロキシサーバー群は必要なくなりました。この処理レイヤーの省略により、アーキテクチャが簡素化され、運用のオーバーヘッドが削減されます。Application Load Balancer は、ポートマッピング、ヘルスチェック、サービス検出などのコンテナベースのアプリケーションをサポートする複数の機能を既に提供しています。ホストとパスの両方でルーティングできるようになると、複数のマイクロサービスをそれぞれ異なる Amazon EC2 Container Service コンテナで実行するアプリケーションを構築し、効率的にスケールすることができます。ホストベースのルーティングを使用すると、サービス名とコンテナ名を合致させることで、これまで以上にサービス検出機構を簡素化できます。今回のリリースでは、Application Load Balancer あたりの最大ルール数が 10 から 75 に増え、新しいルールエディタも導入されます。例として、以下のターゲットグループを使用してみましょう。

ロードバランシングコンソールに、Application Load Balancer に関連付けられているリスナーが表示されます。ここで、[View/edit rules] をクリックして新しいルールエディタにアクセスします。

すべてのリクエストを web-target-production ターゲットに転送するデフォルトルールが既に設定されています。

挿入アイコン ([+] 記号) をクリックして、場所を選択します。ルールは、表示されている順に処理されます。

[Insert Rule] をクリックして新しいルールを定義します。ルールは、ホスト、パス、または両方を参照できます。ホストのみを使うことにします。

ホストベースのルーティング用に 2 つのルールを追加します。エディタは次のようになります。

プロダクションおよびサンドボックスのトラフィックを別々のターゲットにルーティングする場合は、パスを参照する新しいルールを作成できます。最初のルールは次のとおりです。

数回クリックして少し入力するだけで、強力なルール群を作成できます。

Host ヘッダーと一致するルールには、最大 3 つの “*” (0 個以上の文字と一致) または “?” (1 文字と一致) ワイルドカードを含めることができます。大規模なお客様のそれぞれに、追跡目的で、独自のホスト名を付けることにします。ホスト名の最後の部分にかかわらず、すべてのリクエストを同じターゲットグループにルーティングするルールを記述できます。シンプルな例は次のとおりです。

ルールエディタの鉛筆アイコンを使用すると、ルールの順番を変更できます。ルールを選択して、別の場所に移動し、新しい順番を保存します。

既存のルールの編集や、不要なルールの削除を行うこともできます。

今すぐ利用可能
この機能は、本日からすべてのパブリック AWS リージョン (15 か所) で利用できます。各ロードバランサーで評価される最初の 10 個のルール (ホストベース、パスベース、または両方) は無料です。その後は、ルールの評価数に基づいて課金されます (これは前回の投稿で説明したロードバランサーのキャパシティーユニット (LCU) に新しく追加されたディメンションです)。各 LCU は最大 1000 ルールの評価をサポートします。LCU の 4 つすべてのディメンションが測定されますが、課金されるのは特定の時間内で最も使用量が多いディメンションのみです。設定されていても処理されないルールは課金対象外です。

Jeff;