Mengapa AWS?
Sebelum membahas pertanyaan dan jawaban wawancara, penting untuk memahami mengapa AWS Cloud menjadi platform andalan utama—ini sendiri bisa menjadi pertanyaan dalam wawancara.
Mari mulai dengan melihat grafik berikut:

Sumber (Statista)
Grafik tersebut menggambarkan dominasi AWS dalam pasar layanan infrastruktur cloud global pada Q2 2023. Dengan pangsa pasar 32%, AWS menjadi pemimpin yang jelas, jauh di depan pesaing terdekatnya, Microsoft Azure, yang memegang 22% pasar. Sementara pemain besar lainnya seperti Google Cloud (11%) dan Alibaba Cloud (4%) berkontribusi pada pasar, pangsa mereka masih jauh dibandingkan AWS dan Azure.
Total pendapatan yang dihasilkan oleh layanan infrastruktur cloud pada Q2 2023, sebesar $65 miliar, semakin menekankan pentingnya pasar ini yang terus berkembang dan signifikansi finansialnya. Posisi terdepan AWS di sektor yang berkembang pesat ini memperkuat pentingnya secara strategis bagi bisnis yang mencari solusi cloud yang andal dan dapat diskalakan.
Jika Anda ingin mempelajari lebih lanjut tentang perbandingan penyedia cloud yang berbeda, lihat lembar contekan ini tentang Perbandingan Layanan AWS, Azure, dan GCP.
Meskipun aspek finansial signifikan, daya tarik AWS melampaui pangsa pasar, mencakup pilihan layanan yang sangat luas, keandalan, skalabilitas, jangkauan global, keamanan yang tangguh, inovasi berkelanjutan, dan komunitas yang suportif. Faktor-faktor gabungan ini menjadikan keahlian AWS sangat dicari di industri teknologi, menghadirkan banyak peluang karier bagi mereka yang mahir pada platform cloud terkemuka ini.
Mari kita lihat beberapa pertanyaan wawancara!
Pertanyaan Wawancara Dasar AWS Lambda
Mari mulai dari dasar. Baik Anda baru di AWS Lambda atau sekadar menyegarkan ingatan, dasar-dasar ini akan mempersiapkan Anda untuk menyelami lebih dalam kapabilitas Lambda.
1. Apa itu AWS Lambda?
AWS Lambda adalah layanan komputasi serverless yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik.
2. Apa komponen utama dari sebuah fungsi Lambda?
Komponen utama dari fungsi Lambda adalah:
- Handler: Titik masuk untuk fungsi kita, sebuah metode dalam kode yang memproses event pemanggilan. Anggap saja sebagai fungsi "main" dari kode Lambda kita.
- Event: Data input berformat JSON yang memicu eksekusi fungsi. Ini membawa informasi tentang apa yang memulai pemanggilan fungsi.
- Context: Objek yang berisi informasi runtime tentang lingkungan eksekusi fungsi. Termasuk detail seperti nama fungsi, versi, batas memori, ID permintaan, dan sisa waktu eksekusi.
- Variabel lingkungan: Pasangan key-value yang dapat Anda atur untuk mengonfigurasi perilaku fungsi Lambda tanpa mengubah kode itu sendiri. Sering digunakan untuk menyimpan kunci API, kredensial basis data, atau pengaturan lainnya.
3. Bahasa apa saja yang didukung Lambda?
Lambda secara native mendukung Node.js, Python, Ruby, Java, Go, C#, dan PowerShell. Ini berarti kita dapat menulis fungsi Lambda langsung dalam bahasa-bahasa ini tanpa pengaturan tambahan.
Selain itu, Lambda memungkinkan kita menggunakan runtime kustom, memberikan fleksibilitas untuk mengemas kode fungsi dan dependensi dalam image kontainer. Ini memungkinkan dukungan untuk hampir semua bahasa pemrograman, sehingga kita dapat memilih alat yang paling sesuai dengan kebutuhan.
4. Bagaimana cara membuat fungsi Lambda?
Ada beberapa cara untuk membuat fungsi Lambda:
|
Metode |
Deskripsi |
Paling Cocok Untuk |
|
Konsol Lambda |
Menulis kode langsung di editor browser. |
Fungsi sederhana, pengujian cepat |
|
Paket Deployment |
Mengemas kode dan dependensi ke dalam arsip ZIP dan mengunggahnya. |
Proyek besar, fungsi kompleks |
|
Container Image |
Mengemas fungsi sebagai image kontainer Docker. |
Runtime kustom, konfigurasi spesifik |
|
Infrastructure-as-Code |
Mendefinisikan fungsi dan sumber daya dalam kode deklaratif menggunakan AWS SAM, CloudFormation, atau CDK. |
Mengelola aplikasi serverless yang kompleks, otomatisasi |
5. Apa saja cara yang berbeda untuk memanggil Fungsi Lambda?
Kita dapat memanggil fungsi Lambda dengan beberapa cara:
- Pemanggilan sinkron: Klien menunggu fungsi selesai dan mengembalikan respons.
- Pemanggilan asinkron: Klien tidak menunggu respons—Lambda mengeksekusi fungsi di latar belakang.
- Pemetaan sumber peristiwa: Lambda secara otomatis melakukan polling layanan seperti DynamoDB atau Kinesis dan memanggil fungsi berdasarkan peristiwa.
- Metode lain: Termasuk API Gateway, AWS SDK, atau pemanggilan terjadwal melalui Amazon EventBridge.
Pertanyaan Wawancara AWS Lambda Tingkat Menengah
1. Bagaimana kita dapat men-deploy dependensi bersamaan dengan kode Lambda?
Ada beberapa opsi untuk mengemas dependensi bersama kode Lambda:
- Penyertaan langsung: Untuk bahasa terinterpretasi, kita dapat menaruh file dependensi bersama kode fungsi dalam paket deployment .zip.
- Lambda layers: Untuk bahasa terkompilasi atau dependensi yang lebih besar, kita dapat menggunakan Lambda layer untuk mengemas dan membagikan dependensi umum secara terpisah di berbagai fungsi.
- Container image: Kita juga dapat mengemas dependensi dalam image kontainer bersama kode fungsi Lambda dan runtime kustom.
2. Bagaimana kita dapat mengoptimalkan kinerja fungsi Lambda?
Ada beberapa opsi untuk mengoptimalkan fungsi Lambda:
- Alokasi memori: Memilih ukuran memori yang tepat sangat penting untuk menyeimbangkan biaya dan kinerja. Alat seperti AWS Lambda Power Tuning dapat membantu menemukan konfigurasi optimal.
- Ukuran paket: Paket fungsi yang lebih kecil menghasilkan cold start yang lebih cepat (waktu yang dibutuhkan fungsi Lambda untuk inisialisasi pada pemanggilan pertama). Minimalkan ukuran paket dengan menghapus dependensi yang tidak perlu dan mengompresi kode.
- Lambda SnapStart: Fitur ini melakukan pra-inisialisasi lingkungan fungsi, secara signifikan mengurangi waktu cold start untuk runtime tertentu.
- Provisioned concurrency: Konfigurasikan provisioned concurrency untuk menjaga instance fungsi tetap hangat, memastikan waktu respons yang konsisten untuk beban kerja kritis.
- Batas waktu dan batas konkurensi: Tetapkan batas waktu dan reserved concurrency yang sesuai untuk mencegah fungsi tak terkendali dan menjaga lingkungan Lambda tetap stabil.
3. Alat apa yang dapat Anda gunakan untuk memantau dan men-debug fungsi Lambda?
Lambda secara otomatis mengirim metrik ke Amazon CloudWatch, termasuk jumlah permintaan, latensi, tingkat kesalahan, dan lainnya.
Kita dapat menggunakan CloudWatch Logs untuk mengakses log yang dihasilkan oleh kode fungsi kita dan runtime Lambda.
Untuk penelusuran dan pemecahan masalah kinerja aplikasi Lambda terdistribusi, kita dapat menggunakan AWS X-Ray.
4. Untuk apa Lambda extensions digunakan?
Lambda extensions memungkinkan kita meningkatkan fungsi dengan mengintegrasikan alat pemantauan, observabilitas, keamanan, dan tata kelola.
Ekstensi dapat berjalan sebagai proses terpisah di lingkungan eksekusi untuk menangkap informasi diagnostik atau mengirim data ke tujuan kustom.
Contohnya termasuk ekstensi Datadog untuk metrik dan jejak, serta ekstensi AWS AppConfig untuk pembaruan konfigurasi dinamis.
5. Apa itu event source mapping?
Event source mapping adalah sumber daya Lambda yang membaca item dari sumber peristiwa dan memanggil sebuah fungsi.
Kita dapat menggunakan event source mapping untuk memproses item dari Amazon DynamoDB streams, Amazon Kinesis streams, antrean Amazon MQ, Apache Kafka yang dikelola sendiri, antrean Amazon SQS, dan lainnya.
Lambda menyediakan mekanisme polling untuk membaca batch rekaman dari sumber peristiwa dan memanggil sebuah fungsi.
Pertanyaan Wawancara AWS Lambda Tingkat Lanjutan
1. Bagaimana Anda mengontrol akses ke fungsi Lambda?
AWS Lambda menggunakan IAM (Identity and Access Management) untuk mengontrol akses pada dua level:
- Kebijakan berbasis sumber daya menentukan akun AWS, layanan, dan sumber daya mana yang diizinkan untuk memanggil fungsi.
- Peran eksekusi fungsi menentukan layanan dan sumber daya AWS apa yang dapat diakses oleh kode fungsi. Mengikuti prinsip hak istimewa paling sedikit, kebijakan ini harus seketat mungkin sambil tetap memungkinkan fungsi menjalankan tugas yang dimaksudkan.
2. Bagaimana Anda meminimalkan cold start di Lambda?
Cold start terjadi ketika Lambda perlu menginisialisasi lingkungan eksekusi baru untuk memproses permintaan pemanggilan. Untuk meminimalkan cold start dan meningkatkan responsivitas fungsi Lambda kita, kita dapat menerapkan beberapa strategi:
- Manfaatkan SnapStart: Fitur ini (tersedia untuk runtime tertentu) memungkinkan kita mempertahankan lingkungan yang telah diinisialisasi, secara signifikan mengurangi waktu startup untuk pemanggilan berikutnya.
- Aktifkan provisioned concurrency: Dengan menjaga kumpulan lingkungan yang sudah diinisialisasi tetap siap, kita dapat menghilangkan cold start untuk beban kerja yang dapat diprediksi.
- Optimalkan ukuran paket: Mengurangi ukuran paket fungsi dengan menghapus dependensi yang tidak perlu dan mengoptimalkan kode dapat mempercepat proses inisialisasi.
- Pilihan bahasa: Memilih bahasa seperti Go atau Rust, yang dikenal memiliki waktu startup lebih cepat daripada bahasa berbasis JVM, juga dapat membantu mengurangi keterlambatan cold start.
- Reuse konteks eksekusi: Memisahkan kode fungsi Lambda dari logika penyiapan awal memungkinkan kita menggunakan kembali konteks eksekusi antar pemanggilan, sehingga mengurangi overhead lebih lanjut.
3. Apa beberapa praktik terbaik keamanan API yang umum untuk Lambda?
Saat mengekspos fungsi Lambda melalui API Gateway, beberapa praktik terbaik keamanan meliputi:
- Menggunakan IAM atau Lambda authorizer untuk mengautentikasi dan mengotorisasi permintaan.
- Mengaktifkan Amazon Cognito user pools untuk manajemen pengguna.
- Mendefinisikan kebijakan sumber daya untuk mengizinkan atau menolak akses berdasarkan properti permintaan seperti IP sumber.
- Menyiapkan mTLS untuk komunikasi klien-server yang aman.
- Menggunakan AWS WAF untuk melindungi dari eksploit web umum yang menargetkan API.
4. Apa perbedaan antara Lambda container images dan paket deployment .zip?
Lambda container images memungkinkan pengemasan kode fungsi dan dependensi dalam format kontainer yang kompatibel OCI. Mari bandingkan container images dengan paket deployment .zip:
|
Fitur |
Container Images |
Paket Deployment .zip |
|
Fleksibilitas Runtime |
Bawa runtime sendiri (bahasa atau versi apa pun) |
Terbatas pada runtime yang telah ditentukan Lambda |
|
Ukuran Deployment |
Hingga 10GB |
Hingga 250MB (setelah diekstrak) |
|
Deployment & Cold Start |
Deployment lebih lambat dan berpotensi latensi cold start lebih tinggi |
Deployment lebih cepat dan umumnya latensi cold start lebih rendah |
|
Perkakas & Alur Kerja |
Integrasi mulus dengan perkakas dan alur kerja kontainer yang sudah ada |
Mungkin memerlukan perkakas tambahan untuk manajemen dependensi dan deployment |
|
Paling Cocok Untuk |
Aplikasi dengan dependensi besar atau kebutuhan runtime kustom |
Aplikasi yang lebih kecil dan yang kompatibel dengan runtime yang telah ditentukan Lambda |
5. Apakah fungsi Lambda dapat memanggil fungsi Lambda lainnya?
Ya, fungsi Lambda dapat memanggil fungsi lain secara langsung menggunakan AWS SDK. Kasus penggunaan umum meliputi orkestrasi fungsi, mengagregasi hasil dari beberapa fungsi, dan memecah pemrosesan peristiwa secara paralel.
Saat sebuah fungsi Lambda memanggil fungsi lain, kebijakan berbasis sumber daya pada fungsi yang dipanggil harus secara eksplisit memberikan akses untuk mengizinkan pemanggilan dari fungsi pemanggil.
Pertanyaan Wawancara AWS Lambda Praktis
1. Bagaimana Anda menerapkan REST API sederhana menggunakan Lambda dan API Gateway?
Kita dapat menerapkan REST API sederhana menggunakan Lambda dan API Gateway dengan langkah-langkah berikut:
- Buat fungsi Lambda: Kembangkan fungsi Lambda yang menerima input dari API Gateway sebagai objek event dan mengembalikan objek respons dengan data dan kode status.
- Buat API Gateway: Di API Gateway, kita membuat REST API baru dengan resource dan method yang sesuai dengan path API dan metode HTTP.
- Konfigurasikan integrasi: Kita mengonfigurasi tipe integrasi method sebagai Lambda proxy dan menentukan fungsi yang akan dipanggil
- Deploy API: Deploy API untuk menghasilkan endpoint URL publik agar dapat diakses.
- Uji secara menyeluruh: Kita dapat menggunakan alat seperti cURL atau Postman untuk memastikan API berfungsi dengan benar, dengan fungsi Lambda menangani permintaan dan mengembalikan respons yang sesuai.
2. Bagaimana Anda mengonfigurasi fungsi Lambda untuk memproses peristiwa dari bucket S3?
Kita dapat mengonfigurasi fungsi Lambda untuk memproses peristiwa dari bucket S3 dengan langkah-langkah berikut:
- Kita membuat fungsi Lambda dengan izin yang sesuai untuk mengakses bucket S3.
- Di konsol S3, kita mengonfigurasi notifikasi peristiwa pada bucket sumber.
- Kita memilih jenis peristiwa yang memicu notifikasi, seperti pembuatan atau penghapusan objek.
- Kita menentukan fungsi Lambda sebagai tujuan notifikasi.
- Kita menguji dengan melakukan tindakan pada bucket S3 yang sesuai dengan jenis peristiwa yang dikonfigurasi.
- Kita memverifikasi bahwa fungsi Lambda dipanggil dengan peristiwa yang berisi detail tindakan S3 tersebut.
3. Bagaimana Anda mengonfigurasi fungsi Lambda untuk menulis data ke tabel DynamoDB?
Kita dapat mengonfigurasi fungsi Lambda untuk menulis data ke tabel DynamoDB dengan enam langkah berikut:
- Kita membuat tabel DynamoDB dengan kunci primer yang sesuai dan indeks sekunder yang diperlukan.
- Kita membuat peran IAM untuk fungsi Lambda dengan izin untuk mengakses DynamoDB.
- Kita membuat fungsi Lambda dan melampirkan peran IAM tersebut.
- Kita menggunakan SDK DynamoDB untuk membuat instance klien dengan nama tabel.
- Kita menggunakan metode
put_itemuntuk menulis item ke tabel, dengan menentukan atribut kunci dan field lainnya. - Uji fungsi dengan peristiwa contoh dan gunakan kueri DynamoDB untuk memverifikasi data ditulis dengan benar.
4. Bagaimana Anda menerapkan fungsi Lambda terjadwal?
Kita dapat menerapkan fungsi Lambda terjadwal dengan langkah-langkah berikut–kita:
- Membuat fungsi Lambda untuk melakukan tugas yang diinginkan sesuai jadwal.
- Membuka konsol Amazon EventBridge dan membuat aturan baru.
- Menentukan ekspresi jadwal untuk aturan menggunakan sintaks rate atau cron.
- Memilih fungsi Lambda sebagai target untuk aturan.
- Menyimpan aturan dan menguji dengan menunggu peristiwa terjadwal berikutnya.
- Memverifikasi eksekusi fungsi di metrik dan log CloudWatch.
5. Bagaimana Anda mengalihkan trafik secara bertahap ke versi baru fungsi Lambda?
Untuk mengalihkan trafik ke versi baru fungsi Lambda, kita:
- Menerbitkan versi baru fungsi Lambda dengan kode yang diperbarui.
- Membuat alias yang menunjuk ke versi lama yang stabil.
- Memperbarui alias untuk membagi trafik antara versi lama dan baru menggunakan bobot (misalnya, 90/10).
- Secara bertahap menyesuaikan bobot untuk mengalihkan lebih banyak trafik ke versi baru sambil memantau metrik.
- Setelah puas, perbarui alias untuk mengirim 100% trafik ke versi baru.
- Ulangi proses untuk pembaruan fungsi berikutnya, memperlakukan versi sebelumnya sebagai versi stabil yang baru.
Kesimpulan
Pertanyaan wawancara AWS Lambda yang umum ini menguji pemahaman kandidat tentang konsep inti Lambda, praktik terbaik, dan pola penggunaan praktis.
Penting untuk diingat bahwa pengalaman langsung dalam membangun dan mengoperasikan aplikasi Lambda sangat berharga untuk memantapkan konsep-konsep ini.
Untuk mempelajari lebih lanjut, lihat dua kursus berikut:
Seorang data scientist serbabisa yang senang berbagi pengetahuan dan memberi dampak bagi orang lain, Zoumana adalah pembuat konten di YouTube dan penulis teknologi teratas di Medium. Ia menikmati berbicara di depan umum, ngoding, dan mengajar. Zoumana meraih dua gelar magister: yang pertama di bidang ilmu komputer dengan fokus Machine Learning di Paris, Prancis, dan yang kedua di bidang Data Science dari Texas Tech University di AS. Kariernya dimulai sebagai Pengembang Perangkat Lunak di Groupe OPEN, Prancis, lalu bergabung dengan IBM sebagai Konsultan Machine Learning, di mana ia mengembangkan solusi AI end-to-end untuk perusahaan asuransi. Zoumana kemudian bergabung dengan Axionable, startup AI Berkelanjutan pertama yang berbasis di Paris dan Montreal. Di sana, ia berperan sebagai Data Scientist dan mengimplementasikan produk AI, terutama use case NLP, untuk klien dari Prancis, Montreal, Singapura, dan Swiss. Selain itu, 5% dari waktunya didedikasikan untuk Riset dan Pengembangan. Saat ini, ia bekerja sebagai Senior Data Scientist di IFC - World Bank Group.


Salah satu layanan AWS terpenting untuk dipahami adalah AWS Lambda—layanan komputasi serverless yang menjalankan kode sebagai respons terhadap peristiwa dan secara otomatis mengelola sumber daya di baliknya.
Seiring meningkatnya adopsi Lambda, pertanyaan tentang AWS Lambda umum muncul dalam wawancara teknis.
Panduan ini menyederhanakan persiapan wawancara AWS Lambda dengan menyediakan daftar pertanyaan dan jawaban pilihan. Kami membahas dasar-dasarnya, dan kami juga menelusuri skenario lanjutan dan praktis.
Jika Anda ingin mempelajari lebih lanjut tentang AWS, lihat kursus ini tentang AWS Cloud Technology and Services.