次の方法で共有


チュートリアル: Web アプリケーション アクセスを向上させるアプリケーション ゲートウェイを作成する

Web アプリケーション アクセスの向上を目指す IT 管理者の場合は、アプリケーション ゲートウェイを最適化して、顧客の需要に基づいて動的にスケーリングし、複数 の可用性ゾーンにまたがることができます。 このチュートリアルでは、自動スケーリング、ゾーン冗長性、静的 VIP など、Azure Application Gateway v2 の主要な機能を構成して、これらの改善を実現するのに役立ちます。 この問題を解決するには、Azure PowerShell コマンドレットと Azure Resource Manager デプロイ モデルを使用します。

このチュートリアルでは、以下の内容を学習します。

  • 自己署名証明書を作成する
  • 自動スケーリング仮想ネットワークを作成する
  • 予約済みパブリック IP を作成する
  • アプリケーション ゲートウェイ インフラストラクチャを設定する
  • オートスケールの設定
  • アプリケーション ゲートウェイの作成
  • アプリケーション ゲートウェイをテストする

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

Application Gateway v2 での可用性ゾーンのサポートの詳細については、「 Application Gateway v2 の信頼性」を参照してください。

[前提条件]

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。

このチュートリアルでは、管理 Azure PowerShell セッションをローカルで実行する必要があります。 Azure PowerShell モジュール バージョン 1.0.0 以降がインストールされている必要があります。 バージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードが必要な場合は、Azure PowerShell モジュールをインストールを参照してください。 PowerShell のバージョンを確認したら、 Connect-AzAccount を実行して Azure との接続を作成します。

Azure にサインインする

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

リソース グループを作成する

使用可能な場所のいずれかにリソース グループを作成します。

$___location = "East US 2"
$rg = "AppGW-rg"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $___location

自己署名証明書を作成する

運用環境で使用する場合は、信頼されたプロバイダーによって署名された有効な証明書をインポートする必要があります。 このチュートリアルでは、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 ファイルを作成します。 <password>を好みのパスワードに置き換えます。

$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

仮想ネットワークを作成する

自動スケール アプリケーション ゲートウェイ用の専用サブネットを 1 つ持つ仮想ネットワークを作成します。 現在、各専用サブネットにデプロイできる自動スケール アプリケーション ゲートウェイは 1 つだけです。

#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
       -Location $___location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2

予約済みパブリック IP を作成する

PublicIPAddress の割り当て方法を Static として指定します。 自動スケール アプリケーション ゲートウェイ VIP は静的にすることしかできません。 動的 IP はサポートされていません。 Standard PublicIpAddress SKU のみがサポートされています。

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -___location $___location -AllocationMethod Static -Sku Standard -Zone 1,2,3

詳細を取得する

ローカル オブジェクト内のリソース グループ、サブネット、および IP の詳細を取得して、アプリケーション ゲートウェイの IP 構成の詳細を作成します。

$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

Web アプリを作成する

バックエンド プール用に 2 つの Web アプリを構成します。 <site1-name>と<ドメイン内の一意の名前に置き換えます。

New-AzAppServicePlan -ResourceGroupName $rg -Name "ASP-01"  -Location $___location -Tier Basic `
   -NumberofWorkers 2 -WorkerSize Small
New-AzWebApp -ResourceGroupName $rg -Name <site1-name> -Location $___location -AppServicePlan ASP-01
New-AzWebApp -ResourceGroupName $rg -Name <site2-name> -Location $___location -AppServicePlan ASP-01

インフラストラクチャを構成する

既存の Standard アプリケーション ゲートウェイと同じ形式で、IP 構成、フロントエンド IP 構成、バックエンド プール、HTTP 設定、証明書、ポート、リスナー、および規則を構成します。 新しい SKU は、Standard SKU と同じオブジェクト モデルに従います。

$pool変数の定義において、2 つの Web アプリ FQDN (例: mywebapp.azurewebsites.net) を置き換えてください。

$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPConfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
       -BackendIPAddresses <your first web app FQDN>, <your second web app FQDN>
$fp01 = New-AzApplicationGatewayFrontendPort -Name "SSLPort" -Port 443
$fp02 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80

$securepfxpwd = ConvertTo-SecureString -String "Azure123456!" -AsPlainText -Force
$sslCert01 = New-AzApplicationGatewaySslCertificate -Name "SSLCert" -Password $securepfxpwd `
            -CertificateFile "c:\appgwcert.pfx"
$listener01 = New-AzApplicationGatewayHttpListener -Name "SSLListener" `
             -Protocol Https -FrontendIPConfiguration $fip -FrontendPort $fp01 -SslCertificate $sslCert01
$listener02 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
             -Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp02

$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
          -Port 80 -Protocol Http -CookieBasedAffinity Disabled -PickHostNameFromBackendAddress
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -Priority 1
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool -Priority 2

オートスケールの設定

これで、アプリケーション ゲートウェイの自動スケール構成を指定できます。

$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2

このモードでは、アプリケーション ゲートウェイはアプリケーション トラフィック パターンに基づいて自動スケーリングします。

アプリケーション ゲートウェイの作成

アプリケーション ゲートウェイを作成し、冗長性ゾーンと自動スケール構成を含めます。

$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 `
  -ResourceGroupName $rg -Location $___location -BackendAddressPools $pool `
  -BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig `
  -FrontendIpConfigurations $fip -FrontendPorts $fp01, $fp02 `
  -HttpListeners $listener01, $listener02 -RequestRoutingRules $rule01, $rule02 `
  -Sku $sku -sslCertificates $sslCert01 -AutoscaleConfiguration $autoscaleConfig

アプリケーション ゲートウェイをテストする

Get-AzPublicIPAddress を使用して、アプリケーション ゲートウェイのパブリック IP アドレスを取得します。 パブリック IP アドレスまたは DNS 名をコピーし、ブラウザーのアドレス バーに貼り付けます。

$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress

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

まず、アプリケーション ゲートウェイで作成されたリソースを調べる。 その後、不要になったら、 Remove-AzResourceGroup コマンドを使用して、リソース グループ、アプリケーション ゲートウェイ、およびすべての関連リソースを削除できます。

Remove-AzResourceGroup -Name $rg

次のステップ