Rutekan lalu lintas web berdasarkan URL menggunakan Azure CLI
Sebagai administrator TI yang mengelola lalu lintas web, Anda ingin membantu pelanggan dan pengguna Anda mendapatkan informasi yang mereka butuhkan secepat mungkin. Salah satu cara Anda dapat mengoptimalkan pengalaman mereka adalah dengan merutekan berbagai jenis lalu lintas web ke sumber daya server yang berbeda. Artikel ini menunjukkan Anda cara menggunakan Azure CLI untuk menyiapkan dan mengonfigurasi perutean Application Gateway untuk berbagai jenis lalu lintas dari aplikasi Anda. Perutean kemudian mengarahkan lalu lintas ke kluster server yang berbeda berdasarkan URL.
Dalam artikel ini, Anda akan mempelajari cara:
- Membuat grup sumber daya untuk sumber daya jaringan yang Anda butuhkan
- Membuat sumber daya jaringan
- Membuat gateway aplikasi untuk lalu lintas yang berasal dari aplikasi Anda
- Tentukan kluster server dan aturan perutean untuk berbagai jenis lalu lintas
- Membuat set skala untuk setiap kumpulan sehingga kumpulan dapat menskalakan secara otomatis
- Jalankan pengujian sehingga Anda dapat memverifikasi bahwa berbagai jenis lalu lintas menuju kumpulan yang benar
Anda juga dapat menyelesaikan prosedur ini menggunakan Azure PowerShell atau portal Microsoft Azure.
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- Tutorial ini memerlukan Azure CLI versi 2.0.4 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.
Buat grup sumber daya
Grup sumber daya adalah kontainer logis dimana sumber daya Azure disebarkan dan dikelola. Buat grup sumber daya menggunakan az group create
.
Contoh berikut membuat grup sumber daya bernama myResourceGroupAG di lokasi eastus.
az group create --name myResourceGroupAG --location eastus
Membuat sumber daya jaringan
Buat jaringan virtual bernama myVNet dan subnet bernama myAGSubnet menggunakan az network vnet create
. Kemudian tambahkan subnet bernama myBackendSubnet yang diperlukan oleh server backend menggunakan az network vnet subnet create
. Buat alamat IP publik bernama myAGPublicIPAddress menggunakan az network public-ip create
.
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Buat gateway aplikasi dengan peta URL
Gunakan az network application-gateway create
untuk membuat gateway aplikasi bernama myAppGateway. Saat Anda membuat gateway aplikasi menggunakan Azure CLI, Anda menentukan informasi konfigurasi, seperti pengaturan kapasitas, sku, dan HTTP. Gateway aplikasi ditetapkan ke myAGSubnet dan myAGPublicIPAddress.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 100
Diperlukan beberapa menit untuk membuat gateway aplikasi. Setelah gateway aplikasi dibuat, Anda bisa melihat fitur baru ini:
Fitur | Deskripsi |
---|---|
appGatewayBackendPool | Gateway aplikasi harus memiliki setidaknya satu kumpulan alamat ujung belakang. |
appGatewayBackendHttpSettings | Menentukan bahwa port 80 dan protokol HTTP digunakan untuk komunikasi. |
appGatewayHttpListener | Pendengar default yang terkait dengan appGatewayBackendPool |
appGatewayFrontendIP | Menetapkan myAGPublicIPAddress ke appGatewayHttpListener. |
aturan1 | Aturan perutean default yang terkait dengan appGatewayHttpListener. |
Tambahkan port dan kumpulan ujung belakang video dan gambar
Tambahkan kumpulan ujung belakang bernama imagesBackendPool dan videoBackendPool ke gateway aplikasi Anda menggunakan az network application-gateway address-pool create
. Anda menambahkan port ujung depan untuk kumpulan menggunakan az network application-gateway frontend-port create
.
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name imagesBackendPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name videoBackendPool
az network application-gateway frontend-port create \
--port 8080 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name port8080
Tambahkan pendengar ujung belakang
Tambahkan pendengar ujung belakang bernama backendListener yang diperlukan untuk merutekan lalu lintas menggunakan az network application-gateway http-listener create
.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port port8080 \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Tambahkan peta jalur URL
Peta jalur URL memastikan URL tertentu dirutekan ke kumpulan ujung belakang tertentu. Buat peta jalur URL bernama imagePathRule dan videoPathRule menggunakan az network application-gateway url-path-map create
dan az network application-gateway url-path-map rule create
.
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name myPathMap \
--paths /images/* \
--resource-group myResourceGroupAG \
--address-pool imagesBackendPool \
--default-address-pool appGatewayBackendPool \
--default-http-settings appGatewayBackendHttpSettings \
--http-settings appGatewayBackendHttpSettings \
--rule-name imagePathRule
az network application-gateway url-path-map rule create \
--gateway-name myAppGateway \
--name videoPathRule \
--resource-group myResourceGroupAG \
--path-map-name myPathMap \
--paths /video/* \
--address-pool videoBackendPool \
--http-settings appGatewayBackendHttpSettings
Menambahkan aturan perutean
Aturan perutean menghubungkan peta URL dengan pendengar yang Anda buat. Tambahkan aturan bernama aturan2 menggunakan az network application-gateway rule create
.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name rule2 \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map myPathMap \
--address-pool appGatewayBackendPool \
--priority 200
Membuat Set Skala Komputer Virtual
Dalam artikel ini, Anda membuat tiga Virtual Machine Scale Sets yang mendukung tiga kumpulan backend yang Anda buat. Anda membuat set skala bernama myvmss1, myvmss2, dan myvmss3. Setiap set skala berisi dua instans komputer virtual di tempat Anda menginstal NGINX.
for i in `seq 1 3`; do
if [ $i -eq 1 ]
then
poolName="appGatewayBackendPool"
fi
if [ $i -eq 2 ]
then
poolName="imagesBackendPool"
fi
if [ $i -eq 3 ]
then
poolName="videoBackendPool"
fi
az vmss create \
--name myvmss$i \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username azureuser \
--admin-password Azure123456! \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Memasang NGINX
for i in `seq 1 3`; do
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss$i \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
done
Uji gateway aplikasi
Untuk mendapatkan alamat IP publik application gateway, gunakan tampilkan ip publik jaringan az. Salin alamat IP publik, lalu tempelkan ke bilah alamat browser Anda. Seperti http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
, atau http://40.121.222.19:8080/video/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Ubah URL ke http://<alamat IP>:8080/images/test.html, ganti alamat IP Anda untuk < alamat IP>, dan Anda akan melihat sesuatu seperti contoh berikut:
Ubah URL ke http://<alamat IP> :8080/images/test.html, ganti alamat IP Anda untuk < alamat IP>, dan Anda akan melihat sesuatu seperti contoh berikut.
Membersihkan sumber daya
Jika tidak diperlukan lagi, hapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait.
az group delete --name myResourceGroupAG
Langkah berikutnya
Membuat gateway aplikasi dengan pengalihan berbasis jalur URL