Mulai Cepat: Mengarahkan lalu lintas web dengan Azure Application Gateway - Azure CLI

Dalam mulai cepat ini, Anda menggunakan Azure PowerShell untuk membuat gateway aplikasi. Kemudian Anda mengujinya untuk memastikan gateway aplikasi bekerja dengan benar.

Gateway aplikasi mengarahkan lalu lintas web aplikasi ke sumber daya tertentu di kumpulan backend. Anda menetapkan pendengar ke port, membuat aturan, dan menambahkan sumber daya ke kumpulan backend. Demi kesederhanaan, artikel ini menggunakan pengaturan sederhana dengan alamat IP frontend publik, pendengar dasar untuk menghosting satu situs di gateway aplikasi, aturan perutean permintaan dasar, dan dua komputer virtual di kumpulan backend.

application gateway resources

Anda juga dapat menyelesaikan mulai cepat ini menggunakan Microsoft Azure PowerShell atau portal Microsoft Azure.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

  • Artikel 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

Di Azure, Anda mengalokasikan sumber daya terkait ke grup sumber daya. Buat grup sumber daya dengan 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

Agar Azure dapat berkomunikasi antara sumber daya yang Anda buat, maka perlu jaringan virtual. Subnet gateway aplikasi hanya dapat berisi gateway aplikasi. Tak ada sumberdaya lain yang diperbolehkan. Anda dapat membuat subnet baru untuk Application Gateway atau menggunakan subnet yang sudah ada. Dalam contoh ini, Anda membuat dua subnet: satu untuk gateway aplikasi, dan satu lagi untuk server backend. Anda dapat mengonfigurasi IP Ujung Depan dari Application Gateway menjadi Publik atau Privat sesuai kasus penggunaan Anda. Dalam contoh ini, Anda akan memilih alamat IP Ujung Depan Publik.

Catatan

Frontend Application Gateway sekarang mendukung alamat IP tumpukan ganda (Pratinjau Umum). Anda sekarang dapat membuat hingga empat alamat IP frontend: Dua alamat IPv4 (publik dan privat) dan dua alamat IPv6 (publik dan privat).

Untuk membuat jaringan virtual dan subnet, gunakan az network vnet create. Jalankan az network public-ip create untuk membuat alamat IP publik.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.21.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.21.0.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet   \
  --address-prefix 10.21.1.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

Membuat server backend

Backend dapat memiliki NIC, set skala komputer virtual, alamat IP publik, alamat IP internal, nama domain yang sepenuhnya memenuhi syarat (FQDN), dan backend multipenyewa seperti Azure App Service. Dalam contoh ini, Anda membuat dua komputer virtual yang digunakan sebagai server backend untuk gateway aplikasi. Anda juga menginstal NGINX pada komputer virtual untuk menguji gateway aplikasi.

Buat dua komputer virtual

Instal server web NGINX pada mesin virtual untuk memverifikasi gateway aplikasi berhasil dibuat. Anda dapat menggunakan file konfigurasi cloud-init untuk menginstal NGINX dan menjalankan aplikasi Node.js "Halo Dunia" di mesin virtual Linux. Untuk informasi selengkapnya tentang cloud-init, lihat Dukungan cloud-init untuk mesin virtual di Azure.

Di Azure Cloud Shell Anda, salin dan tempel konfigurasi berikut ke dalam file bernama cloud-init.txt. Masukkan editor cloud-init.txt untuk membuat file.

#cloud-config
package_upgrade: true
packages:
  - nginx
  - nodejs
  - npm
write_files:
  - owner: www-data:www-data
  - path: /etc/nginx/sites-available/default
    content: |
      server {
        listen 80;
        location / {
          proxy_pass http://localhost:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
      }
  - owner: azureuser:azureuser
  - path: /home/azureuser/myapp/index.js
    content: |
      var express = require('express')
      var app = express()
      var os = require('os');
      app.get('/', function (req, res) {
        res.send('Hello World from host ' + os.hostname() + '!')
      })
      app.listen(3000, function () {
        console.log('Hello world app listening on port 3000!')
      })
runcmd:
  - service nginx restart
  - cd "/home/azureuser/myapp"
  - npm init
  - npm install express -y
  - nodejs index.js

Buat antarmuka jaringan dengan az network nic create. Untuk membuat mesin virtual, Anda menggunakan az vm create.

for i in `seq 1 2`; do
  az network nic create \
    --resource-group myResourceGroupAG \
    --name myNic$i \
    --vnet-name myVNet \
    --subnet myBackendSubnet
  az vm create \
    --resource-group myResourceGroupAG \
    --name myVM$i \
    --nics myNic$i \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt
done

Membuat application gateway

Membuat gateway aplikasi menggunakanaz network application-gateway create. Saat Anda membuat gateway aplikasi dengan antarmuka tingkat panggilan Azure, Anda menentukan informasi konfigurasi, seperti pengaturan kapasitas, SKU, dan HTTP. Azure kemudian menambahkan alamat IP pribadi antarmuka jaringan sebagai server di kumpulan backend gateway aplikasi.

address1=$(az network nic show --name myNic1 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
address2=$(az network nic show --name myNic2 --resource-group myResourceGroupAG | grep "\"privateIPAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --capacity 2 \
  --sku Standard_v2 \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$address1" "$address2" \
  --priority 100

Diperlukan waktu hingga 30 menit bagi Azure untuk membuat gateway aplikasi. Setelah dibuat, Anda bisa menampilkan pengaturan berikut ini di bagian Pengaturan dari halaman Gateway aplikasi:

  • appGatewayBackendPool: Terletak di halaman kumpulan Backend. Ini menentukan kumpulan backend yang diperlukan.
  • appGatewayBackendHttpSettings: Terletak di halaman Pengaturan HTTP. Ini menentukan bahwa gateway aplikasi menggunakan port 80 dan protokol HTTP untuk komunikasi.
  • appGatewayHttpListener: berlokasi di Halaman pendengar. Ini menentukan pendengar default yang terkait dengan appGatewayBackendPool.
  • appGatewayFrontendIP: Terletak di halaman konfigurasi IP Frontend. Ini menetapkan myAGPublicIPAddress ke appGatewayHttpListener.
  • aturan1: Terletak di halaman Aturan. Ini menentukan aturan perutean default yang terkait dengan appGatewayHttpListener .

Uji gateway aplikasi

Meskipun Azure tidak memerlukan server web NGINX untuk membuat gateway aplikasi, Anda memasangnya di panduan mulai cepat ini untuk memverifikasi apakah Azure berhasil membuat gateway aplikasi. Untuk mendapatkan alamat IP publik gateway aplikasi yang baru, gunakan az network public-ip show.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Salin dan tempel alamat IP publik ke bilah alamat browser Anda. ​ Test application gateway

Ketika Anda merefresh browser, Anda akan melihat nama komputer virtual yang kedua. Ini menunjukkan gateway aplikasi berhasil dibuat dan dapat terhubung dengan backend.

Membersihkan sumber daya

Jika Anda tidak memerlukan lagi sumber daya yang Anda buat dengan gateway aplikasi, gunakan az group delete perintah hapus grup sumber daya tersebut. Saat Anda menghapus grup sumber daya, Anda juga menghapus gateway aplikasi dan semua sumber daya terkait.

az group delete --name myResourceGroupAG

Langkah berikutnya