Eğitim: Web uygulaması erişimini geliştiren bir uygulama ağ geçidi oluşturma

Web uygulaması erişimini iyileştirmeyi hedefleyen bir BT yöneticisiyseniz, uygulama ağ geçidinizi müşteri talebine göre dinamik olarak ölçeklendirilecek ve birden çok kullanılabilirlik alanına yayılacak şekilde iyileştirebilirsiniz. Bu öğretici, bu iyileştirmeleri elde etmek için otomatik ölçeklendirme, alanlar arası yedeklilik ve statik VIP'ler gibi önemli Azure Application Gateway v2 özelliklerini yapılandırmanıza yardımcı olur. Sorunu çözmek için Azure PowerShell cmdlet'lerini ve Azure Resource Manager dağıtım modelini kullanacaksınız.

Bu eğitimde şunları öğreniyorsunuz:

  • Kendinden imzalı sertifika oluşturma
  • Sanal ağın otomatik ölçeklendirilmesini oluşturma
  • Rezerve edilmiş genel IP oluşturma
  • Uygulama ağ geçidi altyapınızı ayarlama
  • Otomatik ölçeklendirmeyi belirtme
  • Uygulama ağ geçidi oluşturma
  • Uygulama ağ geçidini test edin

Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.

Application Gateway v2'deki kullanılabilirlik alanı desteği hakkında daha fazla bilgi için bkz. Application Gateway v2 için Güvenilirlik.

Önkoşullar

Uyarı

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bu kılavuz, yerel olarak bir yönetici Azure PowerShell oturumu çalıştırmanızı gerektirir. Azure PowerShell modülü sürüm 1.0.0 veya üzeri yüklü olmalıdır. Sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekiyorsa bkz. Azure PowerShell modülünü yükleme. PowerShell sürümünü doğruladıktan sonra, Azure ile bağlantı oluşturmak için Connect-AzAccount komutunu çalıştırın.

Azure'a Giriş Yap

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

Bir kaynak grubu oluşturun

Kullanılabilir konumlardan birinde bir kaynak grubu oluşturun.

$location = "East US 2"
$rg = "AppGW-rg"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location

Kendinden imzalı sertifika oluşturma

Üretim kullanımı için, güvenilir sağlayıcı tarafından imzalanan geçerli bir sertifikayı içeri aktarmanız gerekir. Bu öğretici için New-SelfSignedCertificate kullanarak kendi kendine imzalanan bir sertifika oluşturursunuz. Sertifikadan pfx dosyasını dışarı aktarmak için döndürülen Parmak İzi ile Export-PfxCertificate kullanabilirsiniz.

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

Aşağıdakine benzer bir sonuç görmeniz gerekir:

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

Pfx dosyasını oluşturmak için parmak izini kullanın. Parolayı seçtiğiniz bir parolayla değiştirin<:>

$pwd = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

Sanal ağ oluşturma

Otomatik ölçeklendirme uygulama ağ geçidi için ayrılmış bir alt ağa sahip bir sanal ağ oluşturun. Şu anda her ayrılmış alt ağa yalnızca bir otomatik ölçeklendirme uygulama ağ geçidi dağıtılabilir.

#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

Rezerve edilmiş genel IP oluşturma

PublicIPAddress ayırma yöntemini Statik olarak belirtin. Otomatik ölçeklenen uygulama ağ geçidi VIP'si yalnızca statik olabilir. Dinamik IP'ler desteklenmez. Yalnızca standart PublicIpAddress SKU'su desteklenir.

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -location $location -AllocationMethod Static -Sku Standard -Zone 1,2,3

Ayrıntıları alma

Uygulama ağ geçidi için IP yapılandırma ayrıntılarını oluşturmak için yerel bir nesnedeki kaynak grubunun, alt ağın ve IP'nin ayrıntılarını alın.

$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

Web uygulamaları oluşturma

Arka uç havuzu için iki web uygulaması yapılandırın. <site1-name> ve <site2-name> yerine azurewebsites.net etki alanında benzersiz adlarla değiştirin.

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

Altyapıyı yapılandırma

IP yapılandırması, ön uç IP yapılandırması, arka uç havuzu, HTTP ayarları, sertifika, bağlantı noktası, dinleyici ve kuralı mevcut Standart uygulama ağ geçidiyle aynı biçimde yapılandırın. Yeni SKU, Standart SKU ile aynı nesne modelini izler.

$pool değişken tanımında iki web uygulaması FQDN'nizi (örneğin: mywebapp.azurewebsites.net) değiştirin.

$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

Otomatik ölçeklendirmeyi belirtme

Artık uygulama ağ geçidi için otomatik ölçeklendirme yapılandırmasını belirtebilirsiniz.

$autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2

Bu modda, uygulama ağ geçidi, uygulama trafiği desenini temel alarak otomatik olarak ölçekler.

Uygulama ağ geçidi oluşturma

Uygulama ağ geçidini oluşturun ve yedeklilik alanlarını ve otomatik ölçeklendirme yapılandırmasını ekleyin.

$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

Uygulama ağ geçidini test edin

Uygulama ağ geçidinin genel IP adresini almak için Get-AzPublicIPAddress kullanın. Genel IP adresini veya DNS adını kopyalayın ve tarayıcınızın adres çubuğuna yapıştırın.

$pip = Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP
$pip.IpAddress

Kaynakları temizle

İlk olarak uygulama ağ geçidiyle oluşturulan kaynakları keşfedin. Daha sonra artık gerekli olmadığında komutunu kullanarak Remove-AzResourceGroup kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları kaldırabilirsiniz.

Remove-AzResourceGroup -Name $rg

Sonraki Adımlar