クイック スタート:Azure PowerShell を使用した Azure Application Gateway による Web トラフィックの転送Quickstart: Direct web traffic with Azure Application Gateway using Azure PowerShell

このクイックスタートでは、Azure PowerShell を使用してアプリケーション ゲートウェイを作成します。In this quickstart, you use Azure PowerShell to create an application gateway. さらに、それをテストし、正しく動作することを確認します。Then you test it to make sure it works correctly.

アプリケーション ゲートウェイは、アプリケーション Web トラフィックをバックエンド プール内の特定のリソースに転送します。The application gateway directs application web traffic to specific resources in a backend pool. リスナーをポートに割り当て、ルールを作成し、リソースをバックエンド プールに追加します。You assign listeners to ports, create rules, and add resources to a backend pool. わかりやすくするために、この記事では、パブリック フロントエンド IP、アプリケーション ゲートウェイで単一サイトをホストするための基本リスナー、基本要求ルーティング規則、およびバックエンド プール内の 2 つの仮想マシンを使用する簡単な設定を使用します。For the sake of simplicity, this article uses a simple setup with a public front-end IP, a basic listener to host a single site on the application gateway, a basic request routing rule, and two virtual machines in the backend pool.

また、Azure CLI または Azure portal を使用してこのクイックスタートを完了することもできます。You can also complete this quickstart using Azure CLI or the Azure portal.

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。You can use either Bash or PowerShell with Cloud Shell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を開始するには:To start Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を開始します。Start Cloud Shell.

  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Enter キーを選択して、コードを実行します。Select Enter to run the code.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

前提条件Prerequisites

Azure に接続するConnect to Azure

Azure に接続するには、Connect-AzAccount を実行します。To connect with Azure, run Connect-AzAccount.

リソース グループを作成するCreate a resource group

Azure で、関連するリソースをリソース グループに割り当てます。In Azure, you allocate related resources to a resource group. 既存のリソース グループを使用することも、新しいリソース グループを作成することもできます。You can either use an existing resource group or create a new one.

新しいリソース グループを作成するには、New-AzResourceGroup コマンドレットを使用します。To create a new resource group, use the New-AzResourceGroup cmdlet:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

ネットワーク リソースを作成するCreate network resources

お客様が作成するリソースの間で Azure による通信が行われるには、仮想ネットワークが必要です。For Azure to communicate between the resources that you create, it needs a virtual network. アプリケーション ゲートウェイ サブネットには、アプリケーション ゲートウェイのみを含めることができます。The application gateway subnet can contain only application gateways. その他のリソースは許可されません。No other resources are allowed. Application Gateway 用に新しいサブネットを作成するか、既存のサブネットを使用することができます。You can either create a new subnet for Application Gateway or use an existing one. 2 つのサブネットを作成します。1 つはアプリケーション ゲートウェイ用で、もう 1 つはバックエンド サーバー用です。In this example, you create two subnets in this example: one for the application gateway, and another for the backend servers. ユース ケースに従って、Application Gateway のフロントエンド IP を [パブリック] または [プライベート] に設定できます。You can configure the Frontend IP of the Application Gateway to be Public or Private as per your use case. この例では、パブリック フロントエンド IP を選択します。In this example, you'll choose a Public Frontend IP.

  1. New-AzVirtualNetworkSubnetConfig を使用して、サブネット構成を作成します。Create the subnet configurations using New-AzVirtualNetworkSubnetConfig.
  2. New-AzVirtualNetwork を使用して、サブネット構成を使用して仮想ネットワークを作成します。Create the virtual network with the subnet configurations using New-AzVirtualNetwork.
  3. New-AzPublicIpAddress を使用して、パブリック IP アドレスを作成します。Create the public IP address using New-AzPublicIpAddress.
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.0.1.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.2.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

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

IP 構成とフロントエンド ポートの作成Create the IP configurations and frontend port

  1. New-AzApplicationGatewayIPConfiguration を使用して、お客様が作成したサブネットをアプリケーション ゲートウェイに関連付けるための構成を作成します。Use New-AzApplicationGatewayIPConfiguration to create the configuration that associates the subnet you created with the application gateway.
  2. New-AzApplicationGatewayFrontendIPConfig を使用して、お客様が先ほど作成したパブリック IP アドレスをアプリケーション ゲートウェイに割り当てるための構成を作成します。Use New-AzApplicationGatewayFrontendIPConfig to create the configuration that assigns the public IP address that you previously created to the application gateway.
  3. New-AzApplicationGatewayFrontendPort を使用して、アプリケーション ゲートウェイにアクセスするためのポート 80 を割り当てます。Use New-AzApplicationGatewayFrontendPort to assign port 80 to access the application gateway.
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip    = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress 
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

バックエンド プールの作成Create the backend pool

  1. New-AzApplicationGatewayBackendAddressPool を使用して、アプリケーション ゲートウェイのバックエンド プールを作成します。Use New-AzApplicationGatewayBackendAddressPool to create the backend pool for the application gateway. 現時点では、バックエンド プールは空になります。The backend pool will be empty for now. 次のセクションでバックエンド サーバーの NIC を作成するときに、それらをバックエンド プールに追加することになります。When you create the backend server NICs in the next section, you will add them to the backend pool.
  2. New-AzApplicationGatewayBackendHttpSetting を使用して、バックエンド プールの設定を構成します。Configure the settings for the backend pool with New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

