Agustus 8, 2026
ChatGPT Image 13 Jun 2026, 06.42.42
Pelajari cara membangun REST API serverless production-ready menggunakan API Gateway dan AWS Lambda lengkap dengan SSL, CORS, logging, throttling, dan quota.

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:

KomponenFungsi
API GatewayEndpoint API publik
LambdaBusiness Logic
IAMKontrol akses
CloudWatchLogging dan Monitoring
Route 53DNS Management
ACMSSL Certificate
DynamoDB/RDSPenyimpanan data

Contoh endpoint:

MethodEndpointFungsi
GET/usersMenampilkan data user
GET/users/{id}Detail user
POST/usersMenambah user
PUT/users/{id}Update user
DELETE/users/{id}Hapus user

Membuat Lambda Function

Membuat Function Baru

Masuk ke AWS Lambda kemudian:

  1. Create Function
  2. Author From Scratch
  3. Nama Function:
    • user-api
  4. 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:

  1. Create API Key
  2. Create Usage Plan
  3. Attach Stage
  4. 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:

ParameterNilai
Rate Limit100 req/sec
Burst Limit200 req/sec

Manfaat:

  • Mencegah abuse
  • Mengurangi DDoS ringan
  • Menjaga stabilitas API

Mengatur Quota API

Quota membatasi penggunaan dalam periode tertentu.

Contoh:

TipeLimit
Daily10.000
Weekly50.000
Monthly100.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

  1. Gunakan Lambda terpisah untuk fungsi besar.
  2. Aktifkan CloudWatch Alarm.
  3. Gunakan custom domain sejak awal.
  4. Terapkan throttling pada semua endpoint.
  5. Gunakan quota untuk partner API.
  6. Simpan secret pada AWS Secrets Manager.
  7. Aktifkan AWS WAF untuk proteksi tambahan.
  8. Gunakan Infrastructure as Code.
  9. Monitoring latency secara berkala.
  10. 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

  1. Apa itu AWS API Gateway?
    API Gateway adalah layanan AWS yang digunakan untuk membuat, mengelola, mengamankan, dan mempublikasikan API secara terpusat.
  2. Apa fungsi AWS Lambda dalam REST API?
    Lambda menjalankan logika backend tanpa perlu mengelola server fisik atau virtual.
  3. Apakah API Gateway mendukung custom domain?
    Ya. API Gateway dapat menggunakan custom domain dengan SSL/TLS melalui AWS Certificate Manager.
  4. Mengapa perlu mengaktifkan throttling?
    Untuk membatasi jumlah request dan melindungi backend dari lonjakan trafik atau penyalahgunaan API.
  5. Apa manfaat penggunaan API Key?
    API Key membantu mengidentifikasi client dan menerapkan quota maupun throttling berdasarkan pengguna API.
  6. Apakah API Gateway cocok untuk aplikasi produksi?
    Sangat cocok karena mendukung high availability, monitoring, logging, keamanan, dan skalabilitas otomatis.
  7. Apa perbedaan stage dev dan prod?
    Stage dev digunakan untuk pengujian dan pengembangan, sedangkan prod digunakan untuk melayani pengguna sebenarnya.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Dilindungi Oleh
Shield Security