Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se você for um administrador de TI com o objetivo de melhorar o acesso a aplicativos Web, poderá otimizar seu gateway de aplicativos para dimensionar dinamicamente com base na demanda do cliente e abranger várias zonas de disponibilidade. Este tutorial ajuda você a configurar os principais recursos do Gateway de Aplicativo do Azure v2, incluindo dimensionamento automático, redundância de zona e VIPs estáticos, para obter essas melhorias. Você usará cmdlets do Azure PowerShell e o modelo de implantação do Azure Resource Manager para resolver o problema.
Neste tutorial, aprenderás como:
- Criar um certificado autoassinado
- Criar uma rede virtual de dimensionamento automático
- Criar um IP público reservado
- Configurar a infraestrutura do gateway de aplicativos
- Definir dimensionamento automático
- Criar o gateway de aplicação
- Testar o portal de aplicações
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Para obter mais informações sobre o suporte à zona de disponibilidade no Application Gateway v2, consulte Confiabilidade do Application Gateway v2.
Pré-requisitos
Observação
Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Para começar, veja Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrate Azure PowerShell from AzureRM to Az.
Este tutorial requer que você execute uma sessão administrativa do Azure PowerShell localmente. Você deve ter o módulo do Azure PowerShell versão 1.0.0 ou posterior instalado. Executar Get-Module -ListAvailable Az para localizar a versão. Se você precisar atualizar, consulte Instalar o módulo do Azure PowerShell. Depois de verificar a versão do PowerShell, execute Connect-AzAccount para criar uma ligação ao Azure.
Iniciar sessão no Azure
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
Criar um grupo de recursos
Crie um grupo de recursos em um dos locais disponíveis.
$location = "East US 2"
$rg = "AppGW-rg"
#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location
Criar um certificado autoassinado
Para uso em produção, você deve importar um certificado válido assinado por um provedor confiável. Para este tutorial, você cria um certificado autoassinado usando New-SelfSignedCertificate. Você pode usar Export-PfxCertificate com a impressão digital (Thumbprint) que foi retornada para exportar um arquivo pfx do certificado.
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
Você deve ver algo semelhante a este resultado:
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
Use a impressão digital para criar o arquivo pfx. Substitua <a palavra-passe> por uma palavra-passe à sua escolha:
$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
Criar uma rede virtual
Crie uma rede virtual com uma sub-rede dedicada para um gateway de aplicativo de dimensionamento automático. Atualmente, apenas um gateway de aplicativo de dimensionamento automático pode ser implantado em cada sub-rede dedicada.
#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
-Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2
Criar um IP público reservado
Especifique o método de alocação do PublicIPAddress como Estático. Um gateway de aplicação com dimensionamento automático VIP só pode ser estático. IPs dinâmicos não são suportados. Apenas o SKU PublicIpAddress padrão é suportado.
#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
-location $location -AllocationMethod Static -Sku Standard -Zone 1,2,3
Recuperar detalhes
Recupere detalhes do grupo de recursos, sub-rede e IP em um objeto local para criar os detalhes de configuração IP para o gateway de aplicativo.
$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet
Criar aplicações Web
Configure dois aplicativos Web para o pool de back-end. Substitua <site1-name> e <site2-name> por nomes exclusivos no domínio azurewebsites.net.
New-AzAppServicePlan -ResourceGroupName $rg -Name "ASP-01" -Location $location -Tier Basic `
-NumberofWorkers 2 -WorkerSize Small
New-AzWebApp -ResourceGroupName $rg -Name <site1-name> -Location $location -AppServicePlan ASP-01
New-AzWebApp -ResourceGroupName $rg -Name <site2-name> -Location $location -AppServicePlan ASP-01
Configurar a infraestrutura
Configure a configuração de IP, configuração de IP de frontend, pool de back-end, configurações HTTP, certificado, porta, ouvinte e regra em um formato idêntico ao gateway de aplicativo Standard existente. A nova SKU segue o mesmo modelo de objeto que a SKU padrão.
Substitua os seus dois FQDNs de aplicação Web (por exemplo: mywebapp.azurewebsites.net) na definição da variável $pool.
$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPConfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
-BackendIPAddresses <your first web app FQDN>, <your second web app FQDN>
$fp01 = New-AzApplicationGatewayFrontendPort -Name "SSLPort" -Port 443
$fp02 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80
$securepfxpwd = ConvertTo-SecureString -String "Azure123456!" -AsPlainText -Force
$sslCert01 = New-AzApplicationGatewaySslCertificate -Name "SSLCert" -Password $securepfxpwd `
-CertificateFile "c:\appgwcert.pfx"
$listener01 = New-AzApplicationGatewayHttpListener -Name "SSLListener" `
-Protocol Https -FrontendIPConfiguration $fip -FrontendPort $fp01 -SslCertificate $sslCert01
$listener02 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
-Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp02
$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
-Port 80 -Protocol Http -CookieBasedAffinity Disabled -PickHostNameFromBackendAddress
$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -Priority 1
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
-BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool -Priority 2
Definir dimensionamento automático
Agora você pode especificar a configuração de dimensionamento automático para o gateway de aplicativo.
$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
Nesse modo, o gateway de aplicativo é dimensionado automaticamente com base no padrão de tráfego do aplicativo.
Criar o gateway de aplicação
Crie o gateway de aplicação e inclua zonas de redundância e a configuração de escalonamento automático.
$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 `
-ResourceGroupName $rg -Location $location -BackendAddressPools $pool `
-BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig `
-FrontendIpConfigurations $fip -FrontendPorts $fp01, $fp02 `
-HttpListeners $listener01, $listener02 -RequestRoutingRules $rule01, $rule02 `
-Sku $sku -sslCertificates $sslCert01 -AutoscaleConfiguration $autoscaleConfig
Testar o portal de aplicações
Use Get-AzPublicIPAddress para obter o endereço IP público do gateway de aplicativo. Copie o endereço IP público ou o nome DNS e cole-o na barra de endereços do navegador.
$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress
Limpeza de recursos
Primeiro, explore os recursos que foram criados com o gateway de aplicações. Em seguida, quando eles não forem mais necessários, você poderá usar o Remove-AzResourceGroup comando para remover o grupo de recursos, o gateway de aplicativos e todos os recursos relacionados.
Remove-AzResourceGroup -Name $rg