コストを節約するために、サーバーロードバランサー(SLB)インスタンスを複数のアプリケーションのインスタンスに関連付けることができます。これらのアプリケーションは、パブリックIPアドレスとポートを共有します。アプリケーションにリクエストを転送するための転送ポリシーを設定できます。このトピックでは、同じSLBインスタンスに関連付けられ、同じポートを共有する複数のアプリケーションのトラフィックを転送するようにドメイン名を設定する方法について説明します。
背景情報
同じポートを共有するアプリケーションのElastic Compute Service(ECS)クラスターでトラフィックを転送するには、HTTPリスナーのみを設定できます。
SLBインスタンスはHTTPプロトコルをサポートし、HTTPリクエスト内のドメイン名とURLに基づいてトラフィックを転送できます。次の図では、SLBインスタンスのIPアドレスは、App1とApp2のvServerグループに関連付けられている次のドメイン名にマッピングされています。abc***.com
および xyz***.com
。SLBインスタンスがHTTPリクエストを受信した後、SLBインスタンスはHTTPリクエスト内のドメイン名に基づいてトラフィックを転送します。SLBインスタンスは、ドメイン名が abc***.com
の場合はApp1のvServerグループAに、ドメイン名が xyz***.com
の場合はApp2のvServerグループBにトラフィックを転送します。
たとえば、2つのアプリケーションがあるとします。1つは注文を照会するために使用されるユーザーアプリケーションです。もう1つは、ユーザーログオンに使用される注文アプリケーションです。どちらのアプリケーションも同じパブリックIPアドレスとポートを使用します。デフォルトでは、ポート 80 が使用されます。アプリケーションのトラフィックを転送するために異なるドメイン名を設定できます。この例では、ユーザーアプリケーションには u.domain.com が設定され、注文アプリケーションには o.domain.com が設定されています。
手順
次の手順では、SLBインスタンスを2つの異なるアプリケーションのインスタンスに関連付け、トラフィックを転送するために異なるドメイン名を設定する方法を示します。
edas-test-slbという名前のSLBインスタンスを作成します。詳細については、「インスタンスの作成」をご参照ください。
Enterprise Distributed Application Service(EDAS)コンソールでECSクラスターにデプロイされるアプリケーションを作成します。アプリケーションにspring-cloud-providerという名前を付けます。 edas-test-slbをspring-cloud-providerのインスタンスに関連付けます。リスニングプロトコルをHTTPに、ポート番号を 80 に設定します。転送ルールに
provider.test.com
という名前を付けます。edas-test-slbをspring-cloud-consumerのインスタンスに関連付けます。関連付けのプロセスは、edas-test-slbをspring-cloud-providerのインスタンスに関連付けるプロセスと似ています。唯一の違いは、spring-cloud-consumerに作成する転送ルールに
consumer.test.com
という名前が付けられることです。
edas-test-slbをspring-cloud-providerとspring-cloud-consumerのインスタンスに関連付けた後、SLBインスタンスのIPアドレスが /etc/hosts123.1.XX.XX
の場合、LinuxまたはmacOSクライアントの ファイルに次のエントリを追加できます。
123.1.XX.XX provider.test.com
123.1.XX.XX consumer.test.com
その後、http://provider.test.com
を使用してspring-cloud-providerにアクセスし、http://consumer.test.com
を使用してspring-cloud-consumerにアクセスできます。
SLBインスタンスを最初のアプリケーションのインスタンスに関連付け、ドメイン名ベースの転送ポリシーを設定する
SLBインスタンスを最初のアプリケーションのインスタンスに関連付け、リスニングポート、vServerグループ、およびドメイン名ベースの転送ポリシーを設定します。
- にログオンします。左側のナビゲーションペインで、EDAS コンソール を選択します。
- アプリケーション ページで、上部のナビゲーションバーでリージョンを選択し、[マイクロサービス名前空間] ドロップダウンリストからオプションを選択します。 [クラスタタイプ] ドロップダウンリストから ECSクラスター を選択します。次に、アプリケーションリストで必要なアプリケーションの名前をクリックします。
- アプリケーション設定[基本情報] ページの 追加SLB (インターネット) セクションで、 の横にある をクリックします。説明 SLBインスタンスを設定済みの場合、SLBインスタンスのIPアドレスとポート番号が表示されます。 [変更] をクリックして設定ページに移動し、SLBインスタンスの設定を変更できます。また、[バインド解除] をクリックしてSLBインスタンスのバインドを解除することもできます。
[ロードバランシング(パブリック)の追加] ウィザードで、SLBインスタンスを設定します。
[SLBインスタンスの選択] ステップで、[SLBタイプ] パラメーターを [ALB] または [CLB] に設定します。 [SLB(インターネット)] ドロップダウンリストから作成したSLBインスタンスを選択し、[次へ] をクリックします。
[リスナーの選択と設定] ステップで、リスニングポートを設定し、[次へ] をクリックします。
[SLBタイプ] パラメーターを [ALB] に設定した場合、既存のリスニングポートのみを選択できます。 [SLBタイプ] パラメーターを [CLB] に設定した場合、次の2つのオプションを使用できます。
指定したSLBインスタンスに設定されている既存のリスニングポートを使用する場合は、[既存のリスニングポートを選択] を選択し、リスニングポートを選択します。
指定したSLBインスタンスにリスニングポートが設定されていない場合、またはアプリケーションのリスニングポートを追加する場合は、[リスニングポートを追加] を選択し、リスナーを作成します。
パラメーター
パラメーター
説明
[プロトコル]
[HTTP] を選択します。HTTPリスナーの作成方法の詳細については、Application Load Balancer(ALB)インスタンスの[HTTPリスナーの追加]、またはClassic Load Balancer(CLB)インスタンスの[HTTPリスナーの追加]をご参照ください。
説明リスナーは、SLBがバックエンドサーバーにリクエストをルーティングする方法を決定します。 EDASのECSクラスターでホストされているアプリケーションのインスタンスにSLBインスタンスを関連付けた後、SLBインスタンスのリスナーを設定する必要があります。 HTTPは、Webアプリケーションや小規模モバイルゲームなど、データコンテンツを識別する必要があるアプリケーションに適用できます。
[フロントエンドポート番号]
SLBインスタンスが外部サービスを提供するために使用するポートの番号。
重要追加するポート番号が別のリスニングプロトコルで使用されている場合は、別のポート番号を設定する必要があります。 SLBコンソール にログオンしてリスニングポートを削除し、EDASコンソールでポートを追加することもできます。
[ヘルスチェックパス(URI)]
SLBインスタンスがバックエンドのステータスを確認するために使用するURI。デフォルト値は /_ehc.html です。有効なURIを入力してください。詳細については、「CLBヘルスチェックの設定と管理」をご参照ください。
[バックエンドポート番号]
アプリケーションのポート番号。値は固定です。
[vserverグループと転送ポリシーの設定] ステップで、SLBインスタンスのvServerグループを設定し、ドメイン名ベースの転送ポリシーを設定して、[次へ] をクリックします。
パラメーター
説明
[デフォルトサーバーグループ]
デフォルトサーバーグループは転送ポリシーをサポートしていません。したがって、ドメイン名を使用してトラフィックを転送する場合は、デフォルトサーバーグループを選択できません。 vServerグループを選択する必要があります。
[既存のvserverグループ]
指定したSLBインスタンスに作成されている既存のvServerグループを使用する場合は、次の手順を実行します。
[既存のvserverグループ] を選択し、既存のvServerグループを選択します。
転送ルールを設定します。
vServerグループに設定されている既存の転送ポリシーを使用するには、Modify the forwarding policy of the current VServer group を選択し、転送ポリシーを選択します。
vServerグループに転送ポリシーが設定されていない場合、または転送ポリシーを追加する場合は、Add Forwarding Policy を選択し、[転送ポリシー] フィールドにドメイン名を指定します。
[vserverグループの作成]
指定したSLBインスタンスにvServerグループが設定されていない場合、またはアプリケーションのvServerグループを追加する場合は、次の手順を実行します。
[vserverグループの作成] を選択し、[vserverグループ名] パラメーターを指定します。
Add Forwarding Policy を選択し、[転送ポリシー] フィールドにドメイン名を指定します。
- [確認] ステップで、SLBインスタンスの設定を確認し、[確認] をクリックします。
設定したドメイン名ベースの転送ポリシーを使用してアプリケーションにアクセスできるかどうかを確認します。詳細については、「検証」をご参照ください。
SLBインスタンスを2番目のアプリケーションのインスタンスに関連付け、ドメイン名ベースの転送ポリシーを設定する
EDAS コンソールにログオンします。[アプリケーション] ページで、2 番目のアプリケーションの名前をクリックします。[基本情報] タブの [アプリケーション設定] セクションで、このトピックの SLB インスタンスを最初のアプリケーションのインスタンスに関連付けて、ドメイン名ベースの転送ポリシーを設定する セクションで説明されている操作を繰り返します。2 番目のアプリケーションに関連付ける SLB インスタンスと、2 番目のアプリケーションに設定するリスニングポートは、最初のアプリケーションのものと同じです。唯一の違いは、vServer グループとドメイン名ベースの転送ポリシーです。