Azure Application Gateway を使用して Azure VMware Solution 上の Web アプリを保護する
Azure Application Gateway は、Web アプリケーションに対するトラフィックを管理できるレイヤー 7 の Web トラフィック ロード バランサーで、Azure VMware Solution v1.0 と v2.0 の両方で提供されています。 どちらのバージョンも、Azure VMware Solution で実行されている Web アプリでテストされています。
機能は次のとおりです。
- Cookie ベースのセッション アフィニティ
- URL ベースのルーティング
- Web アプリケーション ファイアウォール (WAF)
すべての機能の一覧については、「Azure Application Gateway の機能」を参照してください。
この記事では、Web サーバー ファームの前で Application Gateway を使用して、Azure VMware Solution で実行されている Web アプリを保護する方法について説明します。
トポロジ
次の図に、Application Gateway を使用して、Azure IaaS 仮想マシン (VM)、Azure Microsoft Azure Virtual Machine Scale Sets、またはオンプレミスのサーバーを保護する方法を示します。 Application Gateway では、Azure VMware Solution VM がオンプレミス サーバーとして扱われます。
重要
現在、Azure Application Gateway は、Azure VMware Solution の VM で実行されている Web アプリを公開するのに推奨される方法です。
次の図は、Azure VMware Solution の Web アプリケーションを使用して Application Gateway を検証するために使用されるテスト シナリオを示しています。
Application Gateway インスタンスは、Azure パブリック IP アドレスを持つ専用サブネット内のハブにデプロイされます。 仮想ネットワーク用に Azure DDoS Protection をアクティブ化することをお勧めします。 Web サーバーは、NSX T0 および T1 ゲートウェイの背後にある Azure VMware Solution プライベート クラウドでホストされています。 さらに、Azure VMware Solution では、ExpressRoute Global Reach を使用して、ハブとオンプレミスのシステムとの通信が可能になります。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。
- Azure VMware Solution のプライベート クラウドがデプロイされ、実行されていること。
デプロイと構成
Azure portal で Application Gateway を検索し、[アプリケーション ゲートウェイの作成] を選択します。
次の図に示すように、基本的な詳細を入力し、[次へ: フロントエンド >] を選択します。
フロントエンド IP アドレスの種類を選択します。 パブリックの場合は、既存のパブリック IP アドレスを選択するか、新しいものを作成します。 バックエンド> を選択します。
Note
プライベート フロントエンドでは、Standard および Web Application Firewall (WAF) の SKU のみがサポートされています。
Azure VMware Solution インフラストラクチャで実行される VM のバックエンド プールを追加します。 Azure VMware Solution のプライベート クラウドで実行されている Web サーバーの詳細を入力し、[追加] を選択します。 次に、[次へ: 構成 >] をクリックします。
[構成] タブで、[ルーティング規則の追加] を選択します。
[リスナー] タブで、リスナーの詳細を入力します。 HTTPS を選択した場合、証明書は、PFX ファイル、または Azure Key Vault の既存の証明書から指定する必要があります。
[バックエンド ターゲット] タブを選択し、以前に作成したバックエンド プールを選択します。 [HTTP 設定] フィールドで、[新規追加] を選択します。
HTTP 設定のパラメーターを構成します。 [追加] を選択します。
パスベースの規則を構成する場合は、[パスベースの規則を作成する複数のターゲットを追加します] を選択します。
パスベースの規則を追加し、[追加] を選択します。 さらにパスベースの規則を追加するには、手順を繰り返します。
パスベースの規則の追加を終えたら、再度 [追加] を選択し、[次へ: タグ]> を選択します。
タグを追加したら、[次へ: 確認と作成>] を選択します。
Application Gateway で検証が実行されます。 成功した場合は、[作成] を選択してデプロイします。
構成の例
次のユース ケースで、バックエンド プールとして Azure VMware Solution の VM を使用して、Application Gateway を構成します。
複数サイトのホスティング
この手順では、Azure VMware Solution のプライベート クラウドで実行されている VM を使用して、既存のアプリケーション ゲートウェイ上でバックエンド アドレス プールを定義する方法を示します。
Note
この手順では、複数のドメインを持っていることを前提とし、www.contoso.com と www.contoso2.com の例を使用します。
プライベート クラウドで、VM の 2 つの異なるプールを作成します。 1 つは Contoso、2 つ目は contoso2 を表します。
インターネット インフォメーション サービス (IIS) の役割がインストールされた Windows Server 2016 を使用しています。 VM がインストールされたら、次の PowerShell コマンドを実行して、各 VM で IIS を構成します。
Install-WindowsFeature -Name Web-Server Add-Content -Path C:\inetpub\wwwroot\Default.htm -Value $($env:computername)
既存のアプリケーション ゲートウェイ インスタンスで、左側のメニューから [バックエンド プール] を選択し、[追加] を選択して、新しいプールの詳細を入力します。 右側のペインで [追加] を選択します。
[リスナー] セクションで、各 Web サイトに新しいリスナーを作成します。 各リスナーの詳細を入力し、[追加] を選択します。
左側で [HTTP 設定] を選択し、左側のペインで [追加] を選択します。 新しい HTTP 設定を作成するための詳細を入力して、[保存] を選択します。
左側のメニューの [規則] セクションで規則を作成します。 各規則を対応するリスナーに関連付けます。 [追加] を選択します。
対応するバックエンド プールと HTTP 設定を構成します。 [追加] を選択します。
接続をテストします。 好みのブラウザーを開き、お使いの Azure VMware Solution 環境でホストされているさまざまな Web サイトに移動します。
URL によるルーティング
次の手順では、Azure VMware Solution プライベート クラウドで実行されている VM を使用してバックエンド アドレス プールを定義します。 プライベート クラウドは、既存のアプリケーション ゲートウェイ上にあります。 その後、Web トラフィックがプール内の適切なサーバーに確実に到着するようにルーティング規則を作成します。
プライベート クラウドで、Web ファームを表す仮想マシン プールを作成します。
このチュートリアルをわかりやすく説明するために、IIS の役割がインストールされた Windows Server 2016 が使用されています。 VM がインストールされたら、次の PowerShell コマンドを実行して、VM チュートリアルごとに IIS を構成します。
1 つ目の仮想マシンの contoso-web-01 は、メインの Web サイトをホストします。
Install-WindowsFeature -Name Web-Server Add-Content -Path C:\inetpub\wwwroot\Default.htm -Value $($env:computername)
2 つ目の仮想マシンの contoso-web-02 は、画像サイトをホストします。
Install-WindowsFeature -Name Web-Server New-Item -Path "C:\inetpub\wwwroot\" -Name "images" -ItemType "directory" Add-Content -Path C:\inetpub\wwwroot\images\test.htm -Value $($env:computername)
3 つ目の仮想マシンの contoso-web-03 は、ビデオ サイトをホストします。
Install-WindowsFeature -Name Web-Server New-Item -Path "C:\inetpub\wwwroot\" -Name "video" -ItemType "directory" Add-Content -Path C:\inetpub\wwwroot\video\test.htm -Value $($env:computername)
既存のアプリケーション ゲートウェイ インスタンスに新しいバックエンド プールを 3 つ追加します。
- 左側のメニューで [バックエンド プール] を選択します。
- [追加] を選択し、最初のプールである contoso-web の詳細を入力します。
- ターゲットとして 1 つの VM を追加します。
- [追加] を選択します。
- contoso-images と contoso-video についてもこのプロセスを繰り返し、ターゲットとして一意の VM を 1 つ追加します。
[リスナー] セクションで、ポート 8080 を使用して、[基本] の種類の新しいリスナーを作成します。
左側のナビゲーションで [HTTP 設定] を選択し、左側のペインで [追加] を選択します。 新しい HTTP 設定を作成するための詳細を入力して、[保存] を選択します。
左側のメニューの [ルール] セクションでルールを作成し、以前に作成したリスナーに各ルールを関連付けます。 次に、メインのバックエンド プールと HTTP 設定を構成して、[追加] を選択します。
構成をテストします。 Azure portal でアプリケーション ゲートウェイにアクセスし、[概要] セクションで、パブリック IP アドレスをコピーします。
次のステップ
Application Gateway を使用した Azure VMware Solution で実行されている Web アプリの保護について理解したので、次の詳細について説明します。