内部ロード バランサー (ILB) を使用した Application Gateway の作成
Azure Application Gateway Standard v1 は、インターネットに接続する VIP のほか、内部ロード バランサー (ILB) エンドポイントとも呼ばれるインターネットに接続されていない内部エンドポイントを使用して構成できます。 ILB を使用したゲートウェイの構成は、インターネットに接続されていない社内用ビジネス アプリケーションで便利です。 また、セキュリティの境界でインターネットに接続されていない多階層アプリケーション内のサービスや階層でも便利ですが、ラウンド ロビンの負荷分散、セッションの持続性、または トランスポート層セキュリティ (TLS) (旧称 Secure Sockets Layer (SSL)) 終端が必要です。
この記事では、ILB を使用して Standard v1 Application Gateway を構成する手順について説明します。
開始する前に
注意
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、「Azure PowerShell のインストール」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
- インストール手順に従って、Azure PowerShell モジュールの最新バージョンをインストールします。
- Application Gateway の仮想ネットワークとサブネットを作成します。 仮想マシンまたはクラウドのデプロイメントでサブネットを使用していないことを確認します。 Application Gateway そのものが、仮想ネットワーク サブネットに含まれている必要があります。
- アプリケーション ゲートウェイを使用するように構成するサーバーが存在している必要があります。つまり、仮想ネットワーク内にエンドポイントが作成されているか、割り当てられたパブリック IP/VIP を使用してエンドポイントが作成されている必要があります。
Application Gateway の作成に必要な構成
- バックエンド サーバー プール: バックエンド サーバーの IP アドレスの一覧です。 一覧の IP アドレスは、仮想ネットワークのアプリケーション ゲートウェイ用の別のサブネットに属しているか、パブリック IP/VIP である必要があります。
- バックエンド サーバー プールの設定: すべてのプールには、ポート、プロトコル、cookie ベースのアフィニティなどの設定があります。 これらの設定はプールに関連付けられ、プール内のすべてのサーバーに適用されます。
- フロントエンド ポート: このポートは、アプリケーション ゲートウェイで開かれたパブリック ポートです。 このポートにトラフィックがヒットすると、バックエンド サーバーのいずれかにリダイレクトされます。
- リスナー: リスナーには、フロントエンド ポート、プロトコル (Http または Https、大文字小文字の区別あり)、および SSL 証明書名 (オフロードの SSL を構成する場合) があります。
- ルール: ルールはリスナーとバックエンド サーバー プールを結び付け、トラフィックが特定のリスナーにヒットした際に送られるバックエンド サーバー プールを定義します。 現在、 basic ルールのみサポートされます。 basic ルールは、ラウンド ロビンの負荷分散です。
アプリケーション ゲートウェイの作成
Azure クラシックと Azure Resource Manager の使用方法の違いは、設定が必要なアプリケーション ゲートウェイと項目を作成する順番にあります。 Resource Manager を使用すると、アプリケーション ゲートウェイを作成するすべての項目は個別に構成され、その後結合されてアプリケーション ゲートウェイのリソースが作成されます。
Application Gateway を作成するために必要な手順を次に示します。
- リソース マネージャーのリソース グループの作成
- アプリケーション ゲートウェイの仮想ネットワークとサブネットを作成します。
- アプリケーション ゲートウェイの構成オブジェクトの作成
- アプリケーション ゲートウェイのリソースの作成
リソース マネージャーのリソース グループの作成
Azure リソース マネージャー コマンドレットを使用するように PowerShell モードを切り替えてください。 詳細については、「 Resource Manager での Windows PowerShell の使用」をご覧ください。
ステップ 1
Connect-AzAccount
ステップ 2
アカウントのサブスクリプションを確認します。
Get-AzSubscription
資格情報を使用して認証を行うように求めるメッセージが表示されます。
手順 3.
使用する Azure サブスクリプションを選択します。
Select-AzSubscription -Subscriptionid "GUID of subscription"
手順 4
新しいリソース グループを作成します (既存のリソース グループを使用する場合は、この手順をスキップしてください)。
New-AzResourceGroup -Name appgw-rg -location "West US"
Azure リソース マネージャーでは、すべてのリソース グループの場所を指定する必要があります。 指定した場所は、そのリソース グループ内のリソースの既定の場所として使用されます。 アプリケーション ゲートウェイを作成するためのすべてのコマンドで、同じリソース グループが使用されていることを確認します。
前の例では、"appgw-rg" という名前のリソース グループと "West US" という名前の場所を作成しました。
アプリケーション ゲートウェイの仮想ネットワークとサブネットを作成します。
次の例では、リソース マネージャーを使用して仮想ネットワークを作成する方法を示します。
ステップ 1
$subnetconfig = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24
この手順では、アドレス範囲 10.0.0.0/24 を仮想ネットワークの作成に使用するサブネットの変数に割り当てます。
手順 2.
$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnetconfig
この手順では、サブネット 10.0.0.0/24 とプレフィックス 10.0.0.0/16 を使用して、米国西部リージョンのリソース グループ "appgw-rg" に、"appgwvnet" という名前の仮想ネットワークを作成します。
手順 3.
$subnet = $vnet.subnets[0]
この手順では、変数 $subnet にサブネット オブジェクトを割り当てます。
アプリケーション ゲートウェイの構成オブジェクトの作成
ステップ 1
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet
この手順では、"gatewayIP01" という名前の Application Gateway の IP 構成を作成します。 Application Gateway が起動すると、IP アドレスが構成済みのサブネットから取得され、ネットワーク トラフィックがバックエンド IP プール内の IP アドレスにルーティングされます。 各インスタンスが IP アドレスを 1 つ取得することに注意してください。
手順 2.
$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 10.1.1.8,10.1.1.9,10.1.1.10
この手順では、IP アドレス "10.1.1.8, 10.1.1.9, 10.1.1.10" を使って、"pool01" という名前のバックエンド IP アドレス プールを構成します。 これらは、フロントエンド IP エンドポイントから送信されるネットワーク トラフィックを受信する IP アドレスです。 独自のアプリケーションの IP アドレス エンドポイントを追加するには、上記の IP アドレスを置き換えます。
手順 3.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled
この手順では、バックエンド プール内の負荷を分散したネットワーク トラフィックに対して、Application Gateway の設定 "poolsetting01" を構成します。
手順 4
$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01 -Port 80
この手順では、ILB に対して、"frontendport01" という名前のフロントエンド IP ポートを構成します。
手順 5.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -Subnet $subnet
この手順では、"fipconfig01" というフロントエンド IP 構成を作成し、現在の仮想ネットワーク サブネットからプライベート IP を関連付けます。
手順 6.
$listener = New-AzApplicationGatewayHttpListener -Name listener01 -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp
この手順では、"listener01" というリスナーを作成し、フロントエンド IP 構成にフロントエンド ポートを関連付けます。
ステップ 7
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
この手順では、"rule01" というロード バランサーのルーティング規則を作成し、ロード バランサーの動作を構成します。
手順 8.
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2
この手順では、Application Gateway のインスタンスのサイズを構成します。
Note
Capacity の既定値は 2 です。 SKU 名の場合は、Standard_Small、Standard_Medium、Standard_Large のいずれかを選択できます。
New-AzureApplicationGateway を使用した Application Gateway の作成
前の手順の構成項目をすべて使用して、アプリケーション ゲートウェイを作成します。 この例では、アプリケーション ゲートウェイは "appgwtest" という名前です。
$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku
この手順では、前の手順の構成項目をすべて使用して、アプリケーション ゲートウェイを作成します。 この例では、Application Gateway は "appgwtest" という名前です。
Application Gateway の削除
アプリケーション ゲートウェイを削除するには、次の手順を順番に実行する必要があります。
Stop-AzApplicationGateway
コマンドレットを使用してゲートウェイを停止します。Remove-AzApplicationGateway
コマンドレットを使用してゲートウェイを削除します。Get-AzureApplicationGateway
コマンドレットを使用して、ゲートウェイが削除されたことを確認します。
ステップ 1
Application Gateway オブジェクトを取得し、変数 "$getgw" に関連付けます。
$getgw = Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg
手順 2.
Stop-AzApplicationGateway
を使用してアプリケーション ゲートウェイを停止します。 このサンプルの最初の行は Stop-AzApplicationGateway
コマンドレットを示し、その後に出力が続きます。
Stop-AzApplicationGateway -ApplicationGateway $getgw
VERBOSE: 9:49:34 PM - Begin Operation: Stop-AzureApplicationGateway
VERBOSE: 10:10:06 PM - Completed Operation: Stop-AzureApplicationGateway
Name HTTP Status Code Operation ID Error
---- ---------------- ------------ ----
Successful OK ce6c6c95-77b4-2118-9d65-e29defadffb8
アプリケーション ゲートウェイが停止状態になったら、Remove-AzApplicationGateway
コマンドレットを使用してサービスを削除します。
Remove-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Force
VERBOSE: 10:49:34 PM - Begin Operation: Remove-AzureApplicationGateway
VERBOSE: 10:50:36 PM - Completed Operation: Remove-AzureApplicationGateway
Name HTTP Status Code Operation ID Error
---- ---------------- ------------ ----
Successful OK 055f3a96-8681-2094-a304-8d9a11ad8301
Note
-force スイッチを使用すると、削除の確認メッセージを表示しないように設定できます。
サービスが削除されていることを確認するには、Get-AzApplicationGateway
コマンドレットを使用します。 この手順は必須ではありません。
Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg
VERBOSE: 10:52:46 PM - Begin Operation: Get-AzureApplicationGateway
Get-AzureApplicationGateway : ResourceNotFound: The gateway doesn't exist.
次のステップ
SSL オフロードを構成する場合は、「 クラシック デプロイ モデルを使用して SSL オフロード用にアプリケーション ゲートウェイを構成する」を参照してください。
負荷分散のオプション全般の詳細については、次を参照してください。