Inicio rápido: Tráfico web directo con Azure Application Gateway mediante Azure PowerShell

En este inicio rápido, usará Azure PowerShell para crear una puerta de enlace de aplicaciones. Luego, lo probará para asegurarse de que funciona correctamente.

La puerta de enlace de aplicaciones dirige el tráfico web de la aplicación a recursos específicos de un grupo de back-end. Se asignan escuchas a los puertos, se crean reglas y se agregan recursos a un grupo de back-end. Para simplificar, en este artículo se usa una configuración sencilla con una dirección IP de frontend pública, un cliente de escucha básico para hospedar un único sitio en la puerta de enlace de aplicación, una regla de enrutamiento de solicitudes básica y dos máquinas virtuales del grupo de backend.

application gateway resources

También puede completar este inicio rápido con la CLI de Azure o con Azure Portal.

Prerrequisitos

Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Button to launch Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Enter para ejecutar el código o comando.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Conexión con Azure

Para conectarse con Azure, ejecute Connect-AzAccount.

Crear un grupo de recursos

En Azure, puede asignar recursos relacionados a un grupo de recursos. Puede usar un grupo de recursos existente o crear uno nuevo.

Para crear un nuevo grupo de recursos, use el cmdlet New-AzResourceGroup:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Crear recursos de red

Para que Azure se comunique entre los recursos que se crean, se necesita una red virtual. La subred de la puerta de enlace de aplicaciones solo puede contener puertas de enlace de aplicaciones. No se permite ningún otro recurso. Puede crear una subred para Application Gateway o usar una existente. En este ejemplo se crean dos subredes: una para la puerta de enlace de aplicaciones y la otra para los servidores back-end. Puede configurar la dirección IP de front-end de Application Gateway para que sea pública o privada, según el caso de uso. En este ejemplo, elegirá una dirección IP de front-end pública.

  1. Cree las configuraciones de la subred mediante New-AzVirtualNetworkSubnetConfig.
  2. Cree la red virtual con las configuraciones de la subred mediante New-AzVirtualNetwork.
  3. Cree la dirección IP pública mediante New-AzPublicIpAddress.

Nota

Actualmente, no se admiten directivas de punto de conexión de servicio de red virtual en una subred de Application Gateway.

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

Creación de una puerta de enlace de aplicaciones

Creación de las configuraciones IP y el puerto de front-end

  1. Use New-AzApplicationGatewayIPConfiguration para crear la configuración que asocia la subred que creó con la instancia la puerta de enlace de aplicaciones.
  2. Use New-AzApplicationGatewayFrontendIPConfig para crear la configuración que asigna la dirección IP pública que ha creado previamente a la puerta de enlace de aplicaciones.
  3. Use New-AzApplicationGatewayFrontendPort para asignar el puerto 80 para acceder a la puerta de enlace de aplicaciones.
$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

Nota:

El front-end de Application Gateway ahora admite direcciones IP de doble pila (versión preliminar pública). Ahora, puede crear hasta cuatro direcciones IP de front-end: dos direcciones IPv4 (pública y privada) y dos direcciones IPv6 (pública y privada).

Creación del grupo de servidores back-end

  1. Use New-AzApplicationGatewayBackendAddressPool para crear el grupo de back-end para la puerta de enlace de aplicaciones. El grupo de back-end está vacío por ahora. Cuando cree las NIC del servidor back-end en la sección siguiente, las agregará al grupo de back-end.
  2. Configure los valores para el grupo de back-end con New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Creación del agente de escucha e incorporación de una regla

Azure necesita un agente de escucha para que la puerta de enlace de aplicaciones enrute el tráfico de forma adecuada al grupo de servidores back-end. También necesita una regla para que el agente de escucha sepa qué grupo de servidores back-end se usa para el tráfico entrante.

  1. Cree una escucha mediante New-AzApplicationGatewayHttpListener con la configuración de front-end y el puerto de front-end que creó anteriormente.
  2. Use New-AzApplicationGatewayRequestRoutingRule para crear una regla denominada rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

Creación de la puerta de enlace de aplicaciones

Ahora que ha creado los recursos auxiliares necesarios, cree la puerta de enlace de aplicaciones:

  1. Use New-AzApplicationGatewaySku para especificar parámetros para la puerta de enlace de aplicaciones.
  2. Use New-AzApplicationGateway para crear la puerta de enlace de aplicaciones.
$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

Servidores back-end

Ahora que ha creado la instancia de Application Gateway, cree las máquinas virtuales de back-end que hospedarán los sitios web. Un backend puede estar compuesto por NIC, conjuntos de escalado de máquinas virtuales, direcciones IP públicas e internas, nombres de dominio completos (FQDN) y backends multiinquilino como Azure App Service.

En este ejemplo, se crearán dos máquinas virtuales que se usarán como servidores back-end para la puerta de enlace de aplicaciones. También se instala IIS en las máquinas virtuales para comprobar que Azure ha instalado correctamente la puerta de enlace de aplicaciones.

Creación de dos máquinas virtuales

  1. Obtenga la configuración del grupo de back-end de Application Gateway recién creada con Get-AzApplicationGatewayBackendAddressPool.
  2. Cree una interfaz de red con New-AzNetworkInterface.
  3. Cree una configuración de máquina virtual con New-AzVMConfig.
  4. Cree la máquina virtual con New-AzVM.

Al ejecutar el ejemplo de código siguiente para crear las máquinas virtuales, Azure le pide las credenciales. Escriba un nombre de usuario y una contraseña:

$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
}

Prueba de la puerta de enlace de aplicaciones

No es necesario instalar IIS para crear la puerta de enlace de aplicaciones, pero se instaló en este inicio rápido para comprobar si Azure creó correctamente la puerta de enlace de aplicaciones.

Use IIS para probar la puerta de enlace de aplicaciones:

  1. Ejecute Get-AzPublicIPAddress para obtener la dirección IP pública de la puerta de enlace de aplicaciones.
  2. Copie la dirección IP pública y péguela en la barra de direcciones del explorador. Al actualizar el explorador, verá aparecer el nombre de la máquina virtual. Una respuesta válida corrobora que la puerta de enlace de aplicaciones se ha creado correctamente y puede conectarse correctamente con el back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Test application gateway

Limpieza de recursos

Cuando ya no necesite los recursos que ha creado con la puerta de enlace de aplicaciones, elimine el grupo de recursos. Al hacerlo, también elimina la puerta de enlace de aplicaciones y todos sus recursos relacionados.

Para eliminar el grupo de recursos, llame al cmdlet Remove-AzResourceGroup:

Remove-AzResourceGroup -Name myResourceGroupAG

Pasos siguientes