Mengonfigurasi AWS Lambda untuk produksi

Mendeploy Aplikasi di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Berhasil saat diuji

  • Fungsinya lulus semua uji
  • Di produksi mengalami timeout dan throttling
  • Kodenya baik; konfigurasinya yang tidak

Fungsi serverless yang lulus pengujian tetapi bermasalah di produksi, dengan kenop memori dan timeout yang disetel

Mendeploy Aplikasi di AWS

Konfigurasi Lambda yang penting di produksi

Logo Lambda di tengah dengan empat kotak konfigurasi produksi: Memory dengan kenop penskalaan CPU, Timeout dengan jam, Ephemeral Storage, dan Concurrency menampilkan instance fungsi paralel

  • Memory: juga menskalakan CPU dan jaringan
  • Timeout: detik maksimum sebelum fungsi dihentikan
  • Ephemeral storage: ruang sementara di /tmp
  • Concurrency: berapa banyak yang berjalan sekaligus
Mendeploy Aplikasi di AWS

Penentuan memori dan kaitannya dengan CPU

  • Lebih banyak memori = lebih banyak CPU secara proporsional
  • Fungsi yang terikat CPU bisa lebih cepat dengan memori lebih tinggi
  • Durasi lebih cepat bisa berarti biaya lebih rendah
  • Tentukan ukuran lewat pengujian, bukan tebak-tebakan

Kurva memori vs biaya: durasi turun tajam saat memori naik lalu mendatar, total biaya berbentuk U dengan titik optimal termurah disorot di tengah

Mendeploy Aplikasi di AWS

Concurrency: reserved vs provisioned


Reserved concurrency

  • Membatasi eksekusi simultan maksimum
  • Melindungi sistem hilir dan fungsi lain

Provisioned concurrency

  • Memanaskan instance terlebih dulu, tanpa cold start
  • Untuk fungsi berlatensi rendah yang menghadap pengguna
Mendeploy Aplikasi di AWS

Mengemas konfigurasi dan kode bersama

  • Environment variables: konfigurasi per lingkungan
  • Layers: berbagi kode dan dependensi antar fungsi
  • Extensions: berjalan bersama fungsi untuk alat bantu
  • Jauhkan konfigurasi dari paket deployment

Opsi pengemasan Lambda: environment variables menyimpan konfigurasi eksternal, layers berbagi pustaka umum antar fungsi, dan extensions berjalan di samping handler untuk pemantauan atau secret

Mendeploy Aplikasi di AWS

Menghubungkan Lambda ke VPC

Lambda terhubung ke VPC privat via ENI di subnet privat, security group mengendalikan akses keluar, dan NAT gateway menyediakan konektivitas internet

  • Lampirkan Lambda ke private subnets untuk sumber daya internal
  • Lambda membuat ENI di VPC Anda
  • Security groups mengendalikan apa yang dapat dijangkau
  • Butuh NAT atau endpoint VPC untuk akses keluar
Mendeploy Aplikasi di AWS

Menangani kegagalan dengan destinations dan DLQ

  • Pemanggilan async mengulang otomatis saat gagal
  • Lambda Destinations: merutekan onSuccess dan onFailure
  • Dead-letter queue: menangkap event yang tak pernah berhasil
  • Jangan pernah membuang event gagal secara diam-diam

Penanganan kegagalan async Lambda: loop retry menuju Lambda Destinations dengan cabang onSuccess dan onFailure, serta dead-letter queue menangkap event yang menghabiskan semua retry

Mendeploy Aplikasi di AWS

Ayo berlatih!

Mendeploy Aplikasi di AWS

Preparing Video For Download...