Azure portal で TLS 終端の証明書を使用してアプリケーション ゲートウェイを作成できます。 アプリケーション ゲートウェイで HTTP トラフィックを HTTPS ポートにリダイレクトするために、ルーティング規則が使用されます。 また、この例では、2 つの仮想マシン インスタンスが含まれるアプリケーション ゲートウェイのバックエンド プールのために仮想マシン スケール セットを作成します。
この記事では、次の方法について説明します。
- 自己署名証明書を作成する
- ネットワークを設定する
- 証明書を使用してアプリケーション ゲートウェイを作成する
- リスナーとリダイレクト規則を追加する
- 既定のバックエンド プールで仮想マシン スケール セットを作成する
Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
注
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
このチュートリアルでは、証明書を作成して IIS をインストールするために、Azure PowerShell モジュール バージョン 1.0.0 以降が必要になります。 バージョンを確認するには、Get-Module -ListAvailable Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 このチュートリアルでコマンドを実行するには、Login-AzAccount
を実行して Azure との接続を作成することも必要です。
自己署名証明書を作成する
実際の運用では、信頼できるプロバイダーによって署名された有効な証明書をインポートする必要があります。 このチュートリアルでは、New-SelfSignedCertificate を使用して、自己署名証明書を作成します。 Export-PfxCertificate と返されたサムプリントを使用して、pfx ファイルを証明書からエクスポートできます。
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
次のような結果が表示されます。
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
サムプリントを使用して、pfx ファイルを作成します。
$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
アプリケーション ゲートウェイを作成する
作成したリソース間の通信には仮想ネットワークが必要です。 この例では 2 つのサブネットが作成されます。1 つはアプリケーション ゲートウェイ用で、もう 1 つはバックエンド サーバー用です。 仮想ネットワークは、アプリケーション ゲートウェイを作成するときに同時に作成できます。
Azure portal にサインインします。
Azure portal の左上隅にある [リソースの作成] をクリックします。
[ネットワーク] を選択し、注目のリストで [Application Gateway] を選択します。
次のアプリケーション ゲートウェイの値を入力します。
myAppGateway - アプリケーション ゲートウェイの名前です。
myResourceGroupAG - 新しいリソース グループの名前です。
他の設定は既定値をそのまま使用し、[OK] をクリックします。
[仮想ネットワークの選択]、[新規作成] の順にクリックし、次の仮想ネットワークの値を入力します。
myVNet - 仮想ネットワークの名前です。
10.0.0.0/16 - 仮想ネットワークのアドレス空間です。
myAGSubnet - サブネットの名前です。
10.0.0.0/24 - サブネットのアドレス空間です。
[OK] をクリックして、仮想ネットワークとサブネットを作成します。
[フロントエンド IP 構成] で、[IP アドレスの種類] は [パブリック] であり、[新規作成] が確実に選択されているようにします。 名前として「myAGPublicIPAddress」と入力します。 他の設定は既定値をそのまま使用し、[OK] をクリックします。
[リスナー構成] で、[HTTPS]、[ファイルの選択] の順に選び、c:\appgwcert.pfx ファイルに移動して [開く] を選択します。
証明書の名前として「appgwcert」と入力し、パスワードとして「Azure123456!」と入力します。
Web アプリケーション ファイアウォールは無効のままにし、[OK] を選択します。
概要ページで設定を確認し、[OK] を選択して、ネットワーク リソースとアプリケーション ゲートウェイを作成します。 アプリケーション ゲートウェイの作成には数分かかる場合があります。デプロイが正常に終了するのを待ち、その後で次のセクションに進みます。
サブネットを追加する
左側のメニューで [すべてのリソース] を選択し、リソースの一覧で [myVNet] を選びます。
[サブネット] を選択してから、[サブネット] をクリックします。
サブネットの名前として「myBackendSubnet」と入力します。
アドレス範囲として「10.0.2.0/24」と入力してから、[OK] を選択します。
リスナーとリダイレクト規則を追加する
リスナーを追加する
最初に、ポート 80 用に myListener という名前のリスナーを追加します。
- myResourceGroupAG リソース グループを開き、[myAppGateway] を選択します。
- [リスナー]、[+ Basic]\(+ 基本\) の順に選択します。
- 名前として「MyListener」と入力します。
- 新しいフロントエンド ポート名については「httpPort」、ポートは「80」と入力します。
- プロトコルが確実に [HTTP] に設定されている場合は、[OK] を選択します。
リダイレクト構成と共にルーティング規則を追加する
- [myAppGateway] で、[規則]、[+Request routing rule]\(+基本ルーティング規則\) の順に選択します。
- [規則名] には、「Rule2」と入力します。
- リスナーに対して [MyListener] が確実に選択されているようにします。
- [Backend targets]\(バックエンド ターゲット\) タブをクリックし、[ターゲットの種類] は [リダイレクト] を選択します。
- [リダイレクトの種類] では、[永続] を選択します。
- [リダイレクト ターゲット] では、[リスナー] を選択します。
- [対象リスナー] が [appGatewayHttpListener] に確実に設定されているようにします。
- [クエリ文字列を含める] と [パスを含める] は [はい] を選択します。
- [追加]を選択します。
注
appGatewayHttpListener は既定のリスナー名です。 詳細については、「Application Gateway のリスナーの構成」を参照してください。
仮想マシン スケール セットを作成する
この例では、アプリケーション ゲートウェイのバックエンド プールにサーバーを提供する仮想マシン スケール セットを作成します。
- ポータルの左上隅にある [+リソースの作成] を選択します。
- [コンピューティング] を選択します。
- 検索ボックスに、「スケール セット」と入力し、Enter キーを押します。
- [仮想マシン スケール セット]、[作成] の順に選択します。
- [仮想マシン スケール セットの名前] に、「myvmss」と入力します。
- [オペレーティング システムのディスク イメージ] で、[Windows Server 2016 Datacenter] が選択されていることを確認します。
- [リソース グループ] では、[myResourceGroupAG] を選択します。
- [ユーザー名] では、「azureuser」と入力します。
- パスワードには「Azure123456!」と入力し、パスワードを確認入力します。
- [インスタンス数] では、値が確実に 2 であるようにします。
- [インスタンス サイズ] では、[D2s_v3] を選択します。
- [ネットワーク] で、[負荷分散オプションの選択] が [Application Gateway] に確実に設定されているようにします。
- [Application Gateway] が確実に [myAppGateway] に設定されているようにします。
- [サブネット] が [myBackendSubnet] に確実に設定されているようにします。
- [作成] を選択します。
スケール セットを適切なバックエンド プールに関連付ける
仮想マシン スケール セットのポータル UI でスケール セット用の新しいバックエンド プールが作成されますが、それを既存の appGatewayBackendPool に関連付ける必要があります。
- myResourceGroupAg リソース グループを開きます。
- [myAppGateway] を選択します。
- [バックエンド プール] を選択します。
- [myAppGatewaymyvmss] を選択します。
- [Remove all targets from backend pool]\(バックエンド プールからすべてのターゲットを削除\) を選択します。
- [保存] を選択します。
- このプロセスが完了したら、[myAppGatewaymyvmss] バックエンド プール、[削除]、[OK] の順に選択して確定します。
- [appGatewayBackendPool] を選択します。
- [ターゲット] で、[VMSS] を選択します。
- [VMSS] で、[myvmss] を選択します。
- [ネットワーク インターフェイスの構成] で、[myvmssNic] を選択します。
- [保存] を選択します。
スケール セットをアップグレードする
最後に、これらの変更でスケール セットをアップグレードする必要があります。
- [myvmss] スケール セットを選択します。
- [設定] で、[インスタンス] を選択します。
- 両方のインスタンスを選択し、[アップグレード] を選びます。
- [はい] を選択して確定します。
- これが完了したら、myAppGateway に戻り、[バックエンド プール] を選択します。 これで、appGatewayBackendPool のターゲットは 2 個になり、myAppGatewaymyvmss のターゲットは 0 個になるはずです。
- [myAppGatewaymyvmss]、[削除] の順に選択します。
- [OK] を選択して確定します。
IIS をインストールする
スケール セットに IIS をインストールする簡単な方法は、PowerShell を使用することです。 ポータルで Cloud Shell アイコンをクリックし、確実に [PowerShell] が選択されているようにします。
次のコードを PowerShell ウィンドウに貼り付け、Enter キーを押します。
$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
Update-AzVmss `
-ResourceGroupName myResourceGroupAG `
-Name myvmss `
-VirtualMachineScaleSet $vmss
スケール セットをアップグレードする
IIS でインスタンスを変更した後、この変更でスケール セットをもう一度アップグレードする必要があります。
- [myvmss] スケール セットを選択します。
- [設定] で、[インスタンス] を選択します。
- 両方のインスタンスを選択し、[アップグレード] を選びます。
- [はい] を選択して確定します。
アプリケーション ゲートウェイをテストする
アプリケーションのパブリック IP アドレスは、アプリケーション ゲートウェイの [概要] ページから取得できます。
[myAppGateway] を選択します。
[概要] ページで、[フロントエンド パブリック IP アドレス] の IP アドレスを書き留めます。
そのパブリック IP アドレスをコピーし、ブラウザーのアドレス バーに貼り付けます。 たとえば、http://52.170.203.149 のように指定します。
自己署名証明書を使用した場合、セキュリティ警告を受け入れるには、そのまま [詳細] を選択し [Web ページへ移動] を選択します。 セキュリティで保護された IIS Web サイトは、次の例のように表示されます。
次のステップ
内部リダイレクトを行うアプリケーション ゲートウェイを作成する方法を学習します。