Azure Uygulama Ağ Geçidi (Azure Application Gateway) ile Doğrudan Web Trafiği – Azure PowerShell

Bu makalede, Azure üzerinde arka uç havuzunda iki sanal makineyle hızlı bir şekilde uygulama ağ geçidi oluşturmayı ve nasıl kullanılacağını göstermeye çalışacağım. Daha sonra doğru çalıştığından emin olmak için test edeceğiz. Azure Application Gateway ile, uygulama web trafiğinizi belirli kaynaklara yönlendirerek: dinleyicileri bağlantı noktalarına atayarak, kurallar oluşturarak ve bir arka uç havuzuna kaynak ekleyerek yönetebilirsiniz.

  • Azure’da, ilgili kaynakları bir kaynak grubuna atamanız gerekmektedir. Örnek çalışmamız için New-AzureRmResourceGroup cmdlet’ini kullanarak bir kaynak grubu oluşturabilirsiniz:
New-AzureRmResourceGroup -Name OnderRG -Location northeurope
  • Uygulama ağ geçidinin diğer kaynaklarla iletişim kurabilmesi için sanal bir ağ oluşturmanız gerekmektedir. Aşağıdaki örnekte iki alt ağ oluşturulur. Biri uygulama ağ geçidi diğeri arka uç sunucuları için. Uygulama ağ geçidi alt ağı yalnızca uygulama ağ geçitleri içerebilir. Başka hiçbir kaynağa izin verilmez.

$agSubnetConfig = New-AzureRmVirtualNetworkSubnetConfig `
  -Name OnderAGSubnet `
  -AddressPrefix 10.0.1.0/24
$backendSubnetConfig = New-AzureRmVirtualNetworkSubnetConfig `
  -Name OnderBackendSubnet `
  -AddressPrefix 10.0.2.0/24
New-AzureRmVirtualNetwork `
  -ResourceGroupName OnderRG `
  -Location northeurope `
  -Name OnderVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzureRmPublicIpAddress `
  -ResourceGroupName OnderRG `
  -Location northeurope `
  -Name OnderAGPublicIPAddress `
  -AllocationMethod Dynamic
  • Şimdi de Azure’un uygulama ağ geçidi için arka uç sunucu olarak kullanması için iki sanal makine oluşturalım. Ayrıca, Azure’un uygulama ağ geçidini başarıyla oluşturduğunu doğrulamak için IIS’yi sanal makinelere de yükleyelim. Sanal makineleri oluşturmak için aşağıdaki kod örneğini çalıştırdığınızda, Azure sizden kimlik bilgileri ister. Kullanıcı adı ve parola belirtin.
$vnet   = Get-AzureRmVirtualNetwork -ResourceGroupName OnderRG -Name OnderVNet
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name OnderBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzureRmNetworkInterface `
    -Name OnderNic$i `
    -ResourceGroupName OnderRG `
    -Location northeurope `
    -SubnetId $subnet.Id
    
  $vm = New-AzureRmVMConfig `
    -VMName OnderVM$i `
    -VMSize Standard_DS2_v2
  Set-AzureRmVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName OnderVM$i `
    -Credential $cred
  Set-AzureRmVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzureRmVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzureRmVMBootDiagnostics `
    -VM $vm `
    -Disable
  New-AzureRmVM -ResourceGroupName OnderRG -Location northeurope -VM $vm
  Set-AzureRmVMExtension `
    -ResourceGroupName OnderRG `
    -ExtensionName IIS `
    -VMName OnderVM$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 northeurope
}
  • Aşağıdaki PowerShell komutlarıyla bir uygulama ağ geçidi oluşturabilirsiniz.
# IP yapılandırmalarını ve ön uç bağlantı noktasını oluşturma

$vnet   = Get-AzureRmVirtualNetwork -ResourceGroupName OnderRG -Name OnderVNet
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name OnderAGSubnet
$pip    = Get-AzureRmPublicIPAddress -ResourceGroupName OnderRG -Name OnderAGPublicIPAddress 
$gipconfig = New-AzureRmApplicationGatewayIPConfiguration `
  -Name OnderAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzureRmApplicationGatewayFrontendIPConfig `
  -Name OnderAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzureRmApplicationGatewayFrontendPort `
  -Name OnderFrontendPort `
  -Port 80

  # Arka uç havuzu oluşturma

  $address1 = Get-AzureRmNetworkInterface -ResourceGroupName OnderRG -Name OnderNic1
$address2 = Get-AzureRmNetworkInterface -ResourceGroupName OnderRG -Name OnderNic2
$backendPool = New-AzureRmApplicationGatewayBackendAddressPool `
  -Name OnderAGBackendPool `
  -BackendIPAddresses $address1.ipconfigurations[0].privateipaddress, $address2.ipconfigurations[0].privateipaddress
$poolSettings = New-AzureRmApplicationGatewayBackendHttpSettings `
  -Name OnderPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 120

  # Listener oluşturma ve bir kural ekleme

  $defaultlistener = New-AzureRmApplicationGatewayHttpListener `
  -Name OnderAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzureRmApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

  # Uygulama ağ geçidi oluşturma

  $sku = New-AzureRmApplicationGatewaySku `
  -Name Standard_Medium `
  -Tier Standard `
  -Capacity 2
New-AzureRmApplicationGateway `
  -Name OnderAppGateway `
  -ResourceGroupName OnderRG  `
  -Location northeurope `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku
  • IIS’in uygulama ağ geçidi için oluşturması gerekmese de, Azure’un uygulama ağ geçidini başarıyla oluşturup oluşturmadığını doğrulamak için IIS kurulumunu PowerShell ile yaptık. Uygulama ağ geçidini test etmek için IIS’e erişin:
Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.