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.

URL routing example

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

  • 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

Test base URL in application gateway

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:

Test images URL in application gateway

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.

Test video URL in application gateway

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