Menggunakan Gateway API sebagai Titik Masuk Tunggal untuk Aplikasi Web dan API

Terjemahan artikel ini disiapkan khusus untuk siswa dari kursus "Arsitek Beban Tinggi" .




pengantar


Manfaat AWS, seperti ketersediaan tinggi, skalabilitas, dan ketahanan, telah membuktikan nilainya bagi penyedia SaaS (Perangkat Lunak sebagai Layanan). Dengan modernisasi aplikasi SaaS, AWS membantu dengan lancar beralih ke arsitektur layanan mikro dengan menyediakan akses API ke aplikasi eksternal.

Alat manajemen API seperti Amazon API Gateway adalah pilihan alami untuk menyediakan API eksternal yang aman dan skalabel. Namun, ketika memindahkan aplikasi mereka ke cloud, penyedia SaaS sering menghadapi kebutuhan untuk dengan cepat menyebarkan layanan mereka ke beberapa klien yang berbeda. Dan, tentu saja, dengan persyaratan khusus masing-masing.

Gateway API membantu menciptakan arsitektur layanan mikro multi-tenant. Dalam arsitektur seperti itu, satu contoh dari layanan microser digunakan untuk melayani klien yang berbeda, yang memungkinkan untuk menggunakan sumber daya lebih optimal dan mengoptimalkan biaya. Dalam konfigurasi ini, untuk melayani pelanggan mereka, penyedia memerlukan dukungan domain "label putih", serta kemampuan untuk mengidentifikasi domain klien untuk mengikat logika bisnis tertentu ke klien tertentu di backend.

Artikel ini berbicara tentang arsitektur referensi, yang memungkinkan Anda untuk menggunakan Gateway API sebagai titik masuk tunggal untuk aplikasi web dan layanan microser berdasarkan API dengan beberapa klien eksternal, menggunakan subdomain yang berbeda untuk masing-masingnya.

Amazon API Gateway - Titik Masuk Tunggal


Membangun arsitektur menggunakan API Gateway tunggal untuk beberapa aplikasi web dan layanan microsoft merupakan faktor penting untuk penggunaan kembali komponen dan optimalisasi biaya.

Amazon API Gateway menyediakan solusi yang sangat skalabel untuk membuat dan menerbitkan RESTful APIs dan WebSocket APIs. Anda dapat memilih berbagai teknologi untuk backend: fitur AWS Lambda , Fungsi Langkah AWS, atau hubungi titik akhir HTTP yang dihosting di AWS Elastic Beanstalk , Amazon EC2, atau di luar AWS.

API Gateway mengambil tugas-tugas manajemen API yang khas seperti keamanan, caching, pembatasan dan pemantauan. Meskipun tujuan utamanya adalah untuk membangun lapisan abstrak di atas API internal Anda dan layanan mikro, ia juga dapat menyederhanakan aplikasi backend Anda atau memberikan akses ke halaman web statis dan dokumen yang disimpan dalam ember Amazon S3 .

Selain yang di atas, fungsi API Gateway kunci berikut membantu membuat arsitektur yang dijelaskan di sini.

1. Dukungan untuk nama domain khusus:


Saat menggunakan API menggunakan Gateway API, nama domain default titik akhir API tidak nyaman bagi pengguna akhir:

https://api-id.execute-api.region.amazonaws.com/stage

  • api-id Gateway API dibuat
  • region Itu ditunjukkan oleh Anda saat membuat API;
  • stage Ditentukan oleh Anda saat menggunakan API.

Titik akhir API default mungkin sulit untuk dikerjakan. Namun berkat integrasi dengan AWS Certificate Manager, yang memungkinkan Anda menguji subdomain berdasarkan sertifikat SSL, Anda dapat memberi pengguna API Anda lebih mudah dan URL yang lebih intuitif, seperti customer1.example.com,. Gateway API memungkinkan Anda untuk memetakan beberapa subdomain ke titik akhir API tunggal, yang memungkinkan Anda untuk menggunakan nama "label putih" sesuai dengan persyaratan klien eksternal.

2. Modifikasi permintaan / tanggapan API


Gateway API memungkinkan Anda untuk mengonfigurasi pemrosesan terpisah untuk setiap bagian dari alamat titik akhir API. Karena hal ini, dimungkinkan untuk merutekan permintaan API ke masing-masing titik akhir backend, dan pada saat yang sama, mengubah header dalam permintaan / respons untuk pemrosesan permintaan API yang lebih fleksibel.

Kelebihan arsitektur seperti itu


Fitur yang dijelaskan dalam artikel ini ditunjukkan pada diagram di bawah ini.



Berikut adalah arsitektur untuk penyedia SaaS khas yang menawarkan layanannya kepada organisasi lain dan harus mendukung domain "label putih" untuk infrastruktur web dan API. Arsitektur serupa dicapai dengan menggunakan langkah-langkah berikut:

  1. Domain example.comdapat didaftarkan dengan pendaftar domain, tetapi Anda dapat membuat subdomain melalui CNAME-record, misalnya customer1.example.com, customer2.example.com. Ini dapat dilakukan di AWS menggunakan layanan Amazon Route 53 atau melalui penyedia DNS pihak ketiga.
  2. AWS Certificate Manager (ACM) example.com *.example.com. ACM-, API Gateway.
  3. , ACM, API. API . : customer1.example.com customer2.example.com.

: CNAME- customer1 customer2 DNS, API Gateway.



4. API Endpoint


  • /service1 β€” integration type HTTP, ELB, ECS
  • /service2 - Integrasi jenis HTTP, merutekan lalu lintas ke titik akhir aplikasi web ELB yang dihosting di kluster EC2
  • /docs - jenis integrasi AWS S3, untuk dokumen statis



5. Gateway API dapat memproses nama domain yang sepenuhnya memenuhi syarat (FQDN) di URL dan memetakannya ke header atau parameter khusus dalam string kueri untuk dikirim ke backend yang sesuai.

Sebagai contoh, kita dapat membuat header β€œPelanggan” khusus untuk mengarahkan ulang pelanggan1 atau pelanggan2 ke aplikasi backend khusus pelanggan. Ini dilakukan dengan menggunakan parameter Permintaan Metode dan Permintaan Integrasi di API Gateway.

Total


Seperti yang Anda lihat, ini hanyalah salah satu contoh penggunaan Gateway API sebagai titik masuk tunggal untuk layanan mikro berbasis API dan sumber daya aplikasi web statis. Gateway API memungkinkan Anda untuk menggunakan infrastruktur lebih efisien tanpa kehilangan skala sembari menambah beban pada aplikasi Anda. Untuk informasi lebih lanjut tentang bekerja dengan Gateway API dan Route 53 DNS, lihat dokumentasi AWS dan gunakan fitur ini untuk membuat arsitektur yang memenuhi persyaratan Anda.

All Articles