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