Azure リソース マネージャーを使用した、Application Gateway の作成、起動、または削除

Azure Application Gateway はレイヤー&7; のロード バランサーです。 クラウドでもオンプレミスでも、異なるサーバー間のフェールオーバーと HTTP 要求のパフォーマンス ルーティングを提供します。 Application Gateway は、HTTP 負荷分散、Cookie ベースのセッション アフィニティ、Secure Sockets Layer (SSL) オフロード、カスタムの正常性プローブ、マルチサイトのサポートなどの多くのアプリケーション配信コントローラー (ADC) 機能を備えています。 サポートされている機能の完全な一覧については、「 Application Gateway の概要

この記事では、Application Gateway を作成、構成、起動、および削除する手順について説明します。

重要

Azure リソースを使用する前に、Azure は現在、リソース マネージャーのデプロイメント モデルと従来のデプロイメント モデルの&2; 種類を備えていることを理解しておくことが重要です。 Azure リソースを使用する前に、必ず デプロイメント モデルとツール について理解しておいてください。 この記事の上部にあるタブをクリックすると、さまざまなツールについてのドキュメントを参照できます。 このドキュメントでは、Azure Resource Manager を使用したアプリケーション ゲートウェイの作成について説明します。 クラシック バージョンを使用する場合は、 PowerShell を使用したアプリケーション ゲートウェイ クラシック デプロイメントの作成に関するページを参照してください。

開始する前に

  1. Web Platform Installer を使用して、Azure PowerShell コマンドレットの最新バージョンをインストールします。 ダウンロード ページWindows PowerShellセクションから最新バージョンをダウンロードしてインストールできます。
  2. 既存の仮想ネットワークがある場合は、既存の空のサブネットを選択するか、既存の仮想ネットワークにアプリケーション ゲートウェイ専用のサブネットを作成します。 アプリケーション ゲートウェイの背後にデプロイするリソースとは異なる仮想ネットワークにアプリケーション ゲートウェイをデプロイすることはできません。
  3. アプリケーション ゲートウェイを使用するように構成するサーバーが存在している必要があります。つまり、仮想ネットワーク内にエンドポイントが作成されているか、割り当てられたパブリック IP/VIP を使用してエンドポイントが作成されている必要があります。

Application Gateway の作成に必要な構成

  • バックエンド サーバー プール: バックエンド サーバーの IP アドレスの一覧。 一覧の IP アドレスは、仮想ネットワークのサブネットに属しているか、パブリック IP/VIP である必要があります。
  • バックエンド サーバー プールの設定: すべてのプールには、ポート、プロトコル、Cookie ベースのアフィニティなどの設定があります。 これらの設定はプールに関連付けられ、プール内のすべてのサーバーに適用されます。
  • フロントエンド ポート: このポートは、Application Gateway で開かれたパブリック ポートです。 このポートにトラフィックがヒットすると、バックエンド サーバーのいずれかにリダイレクトされます。
  • リスナー: リスナーには、フロントエンド ポート、プロトコル (Http または Https で、値には大文字小文字の区別あり)、SSL 証明書名 (オフロードの SSL を構成する場合) があります。
  • ルール: ルールはリスナーとバックエンド サーバー プールを結び付け、トラフィックが特定のリスナーにヒットした際に送られるバックエンド サーバー プールを定義します。

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

Azure クラシックと Azure Resource Manager の使用方法の違いは、設定が必要なアプリケーション ゲートウェイと項目を作成する順番にあります。

Resource Manager を使用すると、アプリケーション ゲートウェイを作成するすべての項目は個別に構成され、その後結合されてアプリケーション ゲートウェイのリソースが作成されます。

アプリケーション ゲートウェイを作成するために必要な手順を次に示します。

リソース マネージャーのリソース グループの作成

Azure PowerShell の最新バージョンを使用していることを確認します。 詳細については、 Resource Manager での Windows PowerShell の使用に関するページを参照してください。

手順 1

Azure へのログイン

Login-AzureRmAccount

資格情報を使用して認証を行うように求めるメッセージが表示されます。

