Latar Belakang
haii guys kali ini saya mau berbagi pengalamanku mengenai implementasi severless menggunakan AWS API Gateway, Lambda, dan DynamoDB yang saya bangun di lingkungan AWS Academy Learner Lab. Sebelum pembahasan lebih lanjut saya mau kasih tahu dulu nih, apasih itu infrastruktur severless dan kenapa saya membuat infrastruktur severless ini ?.
Oke yang pertama apasih itu infrastruktur severless, konsep dari infrastruktur severless di AWS ini bukan berarti infrastruktur tanpa server yaa 😁, severless ini berarti user tidak perlu mengatur servernya secara mandiri seperti mengatur OS, patching, scaling dll, semua itu nantinya akan di handle oleh AWS jadi kita tidak perlu memikirkan itu, user hanya fokus pada kode atau program aplikasinya saja gitu guys.
Dan yang kedua kenapa saya membuat infrastruktur ini ?, ada beberapa alasan kenapa saya membuat infrastruktur ini, dan yang paling utamanya adalah karena ini tugas wkwk 😂, tapi bukan hanya ini kenapa saya membuat infrastruktur severless ini guys, ada alasan kuat lainnya kenapa saya membuat infrastruktur severless ini yaitu severless adalah cara yang efisien, cepat, dan scalable untuk menjalankan kode atau program aplikasi, dengan adanya severless ini, kita yang ingin menjalankan sebuah aplikasi bisa mudah untuk merealisasikannya guys, kita hanya perlu fokus pada kode nya saja, tanpa perlu mengatur servernya, seperti konfigurasi OS, spesfikasi, patching, scalling, dll, jadi ini sangat memudahkan bagi kalangan developer untuk menjalankan aplikasinya.
Oke setelah mengetahui alasan kenapa saya membuat infrastruktur severless ini, sekarang lanjut ke pembahasan lebih detail, dan saya juga dokumentasikan langkah-langkahnya biar teman-teman juga bisa mempraktekan 😉.
Pembahasan
Oke di bagian pembahasan ini saya akan menjelaskan service-service terkait dalam membangun infrastruktur severless ini dan langkah-langkah pembuatan.
- Lambda
Lambda adalah layanan komputasi severless yang disediakan oleh AWS yang memungkinkan kita menjalankan kode tanpa membuat atau mengelola servernya. Ini adalah layanan utama yang saya gunakan untuk menerapkan konsep dari infrastruktur severless guys.
2. API Gateway

