API Gateway
Apa itu API Gateway?
API Gateway adalah komponen infrastruktur yang berada di antara klien dan layanan backend (microservices). Ia bertindak sebagai single entry point untuk semua permintaan API, menangani cross-cutting concerns sehingga layanan backend dapat fokus pada logika bisnis.
Fungsi Utama
Routing
API Gateway menerima permintaan dari klien dan meneruskannya ke
service yang tepat berdasarkan path, header, atau parameter. Contoh:
/users/* → User Service, /orders/* → Order
Service. Ini mengabstraksi topology backend dari klien.
Rate Limiting
Membatasi jumlah permintaan dari klien dalam periode waktu tertentu untuk mencegah abuse dan menjaga kestabilan backend. Dapat dikonfigurasi per IP, per user, atau per endpoint.
Authentication & Authorization
Memvalidasi token (JWT, API key, OAuth2) di gateway level sebelum permintaan mencapai backend. Ini mengurangi beban service individual dan memastikan kebijakan keamanan diterapkan secara seragam.
Logging & Monitoring
Mencatat semua metadata permintaan - IP asal, endpoint, durasi, status code, error - untuk audit trail, debugging, dan observability. Integrasi dengan tools seperti Prometheus, Grafana, ELK Stack.
Request/Response Transformation
Memodifikasi payload, header, atau format data antara klien dan backend. Contoh: mengubah XML ke JSON, menambah header kustom, atau merestruktur respons untuk konsistensi API.
Tools Populer
Kong
API Gateway open-source berbasis NGINX dan Lua dengan plugin ecosystem yang kaya. Mendukung autentikasi (JWT, OAuth2, Key-Auth), rate limiting, caching, logging, dan canary releases. Bisa di-deploy di Docker, Kubernetes, atau bare metal.
NGINX
Web server dan reverse proxy yang juga berfungsi sebagai API Gateway. Konfigurasi via file konfigurasi (tinggi fleksibilitas). Ekosistem Lua (OpenResty) memungkinkan plugin kustom. Ringan, performa tinggi, sangat stabil.
AWS API Gateway
Layanan managed dari AWS untuk membuat, mengelola, dan mengamankan API. Fitur: throttling, caching, API keys, usage plans, WAF integration, dan dukungan WebSocket. Terintegrasi erat dengan Lambda (serverless).
Apigee (Google Cloud)
Platform API management enterprise dari Google. Menawarkan analytics mendalam, developer portal, monetization, security policies, dan threat protection. Target: organisasi besar dengan kebutuhan API governance kompleks.
Traefik
Reverse proxy dan load balancer modern yang dirancang untuk container/Kubernetes. Auto-discovery dengan penyedia seperti Docker, Kubernetes, Consul. Mendukung middleware untuk autentikasi, rate limiting, dan circuit breaking. Cukup populer di ekosistem cloud-native.
Security Features
TLS Termination
Gateway menangani enkripsi/decrypt TLS, membebaskan backend dari overhead kriptografi. Sertifikat dikelola di satu titik, menyederhanakan manajemen. Pastikan TLS versi minimum 1.2, cipher yang aman, dan HSTS header.
API Key Validation
Setiap permintaan diperiksa apakah menyertakan API key yang valid. API key bisa dikaitkan dengan tier (free/pro/enterprise) dan usage limits. Key sering dirotasi dan di-hash di penyimpanan.
IP Allowlisting/Blocklisting
Membatasi akses berdasarkan IP address. Allowlist hanya mengizinkan IP tertentu (misal IP internal perusahaan). Blocklist memblokir IP yang dikenal berbahaya. Efektif untuk API internal atau administrative endpoints.
Request Validation
Memvalidasi struktur request sebelum diteruskan ke backend - panjang body, format JSON, parameter yang diizinkan, content-type header. Mencegah injection attack dan malformed request yang bisa menyebabkan crash.
DDoS Protection
Integrasi dengan Web Application Firewall (WAF) untuk mendeteksi dan memblokir traffic mencurigakan. Rate limiting per IP, challenge-based protection (CAPTCHA), dan connection throttling membantu mitigasi serangan DDoS layer 7.
Microservices Security dengan API Gateway
Dalam arsitektur microservices, API Gateway memainkan peran kunci dalam keamanan:
- Single security perimeter - Semua kebijakan keamanan diterapkan di satu titik.
- Abstraction - Backend service tidak terekspos langsung ke internet.
- Centralized auth - Token validation, API key check, rate limiting di satu tempat.
- Service mesh integration - Gateway bisa berintegrasi dengan service mesh (Istio, Linkerd) untuk mTLS dan observability.
Best practice: Jangan letakkan logika bisnis di gateway. Gateway harus fokus pada infrastruktur dan keamanan - biarkan service menangani business logic.