Tutorial: Membuat gateway aplikasi yang meningkatkan akses aplikasi web

Jika Anda adalah admin TI yang terkait dengan peningkatan akses aplikasi web, Anda dapat mengoptimalkan gateway aplikasi anda untuk menskalakan berdasarkan permintaan pelanggan dan menjangkau beberapa availability zone. Tutorial ini membantu Anda mengonfigurasi fitur Azure Application Gateway yang melakukan itu: autoscaling, redundansi zona, dan VIP yang dipesan (IP statis). Anda akan menggunakan cmdlet Azure PowerShell dan model penerapan Azure Resource Manager untuk menyelesaikan masalah.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat sertifikat yang ditandatangani sendiri
  • Membuat jaringan virtual skala otomatis
  • Membuat IP publik dicadangkan
  • Menyiapkan infrastruktur gateway aplikasi Anda
  • Menentukan skala otomatis
  • Membuat gateway aplikasi
  • Menguji gateway aplikasi

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Prasyarat

Catatan

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Tutorial ini mengharuskan Anda menjalankan sesi Azure PowerShell administratif secara lokal. Anda harus memasang modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az untuk menemukan versinya. Jika Anda ingin meningkatannya, lihat modul Memasang Azure PowerShell. Setelah versi PowerShell dipastikan, jalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

Masuk ke Azure

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

Membuat grup sumber daya

Buat grup sumber daya di salah satu lokasi yang tersedia.

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

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

Membuat sertifikat yang ditandatangani sendiri

Untuk penggunaan produksi, Anda harus mengimpor sertifikat yang valid dan ditandatangani oleh penyedia tepercaya. Untuk tutorial ini, Anda akan membuat sertifikat yang ditandatangani otomatis menggunakan New-SelfSignedCertificate. Anda dapat menggunakan Export-PfxCertificate dengan Thumbprint yang dihasilkan untuk mengekspor file pfx dari sertifikat.

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

Anda akan melihat hasil seperti berikut:

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

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

Gunakan thumbprint untuk membuat file pfx. Ganti <kata sandi> dengan kata sandi pilihan Anda:

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

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

Buat jaringan virtual

Buat jaringan virtual dengan satu subnet khusus untuk gateway aplikasi penskalaan otomatis. Saat ini hanya satu gateway aplikasi penskalaan otomatis yang dapat disebarkan di setiap subnet khusus.

#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

Membuat IP publik dicadangkan

Tentukan metode alokasi PublicIPAddress sebagai Statik. Gateway aplikasi penskalaan otomatis VIP hanya bisa statik. IP dinamis tidak didukung. Hanya SKU PublicIpAddress standar yang didukung.

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

Ambil detail

Ambil detail grup sumber daya, subnet, dan IP di objek lokal untuk membuat detail konfigurasi IP gateway aplikasi.

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

Membuat aplikasi web

Mengonfigurasi dua aplikasi web untuk kumpulan backend. Ganti <site1-name> dan <site-2-name> dengan nama unik di azurewebsites.net domain.

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

Konfigurasikan infrastruktur

Konfigurasikan konfigurasi IP, konfigurasi IP frontend, kumpulan backend, pengaturan HTTP, sertifikat, port, pendengar, dan aturan dalam format yang identik dengan gateway aplikasi Standar yang ada. SKU baru mengikuti model objek yang sama dengan SKU Standar.

Ganti dua FQDN aplikasi web Anda (misalnya: mywebapp.azurewebsites.net) dalam $pool variabel.

$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
$rule02 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule2" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener02 -BackendAddressPool $pool

Menentukan skala otomatis

Sekarang Anda dapat menentukan konfigurasi skala otomatis untuk gateway aplikasi.

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

Dalam mode ini, gateway aplikasi menskalakan otomatis berdasarkan pola lalu lintas aplikasi.

Membuat gateway aplikasi

Buat gateway aplikasi dan sertakan zona redundansi dan konfigurasi penskalaan otomatis.

$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

Menguji gateway aplikasi

Gunakan Get-AzPublicIPAddress untuk mendapatkan alamat IP publik gateway aplikasi. Salin alamat IP publik atau nama DNS, lalu tempelkan ke bilah alamat browser Anda.

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

Membersihkan sumber daya

Pertama jelajahi sumber daya yang dibuat dengan gateway aplikasi. Kemudian, jika tidak lagi diperlukan, Anda dapat menggunakan perintah Remove-AzResourceGroup untuk menghapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait.

Remove-AzResourceGroup -Name $rg

Langkah berikutnya