Pendahuluan

AWS Serverless adalah produk yang banyak disukai oleh Software Engineer.
Hal ini karena kita tidak perlu memikirkan mengenai konfigurasi dan spesifikasi servernya.

Misalnya ingin membuat sebuah fungsi berhubungan dengan perkalian sederhana.
Berarti kita butuh AWS Lambda yang memang berkaitan dengan membuat fungsi tertentu. Lalu :

  • Tinggal buat fungsinya dalam code program sesuai dengan bahasa pemrograman yang kita kuasai.
  • Upload code nya atau save code nya kalau langsung di editornya AWS.
  • Test dan jalankan.
  • Selesai.

Dan voilaaa…, fungsi kita sudah masuk ke server, entah ke server mana, akan tetapi yang penting sudah masuk dan bisa dieksekusi.

Lalu, oh iya, kalau cuma bisa dites terpisah, tetapi tidak bisa diakses dari luar , maka sia-sia saja dong.

Hmm, kalau begitu ternyata fungsi kita ini perlu diakses melalui REST API.., agar seluruh dunia bisa menggunakannya..

Ahhh… LEBAYY LUH..

Hmmm., kalau gitu kita perlu fitur serverless yang lain, yaitu AWS API Gateway. Maka kita akan pilih komponen AWS API Gateway, lalu :

  • Definisikan name Resource dan HTTP Method nya yang mau kita tampilkan ke dunia 😃
  • Tambahkan URL request parameter nya apa saja.
  • Tentukan mapping dari URL kita ke parameter yang diterima oleh AWS Lambda kita.
  • Tambahkan API Gateway kita ini sebagai trigger untuk mengeksekusi fungsi di AWS Lambda kita.
  • Test dan deploy API Gateway kita ini di stage yang kita inginkan.
  • Tambahkan konfigurasi CORS, Access role IAM yang cocok, logging ke CloudWatch, dll yang kita butuhkan.
  • Selesai.

Lagi-lagi, kita akan mendapatkan URL API Gateway yang bisa diakses oleh siapapun di dunia ini..

LAGI..LAGI…LEBAAY..

Tapi memang itu kenyataannya. Kita akan mempunyai URL API Gateway yang bisa mengakses fungsi perkalian kita di AWS Lambda tadi. Tetapi kita tidak tahu API Gateway ini berada di server yang mana, karena URL yang kita dapatkan dalam bentuk hostname.

Pastinya AWS punya mapping sendiri antara hostname API Gateway kita dengan server fisiknya.


Apakah demikian mudahnya..

Iya, secara umum semudah itu.

Tetapi secara khusus tentunya banyak hal yang mesti kita ketahui untuk melakukan itu. Misalnya harus tahu konsep serverless, role access, api gateway, url params, IAM role, function handler, dll yang berhubungan dengan REST atau HTTP.


Apakah cuma 2 fitur itu yang dianggap serverless di AWS ?

Tentu saja tidak !.

Sebenarnya apa saja fungsi di AWS yang tidak membutuhkan konfigurasi dan spesifikasi server secara detail, itu bisa dianggap sebagai serverless.

Kalau kita lihat dari websitenya AWS (link), maka fitur AWS yang termasuk serverless adalah :

  • AWS Lambda, digunakan untuk membuat fungsi tertentu.

  • AWS Fargate, digunakan untuk membuat service container secara serverless.

  • Amazon EventBridge, digunakan dalam membuat aplikasi berbasis event-driven.

  • AWS Step Function, digunakan untuk membuat alur proses yang melibatkan banyak service AWS lain yang kita gunakan.

  • Amazon SQS, digunakan untuk message queue, seperti queue biasa.

  • Amazon SNS, digunakan untuk message bersifat notification, publisher/subscriber.

  • Amazon API Gateway, digunakan untuk antarmuka REST dan Websocket.

  • Amazon AppSync, digunakan berkaitan dengan GraphQL.

  • Amazon S3, digunakan untuk menyimpan data/file.

  • Amazon DynamoDB, digunakan untuk membuat database NoSQL.

  • Amazon RDS Proxy, digunakan sebagai connection pooling ke Relational Database.

  • Amazon Aurora Serverless, digunakan untuk membuat database Relational Database.

Waaw banyak juga ya…

Iya, dan sesuai dengan persyaratan Serverless , maka semua fitur diatas tidak memerlukan campur tangan kita dalam menentukan servernya apa, dimana, bersama siapa, lagi melakukan apa…, dll.

Thats Serverless !!