このトピックでは、Application Load Balancer(ALB)インスタンスの HTTPS リスナーを有効にして、異なるドメイン名宛ての HTTPS リクエストを異なるバックエンドサーバーに転送する方法について説明します。
シナリオ
ALB は HTTPS リクエストを受信すると、リクエストされたドメイン名をアップロードした証明書と照合します。リクエストが証明書のいずれかと一致する場合、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 でのドメイン名の登録」および「ICP 登録プロセス」をご参照ください。
必要な証明書がデプロイされていること。サードパーティのサービスプロバイダーから証明書を購入した場合は、証明書管理サービスにアップロードする必要があります。また、証明書がドメイン名に関連付けられていることを確認してください。証明書の作成方法の詳細については、「公式証明書の開始方法」をご参照ください。この例では、次の証明書を使用します。
ドメイン名
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] をクリックします。この手順を繰り返して、追加証明書 example2 を追加します。
ステップ 3: 転送ルールを作成する
[インスタンス] ページで、管理する ALB インスタンスの ID をクリックします。
[リスナー] タブで、作成した HTTPS リスナーを見つけ、[アクション] 列の [転送ルールの表示/変更] をクリックします。
[転送ルール] タブで、[新しいルールの追加] をクリックして、インバウンド方向の転送ルールを追加します。
もう 1 つの転送ルールを追加し、[OK] をクリックします。
[ドメイン名] が
www.example.comに設定されている場合は、[転送] を RS1 に設定し、RS1 の [重み] を 100 に設定します。[ドメイン名] が
www.example.orgに設定されている場合は、[転送] を RS2 に設定し、RS2 の [重み] を 100 に設定します。
ステップ 4: ドメイン名解決を構成する
www.example.com と www.example.org の CNAME レコードを構成して、ALB インスタンスのパブリックドメイン名にマップします。
ALB コンソール にログインします。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
管理する ALB インスタンスを見つけ、そのドメイン名をコピーします。
CNAME レコードを作成するには、次の操作を実行します。
説明Alibaba Cloud ドメインを使用してドメイン名を登録していない場合は、DNS レコードを構成する前に、Alibaba Cloud DNS にドメイン名を追加する必要があります。詳細については、「ドメイン名の管理」をご参照ください。
Alibaba Cloud DNS コンソール にログインします。
[権威 DNS 解決] ページで、ドメイン名を見つけ、[アクション] 列の [DNS 設定] をクリックします。
ドメイン名詳細ページの [DNS 設定] タブで、[DNS レコードの追加] をクリックします。
[DNS レコードの追加] パネルで、パラメーターを構成し、[OK] をクリックします。次の表に、パラメーターについて説明します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから CNAME を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。
DNS リクエストソース
デフォルトを選択します。
レコード値
CNAME、つまり ALB インスタンスのドメイン名を入力します。
TTL
DNS サーバーにキャッシュされる CNAME レコードの有効期間(TTL)値を選択します。この例では、デフォルト値が使用されます。
説明CNAME レコードを作成すると、すぐに有効になります。レコードを変更すると、レコードの TTL に基づいて有効になります。デフォルトでは、TTL は 10 分です。
作成する CNAME レコードが既存のレコードと競合する場合は、別のドメイン名を指定することをお勧めします。詳細については、「競合する DNS レコードのルール」をご参照ください。
ステップ 5: 結果を確認する
ブラウザから www.example.com と www.example.org にアクセスして、ALB にアクセスできるかどうかをテストします。この例では、RS1 と RS2 の各バックエンドサーバーに静的 Web ページが作成されています。
ブラウザを使用して、追加証明書 example1 に関連付けられているドメイン名
www.example.comにアクセスします。リクエストは、転送ルールに基づいて RS1 の ECS01 に転送されます。次の図は、テスト結果を示しています。
ブラウザから、追加証明書 example2 に関連付けられているドメイン名
www.example.orgにアクセスします。リクエストは、転送ルールに基づいて RS2 の ECS02 に転送されます。次の図は、テスト結果を示しています。
ドメイン名にアクセスできない場合は、ブラウザを再起動してキャッシュをクリアし、もう一度試してください。