手順 2.

アカウントのサブスクリプションを確認します。

Get-AzureRmSubscription

手順 3.

使用する Azure サブスクリプションを選択します。

Select-AzureRmSubscription -Subscriptionid "GUID of subscription"

手順 4.

リソース グループを作成します (既存のリソース グループを使用する場合は、この手順をスキップしてください)。

New-AzureRmResourceGroup -Name appgw-rg -Location "West US"

Azure リソース マネージャーでは、すべてのリソース グループの場所を指定する必要があります。 この場所は、そのリソース グループ内のリソースの既定の保存先として使用されます。 アプリケーション ゲートウェイを作成するためのすべてのコマンドで、同じリソース グループが使用されていることを確認します。

上記の例では、appgw-RG という名前のリソース グループと West US という名前の場所を作成しました。

メモ

アプリケーション ゲートウェイのカスタム プローブを構成する必要がある場合は、 PowerShell を使用したカスタム プローブとアプリケーション ゲートウェイの作成に関するページを参照してください。 詳細については、 カスタム プローブと正常性監視 に関するページを参照してください。

アプリケーション ゲートウェイの仮想ネットワークとサブネットを作成します。

次の例では、リソース マネージャーを使用して仮想ネットワークを作成する方法を示します。

手順 1

アドレス範囲 10.0.0.0/24 を仮想ネットワークの作成に使用するサブネットの変数に割り当てます。

$subnet = New-AzureRmVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

手順 2.

サブネット 10.0.0.0/24 とプレフィックス 10.0.0.0/16 を使用して、米国西部リージョンのリソース グループ appgw-rg に、appgwvnet という名前の仮想ネットワークを作成します。

$vnet = New-AzureRmVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet

手順 3.

Application Gateway を作成する次の手順のために、サブネット変数を割り当てます。

$subnet=$vnet.Subnets[0]

フロントエンド構成のパブリック IP アドレスの作成

米国西部リージョンのリソース グループ appgw-rg に、パブリック IP リソース publicIP01 を作成します。

$publicip = New-AzureRmPublicIpAddress -ResourceGroupName appgw-rg -name publicIP01 -location "West US" -AllocationMethod Dynamic

アプリケーション ゲートウェイの構成オブジェクトの作成

アプリケーション ゲートウェイを作成する前に、すべての構成項目を設定する必要があります。 次の手順では、Application Gateway のリソースに必要な構成項目を作成します。

手順 1

gatewayIP01 という名前のアプリケーション ゲートウェイの IP 構成を作成します。 Application Gateway が起動すると、構成されているサブネットから IP アドレスが取得されて、ネットワーク トラフィックがバックエンド IP プール内の IP アドレスにルーティングされます。 各インスタンスが IP アドレスを&1; つ取得することに注意してください。

$gipconfig = New-AzureRmApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

手順 2.

IP アドレス 134.170.185.46134.170.188.221134.170.185.50 を使用して、pool01 という名前のバックエンド IP アドレス プールを構成します。 これらの IP アドレスは、フロントエンド IP エンドポイントから送信されるネットワーク トラフィックを受信する IP アドレスです。 独自のアプリケーションの IP アドレス エンドポイントを追加するには、上記の IP アドレスを置き換えます。

$pool = New-AzureRmApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221,134.170.185.50

手順 3.

バックエンド プール内の負荷を分散したネットワーク トラフィックに対して、アプリケーション ゲートウェイの設定 poolsetting01 を構成します。

$poolSetting = New-AzureRmApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled

手順 4.

パブリック IP エンドポイントに対して、frontendport01 という名前のフロントエンド IP ポートを構成します。

$fp = New-AzureRmApplicationGatewayFrontendPort -Name frontendport01  -Port 80

手順 5.

fipconfig01 という名前のフロントエンド IP 構成を作成し、このフロントエンド IP 構成にパブリック IP アドレスを関連付けます。

$fipconfig = New-AzureRmApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip

手順 6.

listener01 という名前のリスナーを作成し、フロントエンド IP 構成にフロントエンド ポートを関連付けます。