リスナーの作成とルールの追加Create the listener and add a rule

Azure では、アプリケーション ゲートウェイを有効にしてトラフィックをバックエンド プールに適切にルーティングするためにリスナーが必要です。Azure requires a listener to enable the application gateway for routing traffic appropriately to the backend pool. また、受信トラフィックに使用するバックエンド プールをリスナーが判断するには、ルールが必要です。Azure also requires a rule for the listener to know which backend pool to use for incoming traffic.

  1. 先ほど作成したフロントエンド構成とフロントエンド ポートを指定して、New-AzApplicationGatewayHttpListener を使用して、リスナーを作成します。Create a listener using New-AzApplicationGatewayHttpListener with the frontend configuration and frontend port that you previously created.
  2. New-AzApplicationGatewayRequestRoutingRule を使用して、rule1 という名前のルールを作成します。Use New-AzApplicationGatewayRequestRoutingRule to create a rule named rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

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

必要な関連リソースを作成したところで、アプリケーション ゲートウェイを作成します。Now that you've created the necessary supporting resources, create the application gateway:

  1. New-AzApplicationGatewaySku を使用して、アプリケーション ゲートウェイのパラメーターを指定します。Use New-AzApplicationGatewaySku to specify parameters for the application gateway.
  2. New-AzApplicationGateway を使用して、アプリケーション ゲートウェイを作成します。Use New-AzApplicationGateway to create the application gateway.
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

バックエンド サーバーBackend servers

Application Gateway を作成したら、Web サイトのホストとなるバックエンド仮想マシンを作成します。Now that you have created the Application Gateway, create the backend virtual machines which will host the websites. バックエンドは、NIC、Virtual Machine Scale Sets、パブリック IP、内部 IP、完全修飾ドメイン名 (FQDN)、および Azure App Service などのマルチテナント バックエンドで構成できます。Backend can be composed of NICs, virtual machine scale sets, public IPs, internal IPs, fully qualified domain names (FQDN), and multi-tenant back-ends like Azure App Service. この例では、Azure によってアプリケーション ゲートウェイのバックエンド サーバーとして使用される 2 つの仮想マシンを作成します。In this example, you create two virtual machines for Azure to use as backend servers for the application gateway. また、仮想マシンに IIS をインストールして、Azure によってアプリケーション ゲートウェイが正常に作成されたことを確認します。You also install IIS on the virtual machines to verify that Azure successfully created the application gateway.

2 つの仮想マシンの作成Create two virtual machines

  1. 先ほど作成した Application Gateway バックエンド プールの構成を Get-AzApplicationGatewayBackendAddressPool を使用して取得します。Get the recently created Application Gateway backend pool configuration with Get-AzApplicationGatewayBackendAddressPool.
  2. New-AzNetworkInterface を使用して、ネットワーク インターフェイスを作成します。Create a network interface with New-AzNetworkInterface.
  3. New-AzVMConfig を使用して、仮想マシンの構成を作成します。Create a virtual machine configuration with New-AzVMConfig.
  4. New-AzVM を使用して、仮想マシンを作成します。Create the virtual machine with New-AzVM.

次のコード サンプルを実行して仮想マシンを作成するときに、Azure から資格情報の入力を求められます。When you run the following code sample to create the virtual machines, Azure prompts you for credentials. ユーザー名として「azureuser」を入力し、パスワードを入力します。Enter azureuser for the user name and a password:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

アプリケーション ゲートウェイのテストTest the application gateway

IIS はアプリケーション ゲートウェイを作成するのに必要ではありませんが、このクイック スタートでは、Azure によってアプリケーション ゲートウェイが正常に作成されたかどうかを確認するためにインストールしました。Although IIS isn't required to create the application gateway, you installed it in this quickstart to verify whether Azure successfully created the application gateway. IIS を使用してアプリケーション ゲートウェイをテストします。Use IIS to test the application gateway:

  1. Get-AzPublicIPAddress を実行して、アプリケーション ゲートウェイのパブリック IP アドレスを取得します。Run Get-AzPublicIPAddress to get the public IP address of the application gateway.
  2. そのパブリック IP アドレスをコピーし、ブラウザーのアドレス バーに貼り付けます。Copy and paste the public IP address into the address bar of your browser. ブラウザーを更新したら、仮想マシンの名前が表示されるはずです。When you refresh the browser, you should see the name of the virtual machine. 応答が有効であれば、アプリケーション ゲートウェイが正常に作成され、バックエンドと正常に接続できることが保証されます。A valid response verifies that the application gateway was successfully created and it can successfully connect with the backend.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

アプリケーション ゲートウェイのテスト

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

アプリケーション ゲートウェイと共に作成したリソースが不要になったら、リソース グループを削除します。When you no longer need the resources that you created with the application gateway, delete the resource group. リソース グループを削除すると、アプリケーション ゲートウェイとそのすべての関連リソースも削除されます。When you delete the resource group, you also delete the application gateway and all its related resources.

リソース グループを削除するには、Remove-AzResourceGroup コマンドレットを呼び出します。To delete the resource group, call the Remove-AzResourceGroup cmdlet:

Remove-AzResourceGroup -Name myResourceGroupAG

次のステップNext steps