Membangun backend aplikasi modern tidak lagi harus dimulai dengan menyediakan server, mengelola sistem operasi, melakukan patch keamanan, atau memantau kapasitas infrastruktur setiap saat.
Dengan pendekatan serverless, developer dapat fokus pada logika bisnis sementara penyedia cloud menangani provisioning, scaling, high availability, dan maintenance infrastruktur.
Salah satu kombinasi paling populer untuk membangun backend modern adalah AWS API Gateway dan AWS Lambda. Keduanya memungkinkan pengembang membuat REST API yang scalable, aman, hemat biaya, dan siap digunakan pada lingkungan produksi.
Artikel ini membahas langkah demi langkah membangun REST API production-ready menggunakan API Gateway dan Lambda, termasuk deployment environment, custom domain, SSL, throttling, quota API key, CORS, hingga logging dan monitoring.
Mengapa Menggunakan API Gateway dan Lambda?
AWS API Gateway berfungsi sebagai pintu masuk seluruh request dari client.
AWS Lambda bertugas menjalankan kode backend secara otomatis ketika API menerima request.
Arsitektur sederhananya:
Client โ API Gateway โ Lambda โ Database / Service โ Response
Keuntungan pendekatan ini:
- Tidak perlu mengelola server
- Auto scaling
- Pay-as-you-use
- High availability
- Integrasi AWS yang sangat luas
- Cocok untuk microservices
- Cepat dikembangkan dan di-deploy
Arsitektur REST API Serverless
Komponen utama yang digunakan:
| Komponen | Fungsi |
|---|---|
| API Gateway | Endpoint API publik |
| Lambda | Business Logic |
| IAM | Kontrol akses |
| CloudWatch | Logging dan Monitoring |
| Route 53 | DNS Management |
| ACM | SSL Certificate |
| DynamoDB/RDS | Penyimpanan data |
Contoh endpoint:
| Method | Endpoint | Fungsi |
|---|---|---|
| GET | /users | Menampilkan data user |
| GET | /users/{id} | Detail user |
| POST | /users | Menambah user |
| PUT | /users/{id} | Update user |
| DELETE | /users/{id} | Hapus user |
Membuat Lambda Function
Membuat Function Baru
Masuk ke AWS Lambda kemudian:
- Create Function
- Author From Scratch
- Nama Function:
- user-api
- Runtime:
- Python 3.12
- Node.js 22
- Java 21
- .NET 8
Contoh kode Lambda Python:
import json
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps({
'message': 'REST API Serverless Berhasil'
})
}
Deploy function tersebut.
Lakukan test untuk memastikan Lambda berjalan normal.
Membuat API Gateway REST API
Membuat REST API
Masuk ke:
AWS Console โ API Gateway
Pilih:
Create API
Kemudian:
REST API
Masukkan:
- API Name: ProductionAPI
- Endpoint Type: Regional
Klik Create API.

