Apa itu AWS Lambda? Fungsi Lambda dengan Contoh
⚡ Ringkasan Cerdas
AWS Lambda adalah platform komputasi tanpa server berbasis peristiwa dari Amazon Layanan Web yang menjalankan kode Anda sebagai respons terhadap pemicu, secara otomatis menangani penyediaan, penskalaan, dan manajemen server sehingga Anda hanya fokus pada logika bisnis.
Sebelum menjelajahi AWS Lambda, ada baiknya memahami apa arti serverless.
Apa itu Tanpa Server?
Serverless adalah istilah yang umumnya merujuk pada aplikasi tanpa server. Aplikasi tanpa server adalah aplikasi yang tidak memerlukan penyediaan server dan tidak mengharuskan Anda untuk mengelola server.
Apa itu AWS Lambda?
AWS Lambda adalah platform komputasi tanpa server berbasis peristiwa yang disediakan oleh Amazon sebagai bagian dari Amazon Layanan Web. Oleh karena itu, Anda tidak perlu khawatir tentang sumber daya AWS mana yang akan diluncurkan, atau bagaimana Anda akan mengelolanya. Sebaliknya, Anda hanya perlu meletakkan kode di Lambda, dan kode tersebut akan berjalan.
Di AWS Lambda, kode dieksekusi berdasarkan respons dari peristiwa di layanan AWS seperti menambahkan atau menghapus file di bucket S3, permintaan HTTP dari Amazon API Gateway, dan acara serupa lainnya. Namun, Amazon Lambda hanya dapat digunakan untuk menjalankan tugas latar belakang.
Fungsi AWS Lambda membantu Anda untuk fokus pada produk inti dan logika bisnis Anda, alih-alih mengelola kontrol akses sistem operasi (OS), patching OS, penyesuaian ukuran yang tepat, penyediaan, penskalaan, dan sebagainya.
Bagaimana cara kerja AWS Lambda?
Contoh AWS Lambda berikut dengan diagram blok menjelaskan cara kerja AWS Lambda dalam beberapa langkah mudah:
Langkah 1: Pertama, unggah kode AWS Lambda Anda dalam bahasa apa pun yang didukung oleh AWS Lambda. Java, PythonGo dan C# adalah beberapa bahasa yang didukung oleh fungsi AWS Lambda.
Langkah 2: Ini adalah beberapa layanan AWS yang memungkinkan Anda memicu AWS Lambda.
Langkah 3: AWS Lambda membantu Anda mengunggah kode dan detail peristiwa yang memicunya.
Langkah 4: Menjalankan kode AWS Lambda ketika dipicu oleh layanan AWS.
Langkah 5: AWS hanya mengenakan biaya saat kode AWS Lambda dieksekusi, dan tidak sebaliknya.
Hal ini akan terjadi dalam skenario berikut:
- Unggah file dalam bucket S3
- Saat endpoint HTTP get/post URL terkena
- Untuk menambahkan, memodifikasi, dan menghapus tabel Dynamo DB
- Dalam proses pengumpulan aliran data
- Notifikasi push
- Hosting situs web
- Pengiriman email
Catatan: Anda perlu ingat bahwa Anda hanya akan dikenakan biaya untuk layanan AWS saat kode AWS Lambda dieksekusi, jika tidak, Anda tidak perlu membayar apa pun.
Peristiwa yang Memicu AWS Lambda
Berikut adalah peristiwa yang akan dipicu saat Anda menggunakan AWS Lambda.
- Menyisipkan, memperbarui, dan menghapus data dalam tabel Dynamo DB
- Untuk memasukkan pemberitahuan push di SNS
- Untuk mencari riwayat log di CloudTrail
- Masuk ke objek S3
- DynamoDB dapat memicu AWS Lambda setiap kali ada data yang ditambahkan, diubah, dan dihapus dalam tabel.
- Membantu Anda menjadwalkan acara untuk melaksanakan tugas pada pola waktu yang teratur.
- Modifikasi pada objek di bucket S3
- Pemberitahuan dikirim dari Amazon SNS.
- AWS Lambda dapat digunakan untuk memproses log CloudTrail.
- API Gateway memungkinkan Anda memicu AWS Lambda pada metode GET/POST.
AWS Lambda Concepts
Fungsi: Fungsi adalah program atau skrip yang berjalan di AWS Lambda. Lambda meneruskan peristiwa pemanggilan ke dalam fungsi Anda, yang memproses suatu peristiwa dan mengembalikan responsnya.
Waktu tayang: Runtime memungkinkan fungsi dalam berbagai bahasa yang berjalan pada lingkungan eksekusi dasar yang sama. Ini membantu Anda mengkonfigurasi fungsi Anda di runtime. Ini juga sesuai dengan pilihan Anda. bahasa pemrograman.
Sumber acara: Sumber peristiwa adalah layanan AWS, seperti Amazon SNS, atau layanan khusus. Pemicu ini membantu fungsi tersebut menjalankan logikanya.
Lapisan Lambda: Lapisan Lambda adalah mekanisme distribusi penting untuk perpustakaan, runtime kustom, dan dependensi fungsi penting lainnya. Komponen AWS ini juga membantu Anda mengelola kode fungsi pengembangan secara terpisah dari kode dan sumber daya yang tidak berubah yang digunakannya.
Aliran log: Log stream memungkinkan Anda untuk menambahkan anotasi pada kode fungsi Anda dengan pernyataan logging khusus yang membantu Anda menganalisis alur eksekusi dan kinerja fungsi AWS Lambda Anda.
Cara menggunakan AWS Lambda
Sekarang, kita akan mempelajari cara menggunakan AWS Lambda dengan contoh AWS Lambda:
Langkah 1) Buka AWS Lambda URL
Pergi ke https://aws.amazon.com/lambda/ dan Mulai.
Langkah 2) Buat sebuah akun
Selanjutnya, buat akun atau masuk dengan akun Anda yang sudah ada.
Langkah 3) Edit kode dan klik Jalankan.
Di halaman Lambda berikutnya, edit kode dan klik Jalankan.
Langkah 4) Periksa keluaran
Anda akan melihat hasilnya.
AWS Lambda VS AWS EC2
Berikut beberapa perbedaan utama antara AWS Lambda dan EC2.
| Parameter Teknis | AWS Lambda | AWS EC2 |
| Definisi | AWS Lambda adalah Platform sebagai Layanan (PaaS). Ini membantu Anda menjalankan dan mengeksekusi kode backend Anda. | AWS EC2 adalah Infrastruktur sebagai Layanan (IaaS). Ia menyediakan sumber daya komputasi virtual. |
| keluwesan | Tidak menawarkan fleksibilitas apa pun untuk masuk ke instance komputasi. Ini memungkinkan Anda untuk memilih sistem operasi atau runtime bahasa yang disesuaikan. | Menawarkan fleksibilitas untuk memilih berbagai instance, sistem operasi kustom, patch keamanan, dan jaringan, dll. |
| proses instalasi | Anda perlu memilih lingkungan tempat Anda ingin menjalankan kode dan mengirimkan kode tersebut ke AWS Lambda. | Untuk pertama kalinya di EC2, Anda harus memilih OS dan menginstal semua perangkat lunak yang diperlukan lalu memasukkan kode Anda ke EC2. |
| Pembatasan lingkungan | Hal ini terbatas pada beberapa bahasa saja. | Tidak ada batasan lingkungan. |
AWS Lambda vs AWS Elastic Beanstalk
Berikut beberapa perbedaan utama antara AWS Lambda dan Elastic. Beanstalk.
| Parameter Teknis | AWS Elastis Beanstalk | AWS Lambda |
| Tugas utama | Terapkan dan kelola aplikasi di AWS Cloud tanpa mengkhawatirkan infrastruktur yang menjalankan aplikasi tersebut. | AWS Lambda digunakan untuk menjalankan dan mengeksekusi kode back-end Anda. Anda tidak dapat menggunakannya untuk menyebarkan aplikasi. |
| Pemilihan sumber daya AWS | Ini memberi Anda kebebasan untuk memilih sumber daya AWS; misalnya, Anda dapat memilih instance EC2 yang optimal sesuai dengan aplikasi Anda. | Anda tidak dapat memilih sumber daya AWS, seperti jenis instance EC2; Lambda menawarkan sumber daya berdasarkan beban kerja Anda. |
| Jenis sistem | Ini adalah sistem yang berstatus negara. | Ini adalah sistem tanpa kewarganegaraan. |
Kasus Penggunaan AWS Lambda
AWS Lambda digunakan untuk berbagai macam aplikasi seperti:
- Membantu Anda dengan proses ETL
- Memungkinkan Anda melakukan pemrosesan file waktu nyata dan pemrosesan aliran waktu nyata
- Gunakan untuk membuat aplikasi web
- Gunakan dalam Amazon produk seperti Alexa Chatbots dan Amazon Gema/Alexa
- Pemrosesan data (analisis streaming waktu nyata)
- Pencadangan otomatis untuk tugas sehari-hari
- Sistem back-end yang dapat diskalakan (aplikasi seluler, perangkat IoT)
- Membantu Anda menjalankan logika backend sisi server
- Memungkinkan Anda untuk memfilter dan mengubah data.
Praktik terbaik fungsi Lambda
Berikut beberapa praktik terbaik fungsi AWS Lambda:
- Gunakan “batas waktu” yang tepat.
- Manfaatkan fungsi penyimpanan lokal yang berukuran 500MB di folder /temp.
- Minimalkan penggunaan kode startup yang tidak terkait langsung dengan pemrosesan peristiwa saat ini.
- Anda harus menggunakan pemantauan CloudWatch bawaan pada fungsi Lambda Anda untuk melihat dan mengoptimalkan latensi permintaan.
Kapan tidak menggunakan AWS Lambda
Berikut adalah situasi-situasi di mana Lambda jelas bukan pilihan yang ideal:
- Tidak tepat menggunakan AWS Lambda untuk paket perangkat lunak atau aplikasi yang bergantung pada pemanggilan fungsi yang mendasarinya. Windows RPC.
- Jika digunakan untuk aplikasi perangkat lunak khusus dengan perjanjian lisensi seperti pengolah dokumen MS-Office, Oracle basis data, dll.
- AWS Lambda tidak boleh digunakan untuk proses perangkat keras khusus seperti akselerasi GPU dan afinitas perangkat keras.
Keuntungan menggunakan AWS Lambda
Berikut adalah kelebihan/manfaat menggunakan AWS Lambda:
- AWS Lambda adalah alat yang sangat fleksibel untuk digunakan.
- Ini membantu Anda memberikan akses ke sumber daya, termasuk VPC.
- Penulis berinteraksi langsung dengan WYSIWEditor YG di konsol.
- Anda dapat menggunakannya sebagai plugin untuk Eclipse ke Visual Studio.
- Karena ini adalah arsitektur tanpa server, Anda tidak perlu khawatir tentang mengelola atau menyediakan server.
- Anda tidak perlu menyiapkan apa pun Mesin virtual.
- Membantu pengembang menjalankan dan mengeksekusi respons kode terhadap peristiwa tanpa membangun infrastruktur apa pun.
- Anda hanya perlu membayar waktu komputasi yang dibutuhkan, hanya saat kode Anda dijalankan.
- Anda dapat memantau kinerja kode Anda secara real time melalui CloudWatch.
- Ini memungkinkan Anda menjalankan kode Anda tanpa perlu menyediakan atau mengelola server lain.
- Membantu Anda menjalankan kode hanya saat dibutuhkan.
- Anda dapat menskalakannya secara otomatis untuk menangani beberapa permintaan per hari dan bahkan mendukung lebih dari ribuan permintaan per detik.
- AWS Lambda dapat dikonfigurasi dengan bantuan pengatur waktu peristiwa eksternal untuk melakukan tugas terjadwal.
- Fungsi Lambda di AWS harus dikonfigurasi dengan event dan timer eksternal agar dapat digunakan untuk penjadwalan.
- Fungsi Lambda bersifat stateless sehingga dapat diskalakan dengan cepat.
- AWS Lambda cepat sehingga akan mengeksekusi kode Anda dalam milidetik.
Keterbatasan AWS Lambda
Berikut kekurangan/kekurangan menggunakan AWS Lambda:
- Alat AWS Lambda tidak cocok untuk proyek kecil.
- AWS Lambda sepenuhnya bergantung pada AWS untuk infrastruktur, jadi Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda membutuhkannya.
- Eksekusi bersamaan memiliki batasan default 1,000 per Wilayah, yang dapat ditingkatkan berdasarkan permintaan.
- Kapasitas memorinya dapat bervariasi antara 128 MB dan 10,240 MB.
- Permintaan acara tidak boleh melebihi 128 KB.
- Fungsi Lambda membantu Anda menulis lognya hanya di CloudWatch. Ini adalah satu-satunya alat yang memungkinkan Anda memantau atau memecahkan masalah fungsi Anda.
- Batas waktu eksekusi kodenya adalah 15 menit.





