Bagikan melalui


Menyebarkan 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:

  • Jumlah unit skala yang akan ditampung oleh wilayah tersebut.

  • Zona ketersediaan, jika wilayah tersebut mendukungnya. Secara default, API Management secara otomatis mengonfigurasi zona ketersediaan untuk wilayah yang ditambahkan, yang direkomendasikan. Anda juga dapat mengonfigurasi zona ketersediaan secara manual untuk wilayah yang ditambahkan.

  • Pengaturan jaringan virtual di wilayah yang ditambahkan, jika jaringan dikonfigurasi di wilayah atau wilayah yang ada.

Penting

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

Penting

Perubahan pada infrastruktur layanan API Management Anda (seperti mengonfigurasi domain kustom, menambahkan sertifikat CA, penskalaan, konfigurasi jaringan virtual, perubahan zona ketersediaan, dan penambahan wilayah) dapat memakan waktu 15 menit atau lebih lama untuk diselesaikan, tergantung pada tingkat layanan dan ukuran penyebaran. Harapkan waktu pemrosesan yang lebih lama dari suatu instans dengan jumlah unit skala yang lebih besar atau konfigurasi multi-wilayah. Perubahan bergulir pada API Management dijalankan dengan hati-hati untuk mempertahankan kapasitas dan ketersediaan.

Saat layanan diperbarui, perubahan infrastruktur layanan lainnya tidak dapat dilakukan. Namun, Anda dapat mengonfigurasi API, produk, kebijakan, dan pengaturan pengguna. Layanan ini tidak akan mengalami waktu henti gateway, dan API Management akan terus melayani permintaan API tanpa gangguan (kecuali di tingkat Pengembang).

Tentang penyebaran multi-daerah

  • Hanya komponen gateway dari instans API Management Anda yang diduplikasi 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. Dalam mode VNet internal, pelanggan harus mengonfigurasi solusi mereka sendiri untuk merutekan dan menyeimbangkan beban lalu lintas di seluruh gateway regional. Untuk detailnya, lihat Pertimbangan jaringan.

  • 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 dialihkan dari wilayah yang mengalami kegagalan 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.

  • Jika dikonfigurasi, kebijakan pembatasan laju dan pembatasan laju-berdasarkan-kunci menghitung panggilan secara terpisah di setiap gateway regional dalam penyebaran. Kebijakan tidak menggabungkan semua data panggilan untuk instance tersebut. Demikian pula, kebijakan batas token azure-openai dan llm-token-limit menghitung penggunaan token secara terpisah di setiap gateway regional dalam penyebaran.

Prasyarat

Menyebarkan layanan API Management ke wilayah tambahan

  1. Di portal Microsoft 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 Unit skala di lokasi.
  5. Jika wilayah mendukung Zona ketersediaan, biarkan Pengaturan otomatis (disarankan), atau pilih satu atau beberapa zona secara opsional. Jika Anda memilih zona tertentu, jumlah unit yang Anda pilih harus didistribusikan secara merata di seluruh zona ketersediaan. Misalnya, jika Anda memilih tiga unit, Anda harus memilih tiga zona sehingga setiap zona menghosting satu unit.
  6. Jika instans API Management disebarkan di jaringan virtual, konfigurasikan pengaturan jaringan virtual di lokasi, termasuk jaringan virtual, subnet, dan alamat IP publik.
  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 Microsoft 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 mengonfigurasi gateway API Management di berbagai wilayah, gateway API masih meneruskan permintaan ke layanan backend yang sama, yang hanya disebarkan di satu wilayah. Dalam hal ini, peningkatan performa hanya berasal dari respons yang di-cache dalam 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 menyebarkan layanan backend di wilayah yang sama dengan instans API Management. Kemudian, dengan menggunakan kebijakan dan properti @(context.Deployment.Region), Anda dapat mengarahkan lalu lintas ke instans lokal "backend" Anda.

  1. Buka instans API Management Anda dan pilih API dari menu sebelah kiri.

  2. Pilih API yang Anda inginkan.

  3. Pada tab Desain , di bagian Pemrosesan masuk , pilih Editor kode.

    Cuplikan layar yang menyoroti editor kode API di tab desain.

  4. Gunakan set-backend digabungkan dengan kebijakan kondisional choose untuk menyusun kebijakan perutean yang tepat di bagian dari file <inbound> </inbound>.

    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>
    

Gunakan Traffic Manager untuk merutekan ke backend regional

Anda juga dapat memajukan 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, kami merekomendasikan menggunakan 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.

Gunakan perutean kustom untuk 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 Traffic Manager Anda sendiri.
  2. Jika Anda menggunakan domain kustom, gunakan dengan Traffic Manager alih-alih layanan API Management.
  3. Konfigurasikan titik akhir regional API Management di Traffic Manager. Titik akhir regional mengikuti pola URL , https://<service-name>-<region>-01.regional.azure-api.netmisalnya https://contoso-westus2-01.regional.azure-api.net.
  4. Konfigurasikan 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-0123456789abcdefmisalnya https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef.
  5. Tentukan metode perutean dari Traffic Manager.

Menonaktifkan perutean ke gerbang regional

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

  • Setelah Anda 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, ubah nilai properti gateway disableGateway menjadi true. Anda dapat mengatur nilai dengan menggunakan REST API buat atau perbarui layanan, perintah az apim update di Azure CLI, cmdlet Azure PowerShell set-azapimanagement, dan beberapa alat Azure lainnya.

Penting

  • Anda hanya dapat mengatur properti disableGateway untuk menonaktifkan perutean ke gateway regional saat Anda menggunakan perutean default di API Management, bukan solusi perutean khusus.
  • Anda tidak dapat mengkonfigurasi properti disableGateway untuk menonaktifkan perutean ke gateway regional ketika instans API Management disebarkan dalam jaringan virtual dengan mode internal. Dalam hal ini, Anda harus mengelola perutean dan penyeimbangan beban di beberapa wilayah sendiri.

Untuk menonaktifkan gateway regional dengan 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 Wilayah Barat AS 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. Pastikan bahwa lalu lintas yang menuju URL gateway regional dirutekan 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 persyaratan untuk jaringan di wilayah utama.
  • Jaringan virtual di berbagai region tidak perlu dihubungkan satu sama lain.

Penting

Saat Anda mengonfigurasi instans API Management untuk menggunakan mode jaringan virtual internal, setiap gateway regional juga harus memiliki konektivitas keluar pada port 1433 ke database Azure SQL yang dikonfigurasi untuk instans API Management Anda, yang hanya ada di wilayah utama . Pastikan Anda mengizinkan konektivitas ke nama domain yang sepenuhnya memenuhi syarat (FQDN) atau alamat IP database Azure SQL ini dalam rute atau aturan firewall apa pun yang Anda konfigurasi untuk jaringan di wilayah sekunder Anda; titik akhir layanan Azure SQL tidak dapat digunakan dalam skenario ini. Untuk menemukan nama database Azure SQL di wilayah utama, buka > halamanStatus 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 digunakan 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.

Pengaturan Rute

  • 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 menyediakan solusi mereka sendiri untuk mengelola perutean dan penyeimbangan beban secara privat di beberapa wilayah.