Sebarkan instans Azure API Management ke beberapa wilayah Azure

BERLAKU UNTUK: Premium

Azure API Management mendukung penyebaran multi-wilayah, yang memungkinkan penerbit API menambahkan gateway API regional ke instans API Management yang ada di satu atau beberapa wilayah Azure yang didukung. Penyebaran multi-wilayah membantu mengurangi latensi permintaan yang dirasakan oleh konsumen API yang didistribusikan secara geografis dan meningkatkan ketersediaan layanan jika satu wilayah offline.

Saat menambahkan wilayah, Anda mengonfigurasi:

Penting

Fitur untuk mengaktifkan penyimpanan data pelanggan dalam satu wilayah saat ini hanya tersedia di Kawasan Asia Tenggara (Singapura) dari Geo Asia Pasifik. Untuk semua wilayah lain, data pelanggan disimpan di Geo.

Tentang penyebaran multi-wilayah

  • Hanya komponen gateway instans API Management Anda yang direplikasi ke beberapa wilayah. Bidang manajemen instans dan portal pengembang tetap dihosting hanya di wilayah utama , wilayah tempat Anda awalnya menyebarkan layanan.

  • Jika Anda ingin mengonfigurasi lokasi sekunder untuk instans API Management Anda saat disebarkan (disuntikkan) di jaringan virtual, wilayah VNet dan subnet harus cocok dengan lokasi sekunder yang Anda konfigurasi. Jika Anda menambahkan, menghapus, atau mengaktifkan zona ketersediaan di wilayah utama, atau jika Anda mengubah subnet wilayah utama, alamat VIP instans API Management Anda akan berubah. Untuk informasi selengkapnya, lihat Alamat IP layanan Azure API Management. Namun, jika Anda menambahkan wilayah sekunder, VIP wilayah utama tidak akan berubah karena setiap wilayah memiliki VIP privatnya sendiri.

  • Konfigurasi gateway seperti API dan definisi kebijakan disinkronkan secara teratur antara wilayah utama dan sekunder yang Anda tambahkan. Penyebaran pembaruan ke gateway regional biasanya memakan waktu kurang dari 10 detik. Penyebaran multi-wilayah menyediakan ketersediaan gateway API di lebih dari satu wilayah dan menyediakan ketersediaan layanan jika satu wilayah offline.

  • Ketika API Management menerima permintaan HTTP publik ke titik akhir manajer lalu lintas (berlaku untuk mode VNet eksternal dan api Management non-jaringan), lalu lintas dirutekan ke gateway regional berdasarkan latensi terendah, yang dapat mengurangi latensi yang dialami oleh konsumen API yang didistribusikan secara geografis.

  • Gateway di setiap wilayah (termasuk wilayah utama) memiliki nama DNS regional yang mengikuti pola https://<service-name>-<region>-01.regional.azure-api.netURL , misalnya https://contoso-westus2-01.regional.azure-api.net.

  • Jika suatu wilayah menjadi offline, permintaan API secara otomatis dirutekan di sekitar wilayah yang gagal ke gateway terdekat berikutnya.

  • Jika wilayah utama offline, bidang manajemen API Management dan portal pengembang menjadi tidak tersedia, tetapi wilayah sekunder terus melayani permintaan API menggunakan konfigurasi gateway terbaru.

Prasyarat

  • Jika Anda belum membuat instans layanan API Management, lihat Membuat instans layanan API Management. Pilih tingkat layanan Premium.
  • Jika instans API Management Anda disebarkan di jaringan virtual, pastikan Anda menyiapkan jaringan virtual, subnet, dan alamat IP publik di lokasi yang anda rencanakan untuk ditambahkan, dan dalam langganan yang sama. Lihat prasyarat jaringan virtual.

Menyebarkan layanan API Management ke wilayah tambahan

  1. Di portal Azure, navigasikan ke layanan API Management Anda dan pilih Lokasi dari menu sebelah kiri.
  2. Pilih + Tambahkan di bilah atas.
  3. Pilih lokasi yang ditambahkan dari daftar dropdown.
  4. Pilih jumlah skala Unit di lokasi.
  5. Secara opsional pilih satu atau beberapa Zona ketersediaan.
  6. Jika instans API Management diterapkan di jaringan virtual, konfigurasikan setelan jaringan virtual di lokasi. Pilih jaringan virtual, subnet, dan alamat IP publik yang ada yang tersedia di lokasi.
  7. Pilih Tambahkan untuk mengonfirmasi.
  8. Ulangi proses ini hingga Anda mengonfigurasi semua lokasi.
  9. Pilih Simpan di bilah atas untuk memulai proses penyebaran.

