Model Deployment API Gateway
Tentang komponen API
API yang ditentukan di API Gateway terdiri dari dua komponen utama:
Konfigurasi API: Konfigurasi API yang dibuat saat Anda mengupload definisi API. Anda membuat definisi API sebagai spesifikasi OpenAPI. Jika API Anda mengelola layanan gRPC di Cloud Run, Anda dapat menentukan API dengan definisi dan konfigurasi layanan gRPC.
Setiap kali Anda mengupload definisi API, API Gateway akan membuat konfigurasi API baru. Artinya, Anda dapat membuat konfigurasi API, tetapi tidak dapat mengubahnya nanti. Jika Anda mengedit definisi API di spesifikasi OpenAPI atau definisi layanan gRPC nanti, lalu mengupload definisi API yang telah diedit, Anda akan membuat konfigurasi API baru.
Gateway: Proxy berperforma tinggi dan skalabel berbasis Envoy yang menghosting konfigurasi API yang di-deploy. Men-deploy konfigurasi API ke gateway akan membuat URL yang menghadap eksternal yang digunakan klien API Anda untuk mengakses API.
Gambar berikut menunjukkan komponen ini:
Tentang deployment konfigurasi API ke gateway
Anda men-deploy konfigurasi API ke gateway untuk membuat API Anda dapat diakses oleh klien API Anda:
Gateway:
Di-deploy ke Google Cloud region tertentu. Region adalah wilayah geografis tertentu di Google Cloud tempat Anda dapat men-deploy resource.
Harus menghosting konfigurasi API. Anda tidak dapat membuat gateway kosong, yang berarti gateway tanpa konfigurasi API. Namun, setelah gateway dibuat, Anda dapat mengupdate gateway untuk mengganti satu konfigurasi API dengan konfigurasi API lainnya.
Hanya dapat menghosting satu konfigurasi API. Anda tidak dapat men-deploy beberapa konfigurasi API ke gateway yang sama.
Kemudian, Anda mengelola setiap gateway yang di-deploy secara terpisah. Untuk setiap gateway, Anda dapat:
- Mulai/berhenti/menghapus gateway
- Melihat log dan metrik
- Melihat informasi rekaman aktivitas
Pilih Google Cloud wilayah
Setiap gateway di-deploy ke wilayah geografis tertentu di Google Cloud. API Gateway mendukung wilayah Google Cloud berikut untuk deployment:
asia-northeast1australia-southeast1europe-west1europe-west2us-east1us-east4us-central1us-west2us-west3us-west4
Tentukan endpoint konfigurasi API yang di-deploy
Saat Anda men-deploy konfigurasi API ke gateway, API Gateway akan membuat URL unik untuk gateway di domain gateway.dev. Klien API Anda kemudian
menggunakan URL dalam bentuk berikut untuk mengakses konfigurasi API yang di-deploy:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
dengan GATEWAY_ID adalah nama gateway, HASH adalah kode hash unik yang dibuat saat Anda men-deploy API, dan REGION_CODE adalah kode untuk lokasi Cloud tempat Anda men-deploy gateway.
Contoh:
my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Mengonfigurasi akun layanan untuk men-deploy konfigurasi API
Konfigurasi API yang di-deploy di gateway dijalankan dengan izin yang terkait dengan peran yang diberikan ke akun layanan yang digunakan untuk membuat konfigurasi API. Oleh karena itu, Anda biasanya menentukan akun layanan terpisah untuk membuat konfigurasi API. Akun layanan tersebut kemudian hanya diberi peran yang diperlukan untuk mengakses layanan backend. Dengan cara ini, Anda dapat membatasi izin yang terkait dengan konfigurasi API.
Selain peran yang diperlukan untuk mengakses layanan backend, akun layanan harus diberi izin berikut:
Izin
iam.serviceAccounts.actAs. Izin ini disertakan dalam peran Service Account User.Izin yang diperlukan untuk mengakses layanan backend Anda. Misalnya, jika backend Anda diimplementasikan sebagai Cloud Function, akun layanan setidaknya harus ditetapkan ke peran Cloud Functions Invoker. Untuk backend Cloud Run, perannya adalah Cloud Run Invoker. Dengan membatasi izin yang terkait dengan konfigurasi API, Anda dapat mengamankan sistem backend dengan lebih baik.
Lihat Mengonfigurasi lingkungan pengembangan Anda untuk mengetahui informasi selengkapnya.
Tentang penskalaan hingga nol
API Gateway adalah layanan skala ke nol. Artinya, jika tidak ada traffic, semua instance gateway akan dihapus. Saat traffic meningkat, instance baru dibuat sesuai permintaan untuk menangani beban. Penskalaan ke nol dikontrol secara otomatis oleh Google Cloud; Anda tidak perlu mengonfigurasi atau mengelolanya.
Menggunakan load balancer
Setiap gateway yang di-deploy di suatu region berisi load balancer terintegrasi untuk mengelola permintaan klien ke API yang di-deploy ke gateway. Anda tidak diwajibkan untuk membuat load balancer terpisah untuk setiap gateway.
Anda harus membuat load balancer saat men-deploy API yang sama di gateway yang berada di region yang berbeda. Load balancer kemudian mengarahkan permintaan API ke berbagai region. Lihat Men-deploy API ke beberapa region untuk mengetahui informasi selengkapnya.
Mengonfigurasi akses SSL ke API
API Gateway mendukung akses HTTPS
ke API yang di-deploy ke gateway. Karena API Anda di-deploy ke domain gateway.dev, Google membuat dan mengelola sertifikat SSL di load balancer yang terintegrasi dengan gateway.
Anda tidak perlu membuat atau mengupload sertifikat Anda sendiri.
Mengonfigurasi Server Nama Domain
Secara default, klien API membuat permintaan ke domain gateway.dev untuk mengakses API yang di-deploy, seperti yang ditunjukkan di atas.
Nama domain kustom ditujukan untuk API Gateway saat digunakan bersama dengan Load Balancing HTTP(S) untuk API GatewayPRATINJAU. Untuk menyesuaikan nama domain, buat load balancer untuk menggunakan nama domain kustom Anda, lalu arahkan permintaan ke domain gateway.dev
API yang di-deploy. Untuk mengetahui informasi selengkapnya, lihat Menggunakan domain kustom dengan API Gateway.
Men-deploy beberapa konfigurasi API di API yang sama
Anda hanya dapat men-deploy satu konfigurasi API ke gateway. Namun, Anda dapat men-deploy beberapa konfigurasi API ke beberapa gateway dalam API yang sama.
Bagian ini menjelaskan dua skenario saat Anda dapat men-deploy beberapa konfigurasi API di beberapa gateway dalam satu API.
Men-deploy konfigurasi API ke beberapa gateway di region yang sama
Saat membangun API, developer API sering kali membuat lingkungan pengembangan, staging, dan produksi, dengan:
- Lingkungan pengembangan digunakan oleh developer untuk membuat API.
- Lingkungan staging digunakan untuk menguji API sebagai persiapan untuk rilis ke produksi.
- Lingkungan produksi adalah tempat klien API eksternal Anda diizinkan untuk mengakses API.
Untuk mendukung jenis lingkungan pengembangan ini, Anda menentukan beberapa konfigurasi API. Misalnya, Anda mungkin memiliki beberapa konfigurasi API dalam pengembangan, satu konfigurasi API yang diuji di staging, dan satu konfigurasi API yang di-deploy ke produksi API Gateway memungkinkan Anda membuat beberapa konfigurasi API dalam satu API, lalu men-deploy setiap konfigurasi API ke gateway yang berbeda:
Dalam contoh ini, Anda memiliki tiga konfigurasi API yang berbeda: dev, stage, dan prod. Kemudian, Anda men-deploy setiap konfigurasi API ke gateway yang berbeda, dengan setiap gateway menentukan URL endpoint uniknya sendiri.
Men-deploy konfigurasi API ke beberapa region
Sering kali Anda men-deploy API ke beberapa Google Cloud region. Deployment di beberapa region menawarkan beberapa keuntungan, termasuk pengurangan latensi permintaan karena permintaan diarahkan ke API yang berjalan di region yang secara geografis dekat dengan klien, dan peningkatan keandalan karena kegagalan di satu region tidak memengaruhi API yang berjalan di region lain.
Untuk men-deploy API ke beberapa region, Anda men-deploy konfigurasi API ke gateway di setiap region. Setiap konfigurasi API khusus untuk region yang di-deploy karena harus mereferensikan layanan backend di region tersebut.
Pada gambar berikut, API 1 dan 2 di-deploy ke satu region dan API 3 di-deploy di beberapa region:
Dalam contoh ini, setiap konfigurasi API yang di-deploy ke gateway untuk API 3 memiliki endpoint URL unik, dalam bentuk:
https://my-gateway1-a12bcd345e67f89g0h.uc.gateway.dev https://my-gateway2-b12cde345f67g89h0i.en.gateway.dev https://my-gateway3-c12bde345g67h89i0j.uw.gateway.dev
Kemudian, Anda mengonfigurasi load balancer menggunakan Load Balancing HTTP(S) untuk API GatewayPRATINJAU guna menangani permintaan ke API dan meneruskan permintaan ke region yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Membuat deployment multi-region untuk API Gateway.
Memperbarui API
Anda dapat mengupdate API yang di-deploy dengan mengedit definisi API dalam spesifikasi OpenAPI, lalu mengupload spesifikasi tersebut. Mengupload spesifikasi baru akan membuat konfigurasi API baru.
API Gateway mendukung model update tanpa periode nonaktif, yang berarti API Anda terus menangani permintaan selama deployment konfigurasi API yang diupdate. Namun, ada jangka waktu saat konfigurasi API baru di-deploy ketika beberapa permintaan mungkin masih ditangani oleh konfigurasi API versi sebelumnya.
Jika telah men-deploy konfigurasi API di beberapa wilayah dan gateway, Anda harus men-deploy ulang konfigurasi API yang diupdate di setiap wilayah secara terpisah.