●HTTPメソッド
●クエリパラメータ
●ソースIP
●HTTPヘッダー
●パス
●DNSベースのルーティング(ホストヘッダー)
上記のパラメータのいずれかを検証することにより、リクエストを特定のターゲットに転送できます。 この記事では、AWSのアプリケーションロードバランサーを使用して、上記のパラメーターに基づいてトラフィックをルーティングする方法について説明します。
環境の設定
インテリジェントルーティングを実行するには、インスタンス、ターゲットグループ、アプリケーションロードバランサーなどの基本的な環境をセットアップする必要があります。
EC2インスタンスの作成
EC2インスタンスを設定するには、次の手順に従います。
●Amazonマシンイメージ(AMI)を選択します
●インスタンスタイプを選択します
●構成の詳細(VPC、サブネット、AZ、メタデータなど)を提供します
●ストレージの接続(EBS、インスタンスストア)
●セキュリティグループを管理する
●レビューして起動します
これでインスタンスが構成されました。 次に、ターゲットグループを作成します。
ターゲットグループの作成
アプリケーションロードバランサーのルーティング方法を正常に示すには、少なくとも2つのターゲットグループが必要になるため、次の手順を使用して2つのターゲットグループを作成します。
●ターゲットタイプを選択します
●ネットワークプロトコルとポートを選択します
●VPCを選択します
●ヘルスチェックを構成する
●ターゲットを登録する
まず、ターゲットタイプを選択する必要があります。これは、インスタンス、IPアドレス、ラムダ関数、または別のアプリケーションロードバランサーのいずれかです。
ネットワークプロトコルを選択します。 この場合、これはアプリケーションロードバランサーでサポートされているプロトコルであるため、デフォルトのポート80でHTTPを選択します。 また、インスタンスが実行されているVPCを選択する必要があります。
ヘルスチェックを構成するには、アプリケーションに使用しているプロトコルを選択するだけです。 ヘルスチェックは、トラフィックを正常なターゲットにのみルーティングするのに役立ちます。
ターゲット(この場合はEC2インスタンス)を登録します。
ターゲットを登録した後、[ターゲットグループの作成]をクリックすると、ターゲットグループが作成されます。
アプリケーションロードバランサー(ALB)の作成
次に、アプリケーションロードバランサーを作成します。 手順は以下のとおりです。
●ネットワークスキーム(パブリック/プライベート)を選択します
●IPアドレスタイプ(IPv4 / IPV4&IPv6)を選択します
●VPCを選択します
●アベイラビリティーゾーン(AZ)を選択します
●セキュリティグループを構成する
●リスナーを追加する
次の記事にアクセスするだけで、AWSでアプリケーションロードバランサーを作成および設定できます。
AWSでアプリケーションロードバランサーを作成および設定する方法
インテリジェントルーティングのルールの管理
EC2インスタンス、ターゲットグループ、アプリケーションロードバランサーはすでに作成されています。 次に、アプリケーションロードバランサーがそれに応じてトラフィックをルーティングするためのルールを作成する方法について説明します。 インテリジェントルーティングは、着信要求で指定した条件とルールに基づいて、ネットワークトラフィックと要求を指定されたターゲットにルーティングおよび転送できるようにする機能です。
インテリジェントルーティングのルールを設定するには、ALBの[リスナー]タブを開き、リスナーのルールの表示/編集をクリックします。
このコンソールでは、ルーティング条件とルールを作成および編集できます。
それでは、始めて、最初からリストしたすべてのメソッドを詳しく見てみましょう。
ホストヘッダー
ここでは、受信したリクエストのDNSに基づいてターゲットを指定する必要があります。 単一のロードバランサーを指す複数のドメインを設定できます。 それぞれに特定のターゲットがあります。 このスキームは、DNSベースのルーティングとも呼ばれます。
[ルールの挿入]タブをクリックし、ドロップダウンメニューからホストヘッダーを選択します。
必要なホストヘッダーを指定します。
次に、前の手順で指定したホストヘッダーから要求を受信した場合に、実行するアクションを選択します。 リクエストを転送するか、リクエストをリダイレクトするか、リクエストに対して固定応答を返すことができます。 このデモでは、リクエストをターゲットグループに転送します。
ターゲットグループを選択します。 これで、DNSからのすべてのトラフィック www.example1.com 名前の付いたターゲットグループに転送されます デモ-TG-1。
同様に、ホストヘッダーごとに異なるターゲットを指定する複数のルールを追加できます。
パスベースのルーティング
パスベースのルーティングでは、リスナールールの条件で完全なDNSパスを定義します。 たとえば、ウェブサイトにブログセクションと画像セクションがある場合、各セクションのトラフィックを別のターゲットに簡単にルーティングできます。
新しいルールを作成し、パスオプションを選択します。
宛先のフルパスを指定します。
リクエストを目的のターゲットグループに転送するアクションを追加します。
最初のルールは、 / api / v1 に転送されます デモ-TG-1。 2番目のルールは、 / api / v2 にルーティングされます デモ-TG-2。
HTTPヘッダー
HTTPリクエストを介したサーバーとクライアントの通信がある場合、一部のデータはHTTPヘッダーを使用してサーバーとクライアントの間で渡されます。 これらのヘッダーには、リクエストヘッダー、レスポンスヘッダー、一般ヘッダー、エンティティヘッダーなどのさまざまなタイプがあります。 これらは、キーと値のペアの形式です。 アプリケーションのネットワークトラフィックは、リクエストで定義されたこれらのHTTPヘッダーに応じて、さまざまなターゲットにルーティングすることもできます。
ネットワーク要求をルーティングする場所に基づいてHTTPヘッダーを定義します。 デモンストレーションのために、ヘッダーをLocation=L1としました。
HTTPヘッダーを定義したら、ルールのターゲットを追加して作成します。
このようにして、LocationヘッダーがL1に設定されたリクエストがターゲットのDemo-TG-1にヒットし、L2がターゲットのDemo-TG-2にヒットするように指定できます。
HTTPリクエストメソッド
get、post、put、deleteなどのHTTPリクエストには複数のリクエストメソッドがあります。ここでは、これらのリクエストに基づいてリクエストをルーティングする方法を見ていきます。
これを行うには、HTTPリクエストメソッドの新しいルールを作成します。
HTTPリクエストメソッドのタイプを指定します。 このデモンストレーションのGETリクエストを入力します。
WebアプリケーションのすべてのGETリクエストを転送するターゲットを追加し、[保存]をクリックすると、ルールがアクティブになります。 このようにして、さまざまなリクエストをさまざまなターゲットグループにルーティングできます。
クエリパラメータ
この追加情報は、HTTPリクエストで追加されることがあります。 キーと値のペアの形式で定義されます。 ロードバランサーのネットワークトラフィックは、ユーザーの要求で指定されたクエリ文字列パラメーターに応じて、特定の宛先にルーティングすることもできます。
開始するには、ルールの条件としてクエリ文字列を選択します。
次に、キーと値のペアをクエリパラメータとして定義します。
ターゲットを選択し、ルールの構成を完了します。
以下の2つのルールをご覧ください。 クエリパラメータtype=t1のリクエストはDemo-TG-1に転送され、クエリパラメータtype=t2のリクエストはターゲットDemo-TG-2に到達します。
ソースIP
ロードバランサーにリクエストを送信しているユーザーのIPアドレスに応じて、リクエストを特定のターゲットグループに転送するリスナールールを設定することもできます。
ソースIPを設定するには、CIDRを指定してから、必要なターゲットを選択します。
以下に示すように、各IPまたはIPアドレス範囲は、異なるターゲットに具体的にルーティングできます。
結論
高度で高レベルのWebアプリケーションを設計する場合、インテリジェントルーティングは非常に重要です。 この記事で示されているように、ユーザーから取得したリクエストパラメーターに基づいて、単一のアプリケーションロードバランサーを使用して多くのターゲットにリクエストを転送できます。 その他のヒントやチュートリアルについては、Linuxヒントの他の記事を確認してください。
The post インテリジェントルーティング用にアプリケーションロードバランサーを構成する方法 appeared first on Gamingsym Japan.