Menghapus wilayah layanan API Management

  1. Di portal Azure, navigasikan ke layanan API Management Anda dan pilih Lokasi dari menu sebelah kiri.
  2. Untuk lokasi yang ingin Anda hapus, pilih menu konteks menggunakan tombol ... di ujung kanan tabel. Pilih Hapus.
  3. Konfirmasi penghapusan dan pilih Simpan untuk menerapkan perubahan.

Merutekan panggilan API ke layanan backend regional

Secara default, setiap API merutekan permintaan ke satu URL layanan backend. Bahkan jika Anda telah mengonfigurasi gateway Azure API Management di berbagai wilayah, gateway API masih akan meneruskan permintaan ke layanan backend yang sama, yang hanya disebarkan di satu wilayah. Dalam hal ini, perolehan performa hanya akan berasal dari respons yang di-cache dalam Azure API Management di wilayah khusus untuk permintaan; menghubungi backend di seluruh dunia mungkin masih menyebabkan latensi tinggi.

Untuk memanfaatkan distribusi geografis sistem Anda, Anda harus memiliki layanan backend yang disebarkan di wilayah yang sama dengan instans Azure API Management. Kemudian, dengan menggunakan kebijakan dan properti @(context.Deployment.Region), Anda dapat merutekan lalu lintas ke instans lokal dari backend Anda.

  1. Navigasi ke instans Azure API Management Anda dan pilih API dari menu sebelah kiri.

  2. Pilih API yang Anda inginkan.

  3. Pilih Editor kode dari menu dropdown panah di pemrosesan Masuk.

    editor kode API

  4. Gunakan set-backend yang dikombinasikan dengan kebijakan bersyarat choose untuk membuat kebijakan perutean yang tepat di bagian <inbound> </inbound> dari file.

    Misalnya, file XML berikut akan berfungsi untuk wilayah US Barat dan Asia Timur:

    <policies>
        <inbound>
            <base />
            <choose>
                <when condition="@("West US".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
                    <set-backend-service base-url="http://contoso-backend-us.com/" />
                </when>
                <when condition="@("East Asia".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
                    <set-backend-service base-url="http://contoso-backend-asia.com/" />
                </when>
                <otherwise>
                    <set-backend-service base-url="http://contoso-backend-other.com/" />
                </otherwise>
            </choose>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

Menggunakan Traffic Manager untuk perutean ke backend regional

Anda juga dapat mengarahkan layanan backend Anda dengan Azure Traffic Manager, mengarahkan panggilan API ke Traffic Manager, dan membiarkannya menyelesaikan perutean secara otomatis.

  • Untuk distribusi lalu lintas dan failover, sebaiknya gunakan Traffic Manager dengan metode perutean Geografis. Kami tidak merekomendasikan penggunaan Traffic Manager dengan metode perutean Tertimbang dengan backend API Management.

  • Untuk kontrol lalu lintas selama operasi pemeliharaan, sebaiknya gunakan metode perutean Prioritas.

Menggunakan perutean kustom ke gateway regional API Management

API Management merutekan permintaan ke gateway regional berdasarkan latensi terendah. Meskipun tidak dimungkinkan untuk mengambil alih pengaturan ini di API Management, Anda dapat menggunakan Traffic Manager Anda sendiri dengan aturan perutean kustom.

  1. Buat Azure Traffic Manager Anda sendiri.
  2. Jika Anda menggunakan domain kustom, gunakan dengan Traffic Manager alih-alih layanan API Management.
  3. Konfigurasi titik akhir regional API Management di Traffic Manager. Titik akhir regional mengikuti pola URL https://<service-name>-<region>-01.regional.azure-api.net, misalnya https://contoso-westus2-01.regional.azure-api.net.
  4. Konfigurasi titik akhir status regional API Management di Traffic Manager. Titik akhir status regional mengikuti pola URL https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef, misalnya https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef.
  5. Tentukan metode perutean dari Traffic Manager.

Menonaktifkan perutean ke gateway regional

Dalam beberapa kondisi, Anda mungkin perlu menonaktifkan perutean untuk sementara ke salah satu gateway regional. Contohnya:

  • Setelah menambahkan wilayah baru, untuk menonaktifkannya saat Anda mengonfigurasi dan menguji layanan backend regional
  • Selama pemeliharaan backend reguler di suatu wilayah
  • Untuk mengalihkan lalu lintas ke wilayah lain selama latihan pemulihan bencana terencana yang mensimulasikan wilayah yang tidak tersedia, atau selama kegagalan regional

