Tutorial: Load balance komputer virtual Windows di Azure untuk membuat aplikasi yang sangat tersedia dengan Azure PowerShell
Berlaku untuk: ✔️ VM Windows ✔️ Set skala seragam
Keseimbangan muatan memberikan tingkat ketersediaan dan skala yang lebih tinggi dengan menyebarkan permintaan masuk ke beberapa komputer virtual. Dalam tutorial ini, Anda belajar tentang berbagai komponen Azure load balancer yang mendistribusikan lalu lintas dan memberikan ketersediaan tinggi. Anda akan mempelajari cara untuk:
- Membuat load balancer Azure
- Membuat pemeriksaan kondisi load balancer
- Membuat aturan lalu lintas penyeimbang beban
- Menggunakan Custom Script Extension untuk membuat situs DASAR IIS
- Membuat komputer virtual dan memasangkannya ke load balancer
- Melihat Azure load balancer beraksi
- Menambahkan dan menghapus komputer virtual dari load balancer
Gambaran umum Azure Load Balancer
Azure load balancer adalah load balancer Lapisan 4 (TCP, UDP) yang memberikan ketersediaan tinggi dengan mendistribusikan lalu lintas masuk di antara komputer virtual yang sehat. Pemeriksaan kondisi load balancer memantau port tertentu pada setiap komputer virtual dan hanya mendistribusikan lalu lintas ke komputer virtual operasional.
Anda menentukan konfigurasi IP front-end yang berisi satu atau beberapa alamat IP publik. Konfigurasi IP front-end ini memungkinkan load balancer dan aplikasi Anda untuk dapat diakses melalui Internet.
Mesin virtual terhubung ke load balancer menggunakan kartu antarmuka jaringan virtualnya (NIC). Untuk mendistribusikan lalu lintas ke komputer virtual, penyeimbang beban menggunakan kumpulan alamat backend yang berisi alamat IP antarmuka jaringan virtual yang tersambung ke penyeimbang beban.
Guna mengontrol arus lalu lintas, Anda menentukan aturan load balancer untuk port dan protokol tertentu yang memetakan ke komputer virtual Anda.
Meluncurkan Azure Cloud Shell
Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Shell ini memiliki alat Azure umum yang telah dipasang sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda.
Untuk membuka Cloud Shell, cukup pilih Coba dari sudut kanan atas blok kode. Anda juga dapat meluncurkan Cloud Shell di tab browser terpisah dengan membuka https://shell.azure.com/powershell. Pilih Salin untuk menyalin blok kode, tempelkan ke Cloud Shell, dan tekan masukkan untuk menjalankannya.
Membuat Azure load balancer
Bagian ini menjelaskan cara untuk membuat dan mengonfigurasi setiap komponen load balancer. Sebelum Anda dapat membuat load balancer Anda, buat grup sumber daya dengan New-AzResourceGroup. Contoh berikut ini membuat grup sumber daya bernama myResourceGroupLoadBalancer di lokasi EastUS:
New-AzResourceGroup `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Location "EastUS"
Membuat alamat IP publik
Untuk mengakses aplikasi Anda di Internet, Anda memerlukan alamat IP publik sebagai load balancer. Buat alamat IP publik dengan New-AzPublicIpAddress. Contoh berikut membuat alamat IP publik bernama myPublicIP di grup sumber daya myResourceGroupLoadBalancer:
$publicIP = New-AzPublicIpAddress `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Location "EastUS" `
-AllocationMethod "Static" `
-Name "myPublicIP"
Membuat load balancer
Buat kumpulan IP frontend dengan New-AzLoadBalancerFrontendIpConfig. Contoh berikut membuat kumpulan IP frontend bernama myFrontEndPool dan melampirkan alamat myPublicIP:
$frontendIP = New-AzLoadBalancerFrontendIpConfig `
-Name "myFrontEndPool" `
-PublicIpAddress $publicIP
Buat kumpulan alamat backend dengan New-AzLoadBalancerBackendAddressPoolConfig. Komputer virtual menempel pada kumpulan backend ini di langkah-langkah yang tersisa. Contoh berikut membuat kumpulan alamat backend bernama myBackEndPool:
$backendPool = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "myBackEndPool"
Sekarang, buat penyeimbang muatan dengan New-AzLoadBalancer. Contoh berikut membuat load balancer bernama myLoadBalancer menggunakan kumpulan IP frontend dan backend yang dibuat pada langkah-langkah sebelumnya:
$lb = New-AzLoadBalancer `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myLoadBalancer" `
-Location "EastUS" `
-FrontendIpConfiguration $frontendIP `
-BackendAddressPool $backendPool
Membuat pemeriksaan kesehatan
Untuk memungkinkan load balancer memantau status aplikasi Anda, Anda menggunakan pemeriksaan kesehatan. Pemeriksaan kesehatan menambahkan atau menghapus komputer virtual dari rotasi load balancer berdasarkan respons mereka terhadap pemeriksaan kesehatan. Secara default, komputer virtual dihapus dari distribusi load balancer setelah dua kegagalan berturut-turut pada interval 15 detik. Anda membuat pemeriksaan kondisi berdasarkan protokol atau halaman pemeriksaan kondisi tertentu untuk aplikasi Anda.
Contoh berikut membuat pemeriksaan TCP. Anda juga dapat membuat pemeriksaan HTTP khusus untuk pemeriksaan kondisi yang lebih terperinci. Saat menggunakan pemeriksaan HTTP kustom, Anda harus membuat halaman pemeriksaan kesehatan, seperti healthcheck.aspx. Pemeriksaan harus mengembalikan respons HTTP 200 OK untuk load balancer agar host tetap dalam rotasi.
Untuk membuat pemeriksaan kesehatan TCP, Anda menggunakan Add-AzLoadBalancerProbeConfig. Contoh berikut membuat pemeriksaan kesehatan bernama myHealthProbe yang memantau setiap komputer virtual pada port TCP80:
Add-AzLoadBalancerProbeConfig `
-Name "myHealthProbe" `
-LoadBalancer $lb `
-Protocol tcp `
-Port 80 `
-IntervalInSeconds 15 `
-ProbeCount 2
Untuk menerapkan pemeriksaan kesehatan, perbarui load balancer dengan Set-AzLoadBalancer:
Set-AzLoadBalancer -LoadBalancer $lb
Membuat aturan load balancer
Aturan load balancer digunakan untuk menentukan cara lalu lintas didistribusikan ke VM. Anda menentukan konfigurasi IP frontend untuk lalu lintas masuk, dan kumpulan IP backend untuk menerima lalu lintas, serta sumber dan port tujuan yang diperlukan. Untuk memastikan hanya komputer virtual sehat yang menerima lalu lintas, Anda juga menentukan pemeriksaan kondisi yang akan digunakan.
Buat aturan load balancer dengan Add-AzLoadBalancerRuleConfig. Contoh berikut membuat load balancer bernama myLoadBalancerRule dan menyeimbangkan lalu lintas pada port TCP80:
$probe = Get-AzLoadBalancerProbeConfig -LoadBalancer $lb -Name "myHealthProbe"
Add-AzLoadBalancerRuleConfig `
-Name "myLoadBalancerRule" `
-LoadBalancer $lb `
-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
-BackendAddressPool $lb.BackendAddressPools[0] `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-Probe $probe
Perbarui load balancer dengan Set-AzLoadBalancer:
Set-AzLoadBalancer -LoadBalancer $lb
Konfigurasikan jaringan virtual
Sebelum menyebarkan beberapa komputer virtual dan dapat menguji load balancer Anda, buat sumber daya jaringan virtual yang mendukung. Untuk informasi selengkapnya tentang jaringan virtual, lihat tutorial Mengelola Azure Virtual Networks.
Membuat sumber daya jaringan
Buat jaringan virtual dengan New-AzVirtualNetwork. Contoh berikut membuat jaringan virtual bernama myVNET dengan mySubNet:
# Create subnet config
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name "mySubnet" `
-AddressPrefix 192.168.1.0/24
# Create the virtual network
$vnet = New-AzVirtualNetwork `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Location "EastUS" `
-Name "myVnet" `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
NIC virtual dibuat dengan New-AzNetworkInterface. Contoh berikut membuat tiga NIC virtual. (Satu NIC virtual untuk setiap VM yang Anda buat untuk aplikasi Anda dalam langkah-langkah berikut). Anda dapat membuat NIC dan VM virtual tambahan kapan saja dan menambahkannya ke load balancer:
for ($i=1; $i -le 3; $i++)
{
New-AzNetworkInterface `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name myVM$i `
-Location "EastUS" `
-Subnet $vnet.Subnets[0] `
-LoadBalancerBackendAddressPool $lb.BackendAddressPools[0]
}
Membuat komputer virtual
Untuk meningkatkan ketersediaan aplikasi, tempatkan VM Anda dalam set ketersediaan.
Buat set ketersediaan dengan New-AzAvailabilitySet. Contoh berikut membuat set ketersediaan bernama dsAVset:
$availabilitySet = New-AzAvailabilitySet `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myAvailabilitySet" `
-Location "EastUS" `
-Sku aligned `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2
Atur nama pengguna dan kata sandi administrator untuk VM dengan Get-Credential:
$cred = Get-Credential
Sekarang Anda dapat membuat VM dengan New-AzVM. Contoh berikut membuat tiga komputer virtual dan komponen jaringan virtual yang diperlukan jika belum ada:
for ($i=1; $i -le 3; $i++)
{
New-AzVm `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myVM$i" `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-OpenPorts 80 `
-AvailabilitySetName "myAvailabilitySet" `
-Credential $cred `
-AsJob
}
Parameter -AsJob
membuat komputer virtual sebagai tugas latar belakang, sehingga powerShell meminta kembali kepada Anda. Anda dapat melihat detail pekerjaan latar belakang dengan Job
cmdlet. Dibutuhkan beberapa menit untuk membuat dan mengonfigurasi ketiga komputer virtual.
Instal IIS dengan Custom Script Extension
Dalam tutorial sebelumnya tentang Cara menyesuaikan komputer virtual Windows, Anda belajar cara mengotomatiskan kustomisasi komputer virtual dengan Ekstensi Skrip Kustom untuk Windows. Anda dapat menggunakan pendekatan yang sama untuk menginstal dan mengonfigurasi IIS pada komputer virtual Anda.
Gunakan Set-AzVMExtension untuk menginstal Custom Script Extension. Ekstensi tersebut menjalankan powershell Add-WindowsFeature Web-Server
untuk menginstal server web IIS dan memperbarui halaman Default.htm untuk menampilkan nama host komputer virtual:
for ($i=1; $i -le 3; $i++)
{
Set-AzVMExtension `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-ExtensionName "IIS" `
-VMName myVM$i `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.8 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
-Location EastUS
}
Menguji load balancer
Dapatkan alamat IP publik load balancer Anda dengan Get-AzPublicIPAddress. Contoh berikut memperoleh alamat IP untuk myPublicIP yang dibuat sebelumnya:
Get-AzPublicIPAddress `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myPublicIP" | select IpAddress
Kemudian Anda dapat memasukkan alamat IP publik ke browser web. Situs web ditampilkan, termasuk nama host VM tempat load balancer mendistribusikan lalu lintas seperti dalam contoh berikut:
Untuk melihat load balancer mendistribusikan lalu lintas ke ketiga komputer virtual yang menjalankan aplikasi, Anda dapat me-refresh browser web secara paksa.
Menambahkan dan menghapus komputer virtual
Anda mungkin perlu melakukan pemeliharaan pada VM yang menjalankan aplikasi Anda, seperti menginstal pembaruan OS. Untuk mengatasi peningkatan lalu lintas ke aplikasi, Anda mungkin perlu menambahkan komputer virtual tambahan. Bagian ini memperlihatkan kepada Anda cara menghapus atau menambahkan komputer virtual dari load balancer.
Menghapus komputer virtual dari load balancer
Dapatkan kartu antarmuka jaringan dengan Get-AzNetworkInterface, lalu atur propertiLoadBalancerBackendAddressPools dari NIC virtual untuk $null. Akhirnya, perbarui NIC virtual.:
$nic = Get-AzNetworkInterface `
-ResourceGroupName "myResourceGroupLoadBalancer" `
-Name "myVM2"
$nic.Ipconfigurations[0].LoadBalancerBackendAddressPools=$null
Set-AzNetworkInterface -NetworkInterface $nic
Untuk melihat load balancer mendistribusikan lalu lintas ke ketiga komputer virtual yang menjalankan aplikasi, Anda dapat me-refresh browser web secara paksa. Anda sekarang dapat melakukan pemeliharaan pada komputer virtual, seperti menginstal pembaruan OS atau melakukan reboot komputer virtual.
Menambahkan komputer virtual ke load balancer
Setelah melakukan pemeliharaan komputer virtual, atau jika Anda perlu memperluas kapasitas, atur properti LoadBalancerBackendAddressPools dari NIC virtual ke BackendAddressPool dari Get-AzLoadBalancer:
Dapatkan load balancer:
$lb = Get-AzLoadBalancer `
-ResourceGroupName myResourceGroupLoadBalancer `
-Name myLoadBalancer
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$lb.BackendAddressPools[0]
Set-AzNetworkInterface -NetworkInterface $nic
Langkah berikutnya
Dalam tutorial ini, Anda membuat load balancer dan memasang komputer virtual padanya. Anda mempelajari cara untuk:
- Membuat load balancer Azure
- Membuat pemeriksaan kondisi load balancer
- Membuat aturan lalu lintas penyeimbang beban
- Menggunakan Custom Script Extension untuk membuat situs DASAR IIS
- Membuat komputer virtual dan memasangkannya ke load balancer
- Melihat Azure load balancer beraksi
- Menambahkan dan menghapus komputer virtual dari load balancer
Lanjutkan ke tutorial berikutnya untuk mempelajari cara mengelola jaringan komputer virtual.