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.
También puede completar este inicio rápido con la CLI de Azure o con Azure Portal.
Nota:
El front-end de Application Gateway ahora admite direcciones IP de doble pila (versión preliminar). 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).
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Azure PowerShell versión 1.0.0 o posterior (si ejecuta Azure PowerShell localmente).
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. | |
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | |
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
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.
Seleccione Enter para ejecutar el código o comando.
Nota
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. 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.
- Cree las configuraciones de la subred mediante
New-AzVirtualNetworkSubnetConfig
. - Cree la red virtual con las configuraciones de la subred mediante
New-AzVirtualNetwork
. - 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
La SKU Estándar v2 se usa en este ejemplo.
Creación de las configuraciones IP y el puerto de front-end
- Use
New-AzApplicationGatewayIPConfiguration
para crear la configuración que asocia la subred que creó con la instancia la puerta de enlace de aplicaciones. - 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. - 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
- 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. - 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.
- Cree una escucha mediante
New-AzApplicationGatewayHttpListener
con la configuración de front-end y el puerto de front-end que creó anteriormente. - 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:
- Use
New-AzApplicationGatewaySku
para especificar parámetros para la puerta de enlace de aplicaciones. - 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
Sugerencia
Puede modificar los valores de los parámetros Name
y Tier
para usar una SKU diferente. Por ejemplo: Basic
.
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
- Obtenga la configuración del grupo de back-end de Application Gateway recién creada con
Get-AzApplicationGatewayBackendAddressPool
. - Cree una interfaz de red con
New-AzNetworkInterface
. - Cree una configuración de máquina virtual con
New-AzVMConfig
. - 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:
- Ejecute
Get-AzPublicIPAddress
para obtener la dirección IP pública de la puerta de enlace de aplicaciones. - 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
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