Tutorial: Membuat gateway aplikasi yang meningkatkan akses aplikasi web

Jika Anda adalah administrator TI yang bertujuan untuk meningkatkan akses aplikasi web, Anda dapat mengoptimalkan gateway aplikasi untuk menskalakan secara dinamis berdasarkan permintaan pelanggan dan mencakup beberapa zona ketersediaan. Tutorial ini membantu Anda mengonfigurasi fitur utama Azure Application Gateway v2, termasuk penskalaan otomatis, redundansi zona, dan VIP statis, untuk mencapai peningkatan tersebut. Anda akan menggunakan cmdlet Azure PowerShell dan model penyebaran Azure Resource Manager untuk menyelesaikan masalah.

Dalam tutorial ini, Anda mempelajari cara:

  • Membuat sertifikat yang ditandatangani sendiri
  • Membuat jaringan virtual skala otomatis
  • Buat IP publik yang sudah dipesan
  • Menyiapkan infrastruktur gateway aplikasi Anda
  • Tentukan skala otomatis
  • Buat gerbang aplikasi
  • Uji gateway aplikasi

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

Untuk informasi selengkapnya tentang dukungan zona ketersediaan di Application Gateway v2, lihat Keandalan untuk Application Gateway v2.

Prasyarat

Nota

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. 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 menginstal modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az untuk menemukan versinya. Jika Anda perlu peningkatan, lihat Instal modul 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 valid yang 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

Membuat jaringan virtual

Buat jaringan virtual dengan satu subnet khusus untuk gateway aplikasi penskalaan otomatis. Saat ini hanya satu gateway aplikasi autoscaling 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

Buat IP publik yang sudah dipesan

Tentukan metode alokasi PublicIPAddress sebagai Statis. VIP gateway aplikasi autoscaling hanya dapat berupa statis. 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

Mengambil detail

Ambil detail grup sumber daya, subnet, dan IP di objek lokal untuk membuat detail konfigurasi IP untuk 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

Konfigurasikan dua aplikasi web untuk kumpulan backend. Ganti <site1-name> dan <site2-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

Mengonfigurasi 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 definisi variabel $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

Tentukan 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, pengalih aplikasi melakukan penskalaan otomatis berdasarkan pola lalu lintas aplikasi.

Buat gerbang aplikasi

Buat gateway aplikasi dan sertakan zona redundansi dan konfigurasi skala 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

Uji 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 melalui gateway aplikasi. Kemudian, ketika tidak lagi diperlukan, Anda dapat menggunakan Remove-AzResourceGroup perintah untuk menghapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait.

Remove-AzResourceGroup -Name $rg

Langkah berikutnya