Azure API Management akselerator zona pendaratan

Azure API Management
Azure Application Gateway
Azure Functions
.NET

API telah menjadi semakin menonjol dalam bagaimana perusahaan dan pelanggan mengakses layanan, baik secara internal maupun eksternal. Secara internal, API digunakan untuk mengakses aplikasi lini bisnis, solusi buatan sendiri, dan integrasi pihak ketiga. Secara eksternal, lebih banyak perusahaan terlihat produktif dan memonetisasi API mereka. Dengan mempertimbangkan tren ini, API Management menjadi komponen pusat untuk pendekatan standar dalam mengelola, mengatur, dan menerbitkan API kepada audiens internal dan eksternal.

Dengan bantuan Azure Application Gateway, sekarang dimungkinkan untuk melindungi dan membatasi akses API yang dilayani melalui Azure API Management. Artikel ini menjelaskan solusi di mana Anda dapat mengelola API internal dan eksternal melalui satu instans API Management. Anda dapat mempertahankan postur yang aman agar tidak terekspos langsung melalui internet, tetapi sebaliknya diakses melalui Application Gateway.

Catatan

Arsitektur ini digunakan sebagai fondasi akselerator zona pendaratan Azure API Management dalam Cloud Adoption Framework.

Arsitektur

Diagram yang menunjukkan arsitektur akselerator zona pendaratan API Management.

Diagram arsitektur ini dimulai dengan kotak yang mencakup semua yang mewakili cakupan langganan, zona DNS Privat tempat domain privat akan diselesaikan, dan cakupan nama jaringan virtual APIM-CS VNet. Di atas langganan adalah kotak yang menunjukkan bahwa ini adalah beban kerja lokal. Kotak memiliki ikon server di dalamnya. Pipa menunjukkan koneksi situs-ke-situs, atau Azure ExpressRoute tersambung ke instans API Management di langganan Azure. Tujuh kotak tambahan yang lebih kecil berada di dalam kotak besar yang memperlihatkan langganan Azure. Empat kotak berada di baris atas, dan tiga berada di baris bawah. Setiap kotak individual mewakili subnet terpisah, dengan grup keamanan jaringan terlampir. Dari paling kiri, ada alamat IP publik yang dilampirkan ke Azure Application Gateway di kotak paling kiri di baris atas. Application Gateway juga berada dalam salah satu dari tujuh kotak yang lebih kecil, dengan subnet bernama subnet App GW. Di sebelah kanan adalah kotak lain yang berisi instans API Management, dengan subnet bernama subnet APIM. Di sampingnya adalah kotak ketiga di baris atas, yang berisi titik akhir privat untuk instans Azure Functions di subnet bernama subnet PE. Kotak paling kanan di baris atas adalah subnet backend yang berisi Azure Function Apps, paket Azure App Service untuk fungsi, dan akun penyimpanan yang terkait dengan Aplikasi Fungsi. Di baris bawah, mulai dari kiri, adalah kotak yang berisi Azure Bastion di subnet Bastion. Kotak kedua berisi VM jumbox manajemen di Subnet Jump Box. Kotak terakhir di baris bawah adalah Agen DevOps yang terkandung dalam subnet DevOps. Di kanan bawah gambar, ada tiga sumber daya bersama dengan ikon masing-masing. Dari kiri ke kanan, adalah kotak berikut: brankas kunci, wawasan aplikasi, dan ruang kerja analitik log. Ada dua set alur kerja. Alur kerja pertama ditunjukkan dalam lingkaran hitam, dan alur kerja lainnya ditunjukkan dalam lingkaran biru, yang akan dijelaskan di bagian selanjutnya. Alur kerja hitam menunjukkan akses API yang tersedia secara eksternal. Alur dimulai dari pengguna yang mengakses alamat IP Publik. Panah kemudian menunjuk ke arah Application Gateway, dari Application Gateway ke titik akhir privat, dan dari titik akhir privat ke Aplikasi Fungsi. Alur kerja biru dimulai dari server lokal, dengan panah yang menunjuk ke instans API Management, melalui ikon alur yang menunjukkan koneksi situs ke situs atau melalui ExpressRoute. Sisa alur sama seperti yang dijelaskan di atas: dari API Management ke titik akhir privat, dan dari titik akhir privat ke Azure Function.