Membuat Resource
Contoh resource:
/users
Klik:
Actions โ Create Resource
Isi:
- Resource Name: users
- Resource Path: users
Membuat Method GET
Pada resource:
/users
Pilih:
Create Method โ GET
Integration Type:
Lambda Function
Pilih Lambda:
user-api
Save.
Membuat Method POST
Tambahkan method:
POST
Integrasikan dengan Lambda yang sama atau Lambda berbeda.
Contoh:
POST /users
akan membuat data user baru.
Testing Endpoint
Contoh URL:
https://abc123.execute-api.ap-southeast-1.amazonaws.com/dev/users
Test menggunakan:
curl https://endpoint/dev/users
atau Postman.
Jika berhasil:
{
"message": "REST API Serverless Berhasil"
}
Deploy API ke Stage
Stage digunakan untuk memisahkan environment.
Contoh:
- dev
- test
- staging
- prod
Membuat Stage Dev
Pilih:
Actions โ Deploy API
Stage Name:
dev
Deploy.
Membuat Stage Production
Deploy kembali dengan:
prod
Hasil:
https://api.example.com/dev
https://api.example.com/prod
Environment dapat dipisahkan secara aman.
Konfigurasi Custom Domain
Secara default API Gateway menghasilkan URL panjang dan sulit diingat.
Contoh:
https://abc123.execute-api.amazonaws.com
Lebih baik menggunakan:
https://api.example.com
Membuat SSL Certificate
Buka:
AWS Certificate Manager (ACM)
Request Public Certificate
Masukkan:
api.example.com
Verifikasi DNS.
Tunggu hingga status:
Issued
Membuat Custom Domain API Gateway
Masuk ke:
Custom Domain Names
Tambahkan:
api.example.com
Pilih sertifikat ACM yang sudah diterbitkan.
Buat API Mapping:
api.example.com โ ProductionAPI โ prod
Konfigurasi DNS
Gunakan Route 53 atau DNS provider lainnya.
Tambahkan record:
api.example.com
mengarah ke API Gateway Domain.
Sekarang endpoint menjadi:
https://api.example.com/users
Mengaktifkan CORS
Masalah paling umum saat frontend memanggil API adalah error:
CORS Policy Blocked
CORS harus diaktifkan.
Pada resource:
/users
Pilih:
Enable CORS
Contoh konfigurasi:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,PUT,DELETE
Access-Control-Allow-Headers: Content-Type,Authorization
Untuk produksi lebih aman menggunakan domain spesifik:
https://app.example.com
daripada wildcard.
Mengaktifkan Logging
Logging sangat penting untuk troubleshooting.
Masuk ke:
Stage โ Logs/Tracing
Aktifkan:
- CloudWatch Logs
- Access Logging
- Execution Logging
Contoh format log:
{
"requestId":"12345",
"ip":"10.10.10.10",
"method":"GET",
"path":"/users",
"status":200
}
Manfaat:
- Audit request
- Troubleshooting
- Analisis performa
- Investigasi keamanan
Request dan Response Logging
Aktifkan:
Log Full Requests/Responses Data
Gunakan secara hati-hati.
Hindari menyimpan:
- Password
- Token
- API Secret
- Data sensitif
Gunakan masking apabila diperlukan.
Mengamankan API Menggunakan API Key
API Key memungkinkan pembatasan akses client.
Langkah:
- Create API Key
- Create Usage Plan
- Attach Stage
- Attach API Key
Contoh:
Mobile-App-Key
Web-App-Key
Partner-Key
Setiap client memperoleh key yang berbeda.
Konfigurasi Throttling
Throttling melindungi backend dari lonjakan trafik.
Contoh konfigurasi:
| Parameter | Nilai |
|---|---|
| Rate Limit | 100 req/sec |
| Burst Limit | 200 req/sec |
Manfaat:
- Mencegah abuse
- Mengurangi DDoS ringan
- Menjaga stabilitas API
Mengatur Quota API
Quota membatasi penggunaan dalam periode tertentu.
Contoh:
| Tipe | Limit |
|---|---|
| Daily | 10.000 |
| Weekly | 50.000 |
| Monthly | 100.000 |
Jika quota habis:
429 Too Many Requests
akan dikembalikan ke client.
Monitoring dan Observability
Layanan yang direkomendasikan:
- CloudWatch Metrics
- CloudWatch Logs
- AWS X-Ray
- CloudTrail
Metric penting:
- Request Count
- Error Rate
- 4XX Error
- 5XX Error
- Latency
- Integration Latency
Best Practice REST API Production
Gunakan Environment Terpisah
Pisahkan:
- Dev
- Staging
- Production
Jangan gunakan satu environment untuk semua kebutuhan.
Gunakan Least Privilege IAM
Berikan izin minimum pada Lambda.
Hindari penggunaan:
AdministratorAccess
untuk produksi.
Gunakan Structured Logging
Format JSON memudahkan pencarian log.
Aktifkan Monitoring
Pantau performa secara real-time.
Gunakan Version Control
Simpan seluruh konfigurasi menggunakan:
- AWS SAM
- Terraform
- CloudFormation
Infrastructure as Code jauh lebih aman dan konsisten.
Kesalahan yang Sering Terjadi
Tidak Mengaktifkan CORS
Frontend gagal mengakses API.
Tidak Membatasi API
Backend mudah diserang abuse traffic.
Tidak Mengaktifkan Logging
Sulit melakukan troubleshooting.
Menggunakan Wildcard Berlebihan
*
berisiko pada keamanan.
Tidak Memisahkan Environment
Perubahan testing dapat merusak produksi.
Tips dan Solusi Praktis
- Gunakan Lambda terpisah untuk fungsi besar.
- Aktifkan CloudWatch Alarm.
- Gunakan custom domain sejak awal.
- Terapkan throttling pada semua endpoint.
- Gunakan quota untuk partner API.
- Simpan secret pada AWS Secrets Manager.
- Aktifkan AWS WAF untuk proteksi tambahan.
- Gunakan Infrastructure as Code.
- Monitoring latency secara berkala.
- Dokumentasikan API menggunakan OpenAPI/Swagger.
Output Akhir yang Dihasilkan
Setelah seluruh konfigurasi selesai, Anda akan memiliki:
โ REST API Serverless Production Ready
โ Endpoint HTTPS dengan SSL
โ Custom Domain
โ Environment Dev dan Prod
โ Lambda Integration
โ CORS Support
โ API Key Authentication
โ Throttling dan Quota
โ Logging dan Monitoring
โ Siap digunakan sebagai backend aplikasi web maupun mobile

