Alıştırma - Öncelikli yönlendirmeyi kullanarak otomatik yük devretmeyi etkinleştirme

Tamamlandı

Müzik akışı uygulamanızın batı Birleşik Devletler ve batı Avrupa'daki kullanıcıların eşit dağılımına sahip olduğunu varsayalım. Bir bölgede uygulamanın yük devretme sürümünün bulunmasını istiyorsunuz.

Bu alıştırma için kullandığımız örnek uygulama, çalıştığı bölgeyi görüntüler. İki örnekten biri daha yüksek önceliğe sahip ve birincil uç nokta. Diğer örnek daha düşük önceliğe sahip ve yük devretme uç noktası. Birincil uç noktayı çevrimdışı duruma getirdiğimizde trafiğin tamamı otomatik olarak yük devretme uç noktasına yönlendirilir.

Bu alıştırmada Traffic Manager'ı birincil olarak Birleşik Devletler uç noktasını kullanacak ve herhangi bir hata oluşması durumunda Avrupa uç noktasına yük devredecek şekilde ayarlayacaksınız.

Yeni bir Traffic Manager profili oluşturma

  1. Cloud Shell'de aşağıdaki komutu çalıştırarak yeni bir Traffic Manager profili oluşturun:

    az network traffic-manager profile create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name TM-MusicStream-Priority \
        --routing-method Priority \
        --unique-dns-name TM-MusicStream-Priority-$RANDOM
    

    Komutunda şu parametreleri kullanıyorsunuz:

    • --routing-method Priority: Öncelik yönlendirme yöntemini kullanarak Traffic Manager profilini oluşturur.
    • --unique-dns-name: Genel olarak benzersiz etki alanı adını <unique-dns-name>.trafficmanager.netoluşturur. Adın benzersiz olduğundan emin olmak için $RANDOM Bash işleviyle rastgele bir tam sayı döndürüyoruz.

Web uygulamalarını dağıtma

  1. Bir Resource Manager şablonu dağıtmak için aşağıdaki komutu çalıştırın. Şablon, biri Batı Avrupa bölgesinde, biri Batı ABD 2 bölgesinde iki sunucu oluşturur. Sabırlı olun çünkü dağıtım birkaç dakika sürebilir.

    az deployment group create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --template-uri  https://raw.githubusercontent.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager/master/azuredeploy.json \
        --parameters password="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
    

Uç noktaları Traffic Manager'a ekleme

  1. Web uygulamaları artık sanal makinelerde çalışmaktadır. Sanal makinelerin genel IP adresi kaynaklarını Traffic Manager profiline uç nokta olarak eklemek için aşağıdaki komutları çalıştırın:

    WestId=$(az network public-ip show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name westus2-vm-nic-pip \
        --query id \
        --output tsv)
    
    az network traffic-manager endpoint create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --name "Primary-WestUS" \
        --type azureEndpoints \
        --priority 1 \
        --target-resource-id $WestId
    
    WestId=$(az network public-ip show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name westeurope-vm-nic-pip \
        --query id \
        --output tsv)
    
    az network traffic-manager endpoint create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --name "Failover-WestEurope" \
        --type azureEndpoints \
        --priority 2 \
        --target-resource-id $WestId
    

    Kod her iki sanal makineden kaynak kimliklerini alır. Kod daha sonra kimlikleri kullanarak bunları Traffic Manager profiline uç nokta olarak ekler. Kod, --priority bayrağını kullanarak Batı ABD uygulamasını en yüksek öncelikli uygulama olarak belirler.

  2. Şimdi yapılandırılan uç noktalara bir göz atalım. Şu komutu çalıştırın:

    az network traffic-manager endpoint list \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --output table
    

Uygulamayı test etme

  1. Şimdi web uygulamalarımız ve Traffic Manager profilimizle ilgili DNS kayıtlarına bakalım. Oluşturduğumuz her kaynağın IP adreslerini görüntülemek için aşağıdaki komutları çalıştırın.

  2. Batı ABD 2 web uygulamasının adresini alın:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  3. Batı Avrupa web uygulamasının adresini alın:

    nslookup $(az network public-ip show \
            --resource-group "<rgn>[Sandbox resource group]</rgn>" \
            --name westeurope-vm-nic-pip \
            --query dnsSettings.fqdn \
            --output tsv)
    
  4. Traffic Manager profilinin adresini alın:

    # Retrieve the address for the Traffic Manager profile
    nslookup $(az network traffic-manager profile show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name TM-MusicStream-Priority \
                --query dnsConfig.fqdn \
                --output tsv)
    

    Traffic Manager profilinin adresi, westus2-vm sanal makinesine atanan westus2-vm-nic-pip genel IP’sinin IP adresi ile eşleşmelidir.

  5. Traffic Manager profilinin tam etki alanı adına (FQDN) gitmek için aşağıdaki komutu çalıştırın. İsteğiniz, en yüksek öncelikle yanıt veren uç noktaya yönlendirilir.

    echo http://$(az network traffic-manager profile show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name TM-MusicStream-Priority \
        --query dnsConfig.fqdn \
        --output tsv)
    

    Kod, FQDN değerini Cloud Shell'de yazdırır. Yeni bir tarayıcı penceresi veya sekmesi açmak için FQDN'yi seçin.

  6. Uygulamanın çalıştığını ve sayfanın alt kısmında gösterilen konumun Batı ABD 2 olduğunu doğrulayın:

    Screenshot of the running West US web app.

  7. Birincil uç noktayı devre dışı bırakmak için aşağıdaki komutu çalıştırın:

    az network traffic-manager endpoint update \
        --resource-group "<rgn>[Sandbox resource group]</rgn>"  \
        --name "Primary-WestUS" \
        --profile-name TM-MusicStream-Priority \
        --type azureEndpoints \
        --endpoint-status Disabled
    
  8. Şimdi web uygulamalarımız ve Traffic Manager profilimizle ilgili DNS kayıtlarına yeniden bakalım.

  9. Batı ABD 2 web uygulamasının adresini alın:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  10. Batı Avrupa web uygulamasının adresini alın.:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westeurope-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  11. Traffic Manager profilinin adresini alın:

    nslookup $(az network traffic-manager profile show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name TM-MusicStream-Priority \
                --query dnsConfig.fqdn \
                --output tsv)
    

    Traffic Manager profilinin adresi artık Batı Avrupa web uygulamasıyla eşleşmelidir.

  12. Web sayfasını yenileyerek uygulamayı tarayıcınızdan tekrar test edin. Traffic Manager, trafiği otomatik olarak Batı Avrupa uç noktasına yönlendirmelidir. Tarayıcınıza bağlı olarak, yerel olarak önbelleğe alınmış olan adresin süresinin dolması birkaç dakika sürebilir. Siteyi gizli pencerede açarak önbelleği aşabilir ve değişikliği anında görebilirsiniz.

    Screenshot of the running West Europe web app.