Arsitektur ini mengasumsikan bahwa kebijakan diberlakukan dari akselerator zona pendaratan Azure dan bahwa strukturnya didorong ke bawah dari grup manajemen.

Unduh file Visio arsitektur ini.

Alur kerja

Skenario hibrid (lingkaran biru)

Skenario ini memerlukan koneksi situs-ke-situs atau Azure ExpressRoute ke lingkungan lokal Anda.

  1. Aplikasi lokal memerlukan akses ke API internal yang dilayani melalui Azure API Management.
  2. API Management terhubung ke API backend yang dihosting di Azure Functions. Koneksi ini melalui titik akhir privat, yang tersedia melalui paket Azure Functions Premium, dan dihosting di subnetnya sendiri.
  3. Titik akhir privat dengan aman mengakses API internal yang dihosting di Azure Functions.

Skenario Akses Eksternal (lingkaran hitam)

  1. Aplikasi eksternal mengakses alamat IP publik atau FQDN kustom, yang dilampirkan ke Azure Application Gateway.
  2. Application Gateway bertindak sebagai firewall aplikasi web, yang memerlukan sertifikat PFX untuk penghentian SSL.
  3. API Management terhubung ke API backend, yang dihosting di Azure Functions, melalui titik akhir privat. Titik akhir ini tersedia melalui paket Azure Functions Premium dan dihosting di subnetnya sendiri.
  4. Titik akhir privat dengan aman mengakses API yang tersedia secara eksternal yang dihosting di Azure Functions.

Komponen

Arsitektur menggunakan komponen berikut:

  • Azure API Management adalah layanan terkelola yang memungkinkan Anda mengelola layanan di seluruh lingkungan hibrid dan multi-cloud. Manajemen API bertindak sebagai fasad untuk mengabstraksi arsitektur backend, dan memberikan kontrol dan keamanan untuk pengamatan dan konsumsi API untuk pengguna internal dan eksternal.

  • Azure Functions adalah solusi tanpa server yang memungkinkan Anda untuk lebih fokus pada blok kode yang dapat dijalankan dengan manajemen infrastruktur minimal. Functions dapat dihosting dalam berbagai paket hosting, sedangkan arsitektur referensi ini menggunakan paket premium, karena penggunaan titik akhir privat.

  • Azure Application Gateway adalah layanan terkelola yang bertindak sebagai load balancer lapisan 7 dan firewall aplikasi web. Dalam skenario ini, gateway aplikasi melindungi instans APIM internal, yang memungkinkan Anda menggunakan mode internal dan eksternal.

  • Zona DNS PrivatAzure DNS memungkinkan Anda mengelola dan mengatasi nama domain dalam jaringan virtual, tanpa perlu menerapkan solusi DNS kustom. Zona DNS Privat dapat diselaraskan ke satu atau beberapa jaringan virtual, melalui tautan jaringan virtual. Karena Azure Functions diekspos melalui titik akhir privat yang digunakan arsitektur referensi ini, Anda harus menggunakan zona DNS privat.

  • Azure MonitorApplication Insights membantu pengembang mendeteksi anomali, mendiagnosis masalah, dan memahami pola penggunaan. Application Insights menampilkan manajemen dan pemantauan performa aplikasi yang dapat diperluas untuk aplikasi web langsung. Berbagai platform didukung, termasuk .NET, Node.js, Java, dan Python. Ini mendukung aplikasi yang dihosting di Azure, lokal, di lingkungan hibrid, atau di cloud publik lainnya. Application Insights disertakan sebagai bagian dari arsitektur referensi ini, untuk memantau perilaku aplikasi yang disebarkan.

  • Azure MonitorLog Analytics memungkinkan Anda mengedit dan menjalankan kueri log dengan data di Log Azure Monitor, secara opsional dari dalam portal Azure. Pengembang dapat menjalankan kueri sederhana untuk sekumpulan rekaman atau menggunakan Analitik Log untuk melakukan analisis tingkat lanjut. Mereka kemudian dapat memvisualisasikan hasilnya. Analitik Log dikonfigurasi sebagai bagian dari arsitektur referensi ini, untuk menggabungkan semua log pemantauan untuk analisis dan pelaporan lebih lanjut.

  • Azure Virtual Machines adalah sumber daya komputasi yang dapat digunakan untuk menghosting banyak beban kerja yang berbeda. Dalam arsitektur referensi ini, komputer virtual digunakan untuk menyediakan server jumpbox manajemen, serta host untuk agen DevOps atau runner GitHub.

  • Azure Key Vault adalah layanan cloud yang menyimpan dan mengakses rahasia dengan aman, yang berkisar dari kunci API dan kata sandi hingga sertifikat dan kunci kriptografi. Arsitektur referensi ini menggunakan Azure Key Vault untuk menyimpan sertifikat SSL yang digunakan oleh Application Gateway.

  • Azure Bastion adalah platform sebagai layanan yang disediakan dalam jaringan virtual pengembang. Ini menyediakan konektivitas RDP/SSH yang aman ke komputer virtual pengembang melalui TLS, dari portal Azure. Dengan Azure Bastion, komputer virtual tidak lagi memerlukan alamat IP publik untuk terhubung melalui RDP/SSH. Arsitektur referensi ini menggunakan Azure Bastion untuk mengakses agen DevOps atau server runner GitHub atau server jump box manajemen.