Kesimpulan
AWS API Gateway dan AWS Lambda merupakan kombinasi yang sangat kuat untuk membangun REST API modern tanpa perlu mengelola server. Dengan menambahkan custom domain, SSL, logging, API key, throttling, quota, dan monitoring, API yang dibangun tidak hanya berfungsi tetapi juga siap digunakan pada lingkungan produksi.
Pendekatan serverless memungkinkan organisasi mempercepat pengembangan aplikasi, meningkatkan skalabilitas, serta mengurangi biaya operasional infrastruktur secara signifikan.
Apakah Anda sudah pernah membangun REST API menggunakan API Gateway dan Lambda?
Bagikan pengalaman Anda di kolom komentar. Jika artikel ini bermanfaat, jangan lupa membagikannya kepada rekan developer, administrator sistem, dan praktisi cloud computing lainnya. Ikuti juga konten terbaru seputar AWS, Linux, Kubernetes, Cloud Computing, dan Infrastruktur Modern untuk mendapatkan tutorial teknis terbaru.
FAQ
- Apa itu AWS API Gateway?
API Gateway adalah layanan AWS yang digunakan untuk membuat, mengelola, mengamankan, dan mempublikasikan API secara terpusat. - Apa fungsi AWS Lambda dalam REST API?
Lambda menjalankan logika backend tanpa perlu mengelola server fisik atau virtual. - Apakah API Gateway mendukung custom domain?
Ya. API Gateway dapat menggunakan custom domain dengan SSL/TLS melalui AWS Certificate Manager. - Mengapa perlu mengaktifkan throttling?
Untuk membatasi jumlah request dan melindungi backend dari lonjakan trafik atau penyalahgunaan API. - Apa manfaat penggunaan API Key?
API Key membantu mengidentifikasi client dan menerapkan quota maupun throttling berdasarkan pengguna API. - Apakah API Gateway cocok untuk aplikasi produksi?
Sangat cocok karena mendukung high availability, monitoring, logging, keamanan, dan skalabilitas otomatis. - Apa perbedaan stage dev dan prod?
Stage dev digunakan untuk pengujian dan pengembangan, sedangkan prod digunakan untuk melayani pengguna sebenarnya.