Untuk menonaktifkan perutean ke gateway regional di instans API Management Anda, perbarui nilai properti gateway disableGateway ke true. Anda dapat mengatur nilai menggunakan rest API Buat atau perbarui layanan , perintah az apim update di Azure CLI, cmdlet Azure PowerShell set-azapimanagement , atau alat Azure lainnya.

Catatan

Anda hanya dapat menonaktifkan perutean ke gateway regional saat menggunakan perutean default API Management, bukan solusi perutean kustom.

Untuk menonaktifkan gateway regional menggunakan Azure CLI:

  1. Gunakan perintah az apim show untuk menampilkan lokasi, status gateway, dan URL regional yang dikonfigurasi untuk instans API Management.

    az apim show --name contoso --resource-group apim-hello-world-resource \
        --query "additionalLocations[].{Location:location,Disabled:disableGateway,Url:gatewayRegionalUrl}" \
        --output table
    

    Contoh output:

    Location    Disabled    Url
    ----------  ----------  ------------------------------------------------------------
    West US 2   True        https://contoso-westus2-01.regional.azure-api.net
    West Europe True        https://contoso-westeurope-01.regional.azure-api.net
    
  2. Gunakan perintah az apim update untuk menonaktifkan gateway di lokasi yang tersedia, seperti US Barat 2.

    az apim update --name contoso --resource-group apim-hello-world-resource \
    --set additionalLocations[location="West US 2"].disableGateway=true
    

    Pembaruan mungkin memakan waktu beberapa menit.

  3. Verifikasi bahwa lalu lintas yang diarahkan ke URL gateway regional dialihkan ke wilayah lain.

Untuk memulihkan perutean ke gateway regional, atur nilai disableGateway ke false.

Jaringan virtual

Bagian ini memberikan pertimbangan untuk penyebaran multi-wilayah saat instans API Management disuntikkan dalam jaringan virtual.

  • Konfigurasikan setiap jaringan regional secara independen. Persyaratan konektivitas seperti aturan kelompok keamanan jaringan yang diperlukan untuk jaringan virtual di wilayah tambahan umumnya sama dengan yang untuk jaringan di wilayah utama.
  • Jaringan virtual di berbagai wilayah tidak perlu di-peering.

Penting

Saat dikonfigurasi dalam mode VNet internal, setiap gateway regional juga harus memiliki konektivitas keluar pada port 1443 ke database Azure SQL yang dikonfigurasi untuk instans API Management Anda, yang hanya berada di wilayah utama . Pastikan Anda mengizinkan konektivitas ke FQDN atau alamat IP database Azure SQL ini dalam rute atau aturan firewall apa pun yang Anda konfigurasi untuk jaringan di wilayah sekunder Anda; tag layanan Azure SQL tidak dapat digunakan dalam skenario ini. Untuk menemukan nama database Azure SQL di wilayah utama, buka >halaman Status jaringan instans API Management Anda di portal.

Alamat IP

  • Alamat IP virtual publik dibuat di setiap wilayah yang ditambahkan dengan jaringan virtual. Untuk jaringan virtual dalam mode eksternal atau mode internal, alamat IP publik ini diperlukan untuk lalu lintas manajemen pada port 3443.

    • Mode VNet eksternal - Alamat IP publik juga diperlukan untuk merutekan lalu lintas HTTP publik ke gateway API.

    • Mode VNet internal - Alamat IP privat juga dibuat di setiap wilayah yang ditambahkan dengan jaringan virtual. Gunakan alamat ini untuk terhubung dalam jaringan ke titik akhir API Management di wilayah utama dan sekunder.

Perutean

  • Mode VNet eksternal - Perutean lalu lintas HTTP publik ke gateway regional ditangani secara otomatis, dengan cara yang sama seperti untuk instans API Management non-jaringan.

  • Mode VNet internal - Lalu lintas HTTP privat tidak dirutekan atau diseimbangkan beban ke gateway regional secara default. Pengguna memiliki perutean dan bertanggung jawab untuk membawa solusi mereka sendiri untuk mengelola perutean dan penyeimbangan beban privat di beberapa wilayah. Contoh solusi termasuk Azure Application Gateway dan Azure Traffic Manager.

Langkah berikutnya