クイック スタート:グローバル Web アプリケーションの高可用性を実現するフロント ドアを作成する

Azure portal で Azure Front Door を使用して Web アプリケーションの高可用性を設定してみましょう。

このクイックスタートでは、別々の Azure リージョンで実行される、Web アプリケーションの 2 つのインスタンスを Azure Front Door でプールします。 等しく重み付けされた同じ優先度のバックエンドに基づいて Front Door の構成を作成します。 この構成では、アプリケーションが実行されている最も近いサイトにトラフィックが誘導されます。 Web アプリケーションは、Azure Front Door によって絶えず監視されます。 最も近いサイトが利用できない状態になると、サービスによって、使用可能な次のサイトへの自動フェールオーバーが行われます。

Diagram of Front Door deployment environment using the Azure portal.

前提条件

Web アプリの 2 つのインスタンスを作成する

このクイックスタートには、別々の Azure リージョンで実行される、Web アプリケーションの 2 つのインスタンスが必要です。 どちらの Web アプリケーション インスタンスも "アクティブ/アクティブ " モードで実行されるため、トラフィックをどちらでも受け入れることができます。 この構成は、一方がフェールオーバーとして機能する "アクティブ/スタンバイ" 構成とは異なります。

まだ Web アプリがない場合は、次の手順に従ってサンプル Web アプリをセットアップしてください。

  1. Azure Portal ( https://portal.azure.com ) にサインインします。

  2. 画面の左上で、[リソースの作成]>[Web App] の順に選択します。

    Create a web app in the Azure portal.

  3. [Web アプリの作成] ページの [基本] タブで、次の情報を入力または選択します。

    設定
    サブスクリプション サブスクリプションを選択します。
    リソース グループ [新規作成] を選択し、テキスト ボックスに 「FrontDoorQS_rg1」 と入力します。
    名前 Web アプリの一意の名前を入力します。 この例では WebAppContoso-1 を使用します。
    発行 [コード] を選択します。
    ランタイム スタック [.NET Core 3.1 (LTS)] を選択します。
    オペレーティング システム [Windows] を選択します。
    [リージョン] [米国中部] を選択します。
    Windows プラン [新規作成] を選択し、テキスト ボックスに「myAppServicePlanCentralUS」と入力します。
    SKU とサイズ [Standard S1 100 total ACU, 1.75 GB memory](Standard S1 合計 100 ACU、1.75 GB メモリ) を選択します。
  4. [確認および作成] を選択し、 [概要] を確認して、 [作成] を選択します。 デプロイが完了するまでに数分かかる場合があります。

    Review summary for web app.

デプロイが完了したら、もう 1 つ Web アプリを作成します。 次の値を除き、同じ手順と値を使用します。

設定
リソース グループ [新規作成] を選択し、「FrontDoorQS_rg2」 と入力します。
名前 Web アプリの一意の名前を入力します (この例では WebAppContoso-2)。
[リージョン] 異なるリージョンを選択します (この例では [米国東部] )
App Service プラン>Windows プラン [新規] を選択し、「myAppServicePlanEastUS」と入力して、 [OK] を選択します

アプリケーション用のフロント ドアを作成する

2 つの Web アプリ サーバーのうち待ち時間が短い方にユーザー トラフィックを誘導するように Azure Front Door を構成します。 最初に、Azure Front Door のフロントエンド ホストを追加します。

  1. ホーム ページまたは Azure メニューから [リソースの作成] を選択します。 [ネットワーク]、>[すべてを表示]>、[Front Door と CDN プロファイル] を選択します。

  2. [オファリングの比較] ページで、[他のオファリングを調べる] を選択します。 次に、 [Azure Front Door (クラシック)] を選択します。 その後 [続行] を選択します。

  3. [フロント ドアを作成する] ページの [基本] タブで、次の情報を入力または選択してから、 [次へ: 構成] を選択します。

    設定
    サブスクリプション サブスクリプションを選択します。
    リソース グループ [新規作成] を選択し、テキスト ボックスに「FrontDoorQS_rg0」 と入力します。
    リソース グループの場所 [米国中部] を選択します。
  4. [Frontends/domains](フロントエンド/ドメイン) で、 []+ を選択して [フロントエンド ホストの追加] を開きます。

  5. グローバルに一意のホスト名を [ホスト名] に入力します。 この例では、contoso-frontend を使用します。 [追加] を選択します。

    Add a frontend host for Azure Front Door.

次に、2 つの Web アプリを含んだバックエンド プールを作成します。

  1. 引き続き [フロント ドアを作成する][バックエンド プール] で []+ を選択し、 [バックエンド プールの追加] を開きます。

  2. [名前] として「myBackendPool」を入力してから、 [バックエンドの追加] を選択します。

    Add a backend pool.

  3. [バックエンドの追加] ウインドウで、次の情報を選択し、[追加] を選択します。

    設定
    バックエンド ホストの種類 [App Service] を選択します。
    サブスクリプション サブスクリプションを選択します。
    バックエンド ホスト名 最初に作成した Web アプリを選択します。 この例では、WebAppContoso-1 という Web アプリが該当します。

    "他のフィールドはすべて既定値のままにします。 "

    Add a backend host to your Front Door.

  4. もう一度 [バックエンドの追加] を選択します。 次の情報を選択し、 [追加] を選択します。

    設定
    バックエンド ホストの種類 [App Service] を選択します。
    サブスクリプション サブスクリプションを選択します。
    バックエンド ホスト名 作成した 2 つ目の Web アプリを選択します。 この例では、WebAppContoso-2 という Web アプリが該当します。

    "他のフィールドはすべて既定値のままにします。 "

  5. [バックエンド プールの追加] ウインドウで [追加] を選択して、バックエンド プールの構成を完了します。

    Add a backend pool for Azure Front Door.

最後に、ルーティング規則を追加します。 フロントエンド ホストは、ルーティング規則によってバックエンド プールにマップされます。 この規則によって、contoso-frontend.azurefd.net への要求が myBackendPool に転送されます。

  1. 引き続き [フロント ドアを作成する][ルーティング規則] で [+] を選択し、ルーティング規則を構成します。

  2. [規則を追加する][名前] に「LocationRule」と入力します。 すべて既定値のままにし、 [追加] を選択してルーティング規則を追加します。

    Add a rule to your Front Door.

    警告

    Front Door 内の各フロントエンド ホストに、既定のパス (/*) が関連付けられたルーティング規則があることを確認する必要があります。 つまり、すべてのルーティング規則について、既定のパス (/*) で定義された各フロントエンド ホストに対するルーティング規則が少なくとも 1 つは存在する必要があります。 そうなっていないと、エンド ユーザーのトラフィックが正しくルーティングされない可能性があります。

  3. [確認および作成][作成] の順に選択します。

    Configured Azure Front Door.

Azure Front Door の動作を確認する

フロント ドアを作成した後、グローバルに構成がデプロイされるまでに数分かかります。 完了したら、作成したフロントエンド ホストにアクセスします。 ブラウザで、フロントエンドのホスト アドレスに移動します。 要求は、バックエンド プール内の指定されたサーバーの中から、自分に最も近いサーバーに自動的にルーティングされます。

それらのアプリをこのクイックスタートで作成した場合は、情報ページが表示されます。

即時グローバル フェールオーバーの動作をテストするために、次の手順を試してみましょう。

  1. リソース グループ FrontDoorQS_rg0 を開き、フロントエンド サービスを選択します。

    Screenshot of frontend service.

  2. [概要] ページで、フロントエンド ホスト アドレスをコピーします。

    Screenshot of frontend host address.

  3. 前述したように、ブラウザーを開き、フロントエンド アドレスにアクセスします。

  4. Azure portal で、App Services を検索して選択します。 下へスクロールして、いずれかの Web アプリを探します (この例では WebAppContoso-1)。

  5. Web アプリを選択し、 [停止][はい] の順に選択して確認します。

  6. ブラウザーを更新します。 同じ情報ページが表示されるはずです。

    ヒント

    これらの操作では、わずかな待ち時間が発生します。 場合によっては、再度、最新の情報に更新する必要があります。

  7. もう一方の Web アプリを探し、同様に停止します。

  8. ブラウザーを更新します。 今回はエラー メッセージが表示されます。

    Both instances of the web app stopped.

リソースをクリーンアップする

作業が完了したら、作成した項目はすべて削除してかまいません。 リソース グループを削除すると、その内容も削除されます。 このフロント ドアを使用する予定がない場合は、不要な料金が発生しないようリソースを削除してください。

  1. Azure portal で [リソース グループ] を探して選択するか、Azure portal のメニューから [リソース グループ] を選択します。

  2. フィルターを使用するか、下へスクロールしてリソース グループを探します (FrontDoorQS_rg0 など)。

  3. リソース グループを選択し、 [リソース グループの削除] を選択します。

    警告

    この操作は、元に戻すことはできません。

  4. リソース グループの名前を入力して確認し、 [削除] を選択します。

他の 2 つのグループについても手順を繰り返します。

次の手順

次の記事に進んで、フロント ドアにカスタム ドメインを追加する方法を学習してください。