もっと詳しく
アプリケーションロードバランサー(ALB)は、AWSが提供するエラスティックロードバランサーの一種です。 OSI層モデルの第7層で動作し、インテリジェントルーティング用に構成できます。 アプリケーションロードバランサーを使用すると、次のパラメーターに応じて、トラフィックをさまざまなターゲットグループにルーティングできます。

●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.