$listener = New-AzureRmApplicationGatewayHttpListener -Name listener01  -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

手順 7.

ロード バランサーの動作を構成する、rule01 という名前のロード バランサーのルーティング規則を作成します。

$rule = New-AzureRmApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

手順 8.

Application Gateway のインスタンスのサイズを構成します。

$sku = New-AzureRmApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2
メモ

InstanceCount の既定値は 2、最大値は 10 です。 GatewaySize の既定値は Medium です。 Standard_SmallStandard_MediumStandard_Large のいずれかを選択できます。

New-AzureRmApplicationGateway を使用した Application Gateway の作成

前の手順の構成項目をすべて使用して、アプリケーション ゲートウェイを作成します。 この例では、アプリケーション ゲートウェイは appgwtest という名前です。

$appgw = New-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

アプリケーション ゲートウェイに接続されているパブリック IP リソースから、アプリケーション ゲートウェイの DNS と VIP の詳細を取得します。

Get-AzureRmPublicIpAddress -Name publicIP01 -ResourceGroupName appgw-rg  

Application Gateway の削除

Application Gateway を削除するには、次の手順を実行します。

手順 1

アプリケーション ゲートウェイ オブジェクトを取得し、変数 $getgw に関連付けます。

$getgw = Get-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

手順 2.

Stop-AzureRmApplicationGateway を使用してアプリケーション ゲートウェイを停止します。

Stop-AzureRmApplicationGateway -ApplicationGateway $getgw  

アプリケーション ゲートウェイが停止状態になったら、Remove-AzureRmApplicationGateway コマンドレットを使用してサービスを削除します。

Remove-AzureRmApplicationGateway -Name $appgwtest -ResourceGroupName appgw-rg -Force
メモ

-force スイッチを使用すると、削除の確認メッセージを表示しないように設定できます。

サービスが削除されていることを確認するには、Get-AzureRmApplicationGateway コマンドレットを使用します。 この手順は必須ではありません。

Get-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

アプリケーション ゲートウェイの DNS 名の取得

ゲートウェイを作成したら、次は通信用にフロントエンドを構成します。 パブリック IP を使用する場合、アプリケーション ゲートウェイには、動的に割り当てられたフレンドリではない DNS 名が必要です。 エンド ユーザーがアプリケーション ゲートウェイを確実に見つけられるように、CNAME レコードを使用して、アプリケーション ゲートウェイのパブリック エンドポイントを参照できます。 次に、Azure でのカスタム ドメイン名を構成します。 それには、アプリケーション ゲートウェイに接続されている PublicIPAddress 要素を使用して、アプリケーション ゲートウェイの詳細とそれに関連付けられている IP/DNS 名を取得します。 アプリケーション ゲートウェイの DNS 名を使用して、2 つの Web アプリケーションがこの DNS 名を指すように CNAME レコードを作成する必要があります。 アプリケーション ゲートウェイの再起動時に VIP が変更される可能性があるため、A レコードの使用はお勧めしません。

Get-AzureRmPublicIpAddress -ResourceGroupName appgw-RG -Name publicIP01
Name                     : publicIP01
ResourceGroupName        : appgw-RG
Location                 : westus
Id                       : /subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag                     : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid             : 00000000-0000-0000-0000-000000000000
ProvisioningState        : Succeeded
Tags                     : 
PublicIpAllocationMethod : Dynamic
IpAddress                : xx.xx.xxx.xx
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : {
                                "Id": "/subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/applicationGateways/appgwtest/frontendIP
                            Configurations/frontend1"
                            }
DnsSettings              : {
                                "Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
                            }

次のステップ

SSL オフロードを構成する場合は、 SSL オフロード用のアプリケーション ゲートウェイの構成に関するページを参照してください。

内部ロード バランサーと共に使用するようにアプリケーション ゲートウェイを構成する場合は、「 内部ロード バランサー (ILB) を使用したアプリケーション ゲートウェイの作成」を参照してください。

負荷分散のオプション全般の詳細については、次を参照してください。