Serverless Functions: AWS Lambda dan Vercel Edge dari Nol
Serverless bukan berarti ga ada server — tapi lo ga perlu manage server-nya. Lo tulis function, deploy, dan cloud provider yang handle scaling, uptime, dan infrastructure. Artikel ini bakal jelasin konsep serverless dari nol dan kasih contoh implementasi di AWS Lambda dan Vercel Edge.
Konsep Serverless
Di model traditional, lo sewa server (VPS), install runtime (Node.js), deploy app, dan manage semuanya sendiri. Di serverless:
- Lo tulis function yang handle satu task
- Upload ke cloud provider
- Provider execute function-nya saat ada request
- Lo bayar per execution, bukan per server
Kelebihan: zero server management, auto-scaling, pay-per-use. Kekurangan: cold start, vendor lock-in, dan debugging yang lebih susah.
AWS Lambda
Lambda adalah serverless function provider dari AWS. Support Node.js, Python, Go, Java, dan lainnya.
// handler.js
exports.handler = async (event) => {
const name = event.queryStringParameters?.name || 'World';
return {
statusCode: 200,
body: JSON.stringify({ message: `Hello, ${name}!` }),
};
};
Deploy dengan AWS CLI:
# Package function
zip function.zip handler.js
# Create function
aws lambda create-function --function-name hello-world --runtime nodejs18.x --handler handler.handler --zip-file fileb://function.zip --role arn:aws:iam::ACCOUNT_ID:role/lambda-role
Vercel Edge Functions
Vercel Edge Functions berjalan di edge network (dekat dengan user), bukan di satu region. Latency lebih rendah dari Lambda biasa.
// api/hello.ts (Next.js API Route)
import { NextRequest, NextResponse } from 'next/server';
export const config = { runtime: 'edge' };
export default async function handler(req: NextRequest) {
const name = req.nextUrl.searchParams.get('name') || 'World';
return NextResponse.json({ message: `Hello, ${name}!` });
}
Deploy otomatis saat lo push ke GitHub kalau project lo di Vercel.
Kapan Pakai Serverless?
- Cocok untuk: API endpoints, webhook handlers, scheduled tasks, image processing, form submission handler
- Kurang cocok untuk: WebSocket (butuh persistent connection), long-running tasks (>15 menit), aplikasi yang butuh state di server
Kesimpulan
Serverless functions adalah tool yang tepat untuk banyak use case modern. AWS Lambda untuk fleksibilitas dan ecosystem AWS, Vercel Edge untuk Next.js project yang butuh latency rendah. Mulai dari satu function sederhana, dan scale sesuai kebutuhan.
Mau belajar backend development? Kunjungi everdev.pro.