API Gateway, ini adalah service kedua yang kita pakai, layanan ini berfungsi sebagai pintu masuk (entry point) untuk setiap permintaan (request) dari client, baik dari browser, aplikasi mobile, maupun tools pengujian seperti postman. Request yang diterima API Gateway akan diteruskan ke AWS Lambda untuk memproses logika dari kode yang telah di tentukan.
3. DynamoDB
Dan yang ketiga adalah DynamoDB, ini adalah layanan database NoSQL yang disediakan oleh AWS dirancang untuk kinerja tinggi, skalabilitas otomatis dan ketersediaan tinggi tanpa perlu pengelolaan server. Pada DynamoDB, data disimpan dalam bentuk table yang terdiri dari item dan attribute, dengan struktur primary key sebagai penentu akses data.
Oke guyss setelah tahu layanan apa aja yang digunakan, selanjutnya saya akan membagikan langkah-langkah membuat infrastruktur severless menggunakan layanan-layanan tadi, sebelum masuk ke langkah-langkah saya akan menampilkan diagram infrastruktur yang akan dibuat.
nahh ini adalah diagram dari infrastruktur yang akan saya buat, jadi alurnnya adalah request (HTTP) dari client yang diterima API Gateway akan menangani metode HTTP yang diambil (GET, POST, PUT, DELETE) serta memvalidasi dan mengamankan request tersebut, setelah API Gateway menerima request yang valid API Gateway akan memicu sebuah fungsi Lambda yang akan menangani operasi CRUD (GET, POST, PUT, DELETE) logika Lambda akan memproses input dari client dan akan memutuskan tindakan apa terhadap data pada DynamoDB, kemudian fungsi lambda akan menjalankan operasi CRUD terhadap DynamoDB, setelah Lambda selesai memproses data hasilnya dikirim kembali melalui API Gateway, kemudian diteruskan HTTP response ke client.
Jadi seperti itu guys gambaran mengenai infrastruktur yang saya bangun, sekarang lanjut ke langkah-langkahnya.
Membuat Fungsi Lambda
- Masuk ke AWS Console dan cari Lambda di kolom pencarian atau menu services, pilih layanan Lambda,
- setelah masuk ke dashboard Lambda, pilih Functions pada panel kiri atau jika sudah ada tombol Create Function saat masuk dashboard, langsung buat saja
- Untuk bagian cara membuat function pilih Author from scratch atau menulis dari nol, pada bagian function name ketikkan LambdaFunctionOverHttps, untuk runtime pilih Node.js atau Python dengan versi terbaru, pada bagian architecture pilih x86_64, pada bagian permissions pilih Use an existing role dan pilih LabRole, kemudian klik Create function tunggu sampai ada notifikasi hijau muncul maka Lambda Function telah berhasil dibuat.
- Masuk ke menu Functions di panel kiri, cari dan klik function bernama LambdaFunctionOverHttps, pada panel Code source di tab Code, ganti kode default nya dengan ini
import { DynamoDBDocumentClient, PutCommand, GetCommand,
UpdateCommand, DeleteCommand} from "@aws-sdk/lib-dynamodb";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
//Ganti region dengan yang Anda gunakan untuk membuat resource
const ddbClient = new DynamoDBClient({ region: "us-east-1" });
const ddbDocClient = DynamoDBDocumentClient.from(ddbClient);
// Define the name of the DDB table to perform the CRUD operations on
const tablename = "lambda-apigateway";
/**
* Provide an event that contains the following keys:
*
* - operation: one of 'create,' 'read,' 'update,' 'delete,' or 'echo'
* - payload: a JSON object containing the parameters for the table item
* to perform the operation on
*/
export const handler = async (event, context) => {
const operation = event.operation;
if (operation == 'echo'){
return(event.payload);
}
else {
event.payload.TableName = tablename;
let response;
switch (operation) {
case 'create':
response = await ddbDocClient.send(new PutCommand(event.payload));
break;
case 'read':
response = await ddbDocClient.send(new GetCommand(event.payload));
break;
case 'update':
response = ddbDocClient.send(new UpdateCommand(event.payload));
break;
case 'delete':
response = ddbDocClient.send(new DeleteCommand(event.payload));
break;
default:
response = 'Unknown operation: ${operation}';
}
console.log(response);
return response;
}
};
5. Lalu klik Deploy maka kode akan diperbarui untuk Fungsi Lambda ini
Membuat API Gateway
- Cari dan pilih API Gateway di kolom pencarian
- Pilih Create an API
- Pilih type REST API klik Build pada bagian REST API
- Untuk API Details pilih New API, untuk API Name ketikkan DynamoDBOperations,kemudian pada bagian Security Policy pilih SecurityPolicy_TLS13_1_3_2025_09
- Pilih Create API
- Setelah API berhasil dibuat pilih menu Resource atau sumber daya dan pilih Create resource atau buat sumber daya, kosongkan pada bagian Resource path untuk bagian Resource name ketikkan DynamoDBManager, pilih Create resource
- Setelah resource berhasil dibuat, klik bagian /DynamoDBManager kemudian pilih Create method pada bagian "Method type" pilih POST, pada bagian "Integration type" pilih Lambda function, kemudian bagian Lambda function pilih LambdaFunctionOverHttps lalu pilih Create method
- Setelah method berhasil dibuat, kemudian klik Deploy API pada bagian Stage pilih New stage dan ketikkan untuk nama stage TEST
Membuat Tabel DynamoDB
- Cari dan pilih DynamoDB di kolom pencarian
- Pilih Create table atau buat tabel
- Pada bagian nama tabel ketikkan Lambda-apigateway, pada bagian Partition key ketikkan id untuk partition key name dan biarkan tipenya adalah string
- Pilih Create table atau buat tabel
Uji Sistem
Oke sekarang tinggal uji aplikasi yang telah dibuat, masuk ke API Gateway pilih DynamoDBOperations pilih POST yang berada di bawah /DynamoDBManager kemudian pilih tab TEST dan gulir ke bawah.
biarkan pada bagian Query Strings dan Headers kosong, ketikkan ini pada bagian
Request body{
"operation": "create",
"payload": {
"Item": {
"id": "kaizul",
"number": 20
}
}
}
kemudian klik Test, jika Anda melihat hasil dengan status code 200 maka aplikasi telah berjalan sesuai yang diharapkan, sekarang kita cek apakah data sudah berhasil di buat di DynamoDB.
Masuk ke menu DynamoDB, pilih tabel yang telah dibuat yaitu Lambda-apigateway, kemudian pilih Explore table items gulir ke bawah, jika Anda melihat data seperti id "kaizul" dan number "20" maka API gateway, Lambda, dan DynamoDB telah berjalan sesuai yang diharapkan.
sekarang tinggal uji untuk menghapus data tersebut, masuk ke API Gateway pilih
POST pilih tab
TEST dan ketikkan kode ini
{
"operation": "delete",
"payload": {
"Key": {
"id": "kaizul"
}
}
}
Jika status code 200, maka delete berhasil, untuk memastikan bahwa data telah berhasil dihapus, masuk ke DynamoDB, pilih tabel Lambda-apigateway kemudian pilih Explore table items cek apakah data sudah hilang, kalau hilang berarti berhasil.
Penutup
Oke guyss, sampai di sini pembahasan mengenai implementasi infrastruktur serverless menggunakan AWS API Gateway, Lambda, dan DynamoDB. Dari praktik yang sudah dilakukan, dapat disimpulkan bahwa konsep serverless mempermudah proses pembangunan backend aplikasi karena kita tidak perlu mengelola server secara manual dan bisa langsung fokus pada logika aplikasi.
Melalui project ini, saya memahami alur kerja layanan AWS dalam arsitektur serverless, mulai dari request client yang masuk melalui API Gateway, diproses oleh Lambda, hingga penyimpanan dan pengelolaan data pada DynamoDB. Dengan kombinasi layanan tersebut, kita dapat membangun sistem CRUD yang sederhana namun tetap efisien dan scalable.
Semoga dokumentasi ini dapat membantu teman-teman yang sedang belajar AWS, khususnya dalam memahami dan menerapkan konsep serverless secara langsung melalui praktik.
Referensi
https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway-tutorial.html
Posting Komentar
0 Komentar