Jika Anda menggunakan alat DevOps, seperti Azure DevOps atau GitHub, maka agen atau pelari yang dihosting cloud beroperasi melalui internet publik. Karena manajemen API dalam arsitektur ini diatur ke jaringan internal, Anda harus menggunakan agen DevOps yang memiliki akses ke VNet. Agen DevOps akan membantu Anda menyebarkan kebijakan dan perubahan lain pada API dalam arsitektur Anda. Templat CI/CD ini dapat digunakan untuk memecah proses dan memungkinkan tim pengembangan Anda menyebarkan perubahan, per API. Mereka dieksekusi oleh runner DevOps.

Alternatif

Untuk layanan backend yang disambungkan oleh instans API Management, tersedia beberapa alternatif, selain Azure Functions, yang digunakan dalam implementasi referensi ini:

  • Azure App Service adalah layanan berbasis HTTP yang dikelola sepenuhnya yang membangun, menyebarkan, dan menskalakan aplikasi web. .NET, .NET Core, Java, Ruby, Node.js, PHP, dan Python semuanya didukung. Aplikasi dapat berjalan dan menskalakan di lingkungan berbasis Windows atau Linux.
  • Azure Kubernetes Service menawarkan kluster Kubernetes yang dikelola sepenuhnya untuk pengalaman integrasi berkelanjutan terintegrasi dan pengiriman berkelanjutan (CI/CD), tata kelola, dan keamanan.
  • Azure Logic Apps adalah platform berbasis cloud yang membuat dan menjalankan alur kerja otomatis. Contoh arsitektur referensi dapat ditemukan di integrasi perusahaan Dasar di Azure.
  • Azure Container Apps memungkinkan Anda menjalankan layanan mikro dan aplikasi kontainer di platform tanpa server.

Untuk penyebaran multi-wilayah, pertimbangkan untuk menggunakan Azure Front Door untuk menyediakan akses yang cepat, andal, dan aman antara pengguna Anda dan konten web statis dan dinamis aplikasi Anda.

Untuk melihat contoh tambahan tentang bagaimana Application Gateway dapat melindungi API, lihat Melindungi API dengan Application Gateway dan API Management.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian prinsip panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Keandalan

Keandalan memastikan aplikasi Anda dapat mencapai komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Gambaran umum pilar keandalan.

  • Sebarkan setidaknya dua unit skala API Management yang tersebar di dua zona ketersediaan, per wilayah. Metode ini memaksimalkan ketersediaan dan performa Anda.
  • Peering VNet memberikan performa yang hebat di suatu wilayah, tetapi memiliki batas skalabilitas maksimal 500 jaringan. Jika Anda memerlukan lebih banyak beban kerja untuk terhubung, gunakan desain spoke hub atau Azure vWAN.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disengaja dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran umum pilar keamanan.

  • API Management kebijakan validasi tersedia untuk memvalidasi permintaan dan respons API terhadap skema OpenAPI. Fitur-fitur ini bukan pengganti Web Application Firewall, tetapi dapat memberikan perlindungan tambahan terhadap beberapa ancaman. Menambahkan kebijakan validasi dapat memiliki implikasi performa, jadi kami sarankan Anda menggunakan pengujian beban performa untuk menilai dampaknya pada throughput API.
  • Sebarkan Azure Web Application Firewall (WAF) di depan API Management untuk memberikan perlindungan terhadap eksploitasi dan kerentanan aplikasi web umum.
  • Terapkan nilai bernama dengan rahasia Key Vault untuk melindungi informasi sensitif dalam kebijakan APIM.
  • Gunakan Application Gateway untuk akses eksternal instans APIM internal untuk melindungi instans APIM dan mengaktifkan konektivitas hibrid.
  • Sebarkan gateway API Management di VNet, untuk mendukung konektivitas hibrid dan peningkatan keamanan.
  • Peering VNet memberikan performa yang hebat di suatu wilayah, tetapi memiliki batas skalabilitas maksimal 500 jaringan. Jika Anda memerlukan lebih banyak beban kerja untuk terhubung, gunakan desain spoke hub atau Azure vWAN.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

  • Karena kebutuhan zona ketersediaan dan dukungan jaringan virtual, kami memilih tingkat Premium API Management, mengikuti harga untuk setiap wilayah. Selain itu, dalam beban kerja ini, Azure Functions dihosting pada paket Premium, karena kebutuhan akses VNet.
  • Untuk bukti konsep atau prototipe, kami sarankan Anda menggunakan tingkat API Management lain (seperti Pengembang atau Standar).

Keunggulan operasional

Keunggulan operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Gambaran umum pilar keunggulan operasional.

  • API Management konfigurasi harus direpresentasikan sebagai templat ARM, dan Anda harus merangkul pola pikir infrastruktur sebagai kode.
  • Gunakan proses CI/CD untuk mengelola, membuat versi, dan memperbarui konfigurasi API Management.
  • Buat pemeriksaan kesehatan kustom untuk membantu memvalidasi status instans manajemen API Anda. Gunakan URL /status-0123456789abcdef untuk membuat titik akhir kesehatan umum untuk layanan APIM di gateway aplikasi.
  • Sertifikat yang diperbarui dalam brankas kunci secara otomatis diputar dalam API Management, yang diperbarui dalam waktu 4 jam.
  • Sebarkan setidaknya dua unit skala API Management yang tersebar di dua zona ketersediaan, per wilayah. Metode ini memaksimalkan ketersediaan dan performa.

Menyebarkan skenario ini

Arsitektur ini tersedia di GitHub. Ini berisi semua file infrastruktur sebagai kode yang diperlukan dan instruksi penyebaran.

Kontributor

Artikel ini dikelola oleh Microsoft. Awalnya ditulis oleh kontributor berikut.

Penulis utama:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya

Lihat sumber daya utama ini:

Pelajari selengkapnya tentang layanan utama ini: