このトピックでは、Application Load Balancer (ALB) インスタンスのHTTPSリスナーを有効にして、異なるドメイン名宛てのHTTPSリクエストを異なるバックエンドサーバーに転送する方法について説明します。
シナリオ
ALBがHTTPSリクエストを受信すると、ALBはリクエストされたドメイン名をアップロードした証明書と照合します。 リクエストが証明書の1つと一致する場合、ALBは認証のために証明書をクライアントに返し、ドメイン名に対して設定した転送ルールに基づいてリクエストをバックエンドサーバーに転送します。
このチュートリアルで使用される設定は以下のとおりです。
リスナーのデフォルト証明書は、ドメイン名
aliyundoc.com
に関連付けられています。 デフォルトのバックエンドサーバーグループはRS1です。リスナーの追加の証明書example1は、ドメイン名
www.example.com
に関連付けられています。https://www.example.com
向けのリクエストは、バックエンドサーバグループRS1に転送される。リスナーの追加の証明書example2は、ドメイン名
www.example.org
に関連付けられています。https://www.example.org
向けのリクエストは、バックエンドサーバRS2に転送される。
前提条件
ALBインスタンスが作成されました。 詳細については、「ALBインスタンスの作成」をご参照ください。
サーバグループRS1およびRS2が作成される。 詳細については、「サーバーグループの作成と管理」をご参照ください。
ECS01はRS1に加えられ、ECS02はRS2に加えられる。 アプリケーションはECS01およびECS02にデプロイされます。
ドメイン名が登録され、ドメイン名のためにインターネットコンテンツプロバイダ (ICP) 番号が取得される。 詳細については、「Alibaba Cloudへのドメイン名の登録」および「概要」をご参照ください。
必要な証明書がデプロイされます。 証明書をサードパーティのサービスプロバイダーから購入した場合は、証明書管理サービスにアップロードする必要があります。 さらに、証明書がドメイン名に関連付けられていることを確認してください。 証明書の作成方法の詳細については、「SSL Certificates Serviceの使用を開始する」をご参照ください。 この例では、次の証明書が使用されます。
ドメイン名
aliyundoc.com
に関連付けられているデフォルトの証明書。ドメイン名
www.example.com
に関連付けられている追加の証明書example1。ドメイン名
www.example.org
に関連付けられている追加の証明書example2。
ステップ1: HTTPSリスナーの作成
ALB コンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスがデプロイされているリージョンを選択します。
左側のメニュで、インスタンスをクリックします。
[インスタンス] ページで、ALBインスタンスを見つけ、[操作] 列の [リスナーの作成] をクリックします。
[リスナーの設定] ステップで、パラメーターを設定します。 次の表に、いくつかのパラメーターを示します。 ビジネス要件に基づいて他のパラメーターを設定するか、デフォルト値を使用します。 パラメーターを設定したら、[次へ] をクリックします。
パラメーター
説明
リスナープロトコル
この例では、HTTPSが選択されています。
リスナーポート
この例では、ポート443が選択されている。
[SSL証明書の設定] ステップで、パラメーターを設定します。 次の表に、いくつかのパラメーターを示します。 ビジネス要件に基づいて他のパラメーターを設定するか、デフォルト値を使用します。 パラメーターを設定したら、[次へ] をクリックします。
パラメーター
説明
サーバー証明書
この例では、defaultという名前のデフォルト証明書が選択されています。
[サーバーグループの選択] ステップで、パラメーターを設定します。 次の表に、いくつかのパラメーターを示します。 ビジネス要件に基づいて他のパラメーターを設定するか、デフォルト値を使用します。 パラメーターを設定したら、[次へ] をクリックします。
パラメーター
説明
サーバーグループ
この例では、サーバグループRS1が選択される。
[設定の確認] ステップで、パラメーター設定を確認し、[送信] をクリックします。
ステップ2: 証明書の追加
[インスタンス] ページで、管理するALBインスタンスのIDをクリックします。
[リスナー] タブで、作成したHTTPSリスナーを見つけ、[操作] 列の [証明書の管理] をクリックします。
[証明書]> [サーバー証明書] タブで、[EV証明書の追加] をクリックします。
[追加の証明書の追加] ダイアログボックスで、証明書example1を選択し、[OK] をクリックします。 この手順を繰り返して、証明書例2を追加します。
ステップ3: 転送ルールの作成
[インスタンス] ページで、管理するALBインスタンスのIDをクリックします。
[リスナー] タブで、作成したHTTPSリスナーを見つけ、[操作] 列の [転送ルールの表示 /変更] をクリックします。
[転送ルール] タブで、[新しいルールの追加] をクリックして、インバウンド方向に転送ルールを追加します。
転送ルールをもう1つ追加し、[OK] をクリックします。
Domain Nameが
www.example.com
に設定されている場合、ForwardをRS1に設定し、RS1の重みを100に設定します。Domain Nameが
www.example.org
に設定されている場合、ForwardをRS2に設定し、RS2の重みを100に設定します。
説明重みの大きいサーバーグループは、より多くのリクエストを受け取ります。 この例では、サーバーグループの重みは100に設定されています。
重みの有効値は1 ~ 100です。
ステップ4: ドメイン名解決の設定
www.example.com
とwww.example.org
のCNAMEレコードを設定して、ALBインスタンスのパブリックドメイン名にマップします。
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスがデプロイされているリージョンを選択します。
を検索するFind theALBドメイン名を管理およびコピーするインスタンス。
CNAMEレコードを作成するには、次の操作を実行します。
Alibaba Cloud DNSコンソールにログインします。
DNSの管理ページで、ドメイン名の追加をクリックします。
ドメイン名の追加ダイアログボックスで、ホストのドメイン名を入力し、OKをクリックします。
重要CNAMEレコードを作成する前に、TXTレコードを使用してドメイン名の所有権を確認する必要があります。
管理するドメイン名を見つけて、をクリックします。DNS設定で、アクション列を作成します。
DNS設定ページで、レコードの追加をクリックします。
DNSレコードの追加パネルで、次のパラメータを設定し、OK をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。
DNSリクエストソース
[デフォルト] を選択します。
レコード値
ALBインスタンスのドメイン名であるCNAMEを入力します。
TTL
DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。
説明CNAMEレコードを作成すると、すぐに有効になります。 レコードを変更すると、レコードはレコードのTTLに基づいて有効になります。 デフォルトでは、TTLは10分です。
作成するCNAMEレコードが既存のレコードと競合する場合は、別のドメイン名を指定することを推奨します。 詳細については、「競合するDNSレコードのルール」をご参照ください。
ステップ5: 結果を確認する
ブラウザからwww.example.com
とwww.example.org
にアクセスして、ALBにアクセスできるかどうかをテストします。 この例では、静的Webページは、RS1およびRS2のバックエンドサーバーのそれぞれに作成されます。
ブラウザを使用して、追加の証明書example1に関連付けられているドメイン名
www.example.com
にアクセスします。 リクエストは、転送ルールに基づいてRS1のECS01に転送されます。 次の図は、テスト結果を示しています。追加証明書example2に関連付けられているドメイン名
www.example.org
にブラウザからアクセスします。 リクエストは、転送ルールに基づいてRS2のECS02に転送されます。 次の図は、テスト結果を示しています。
ドメイン名にアクセスできない場合は、ブラウザを再起動してキャッシュをクリアし、再試行してください。