<
Sisi Gelap dari Serverless: Biaya Tersembunyi di AWS Lambda

Sisi Gelap dari Serverless: Biaya Tersembunyi di AWS Lambda


Arsitektur Serverless adalah produk yang hebat, karena dapat membantu Anda dalam penyesuaian skala dan efisiensi biaya secara bersamaan. Namun, kami menghadapi beberapa isu baru. Apa itu? Yah, solusi serverless Anda memiliki beberapa biaya tersembunyi :)

Berapa Biaya Sebenarnya dari Serverless?

Tidak hanya membayar CPU dan RAM, kamu juga aakan membayar lebih dari itu. Mari kita bagi menjadi 2 bagian: Biaya Terlihat dan Biaya Tersembunyi.

Biaya Terlihat:

  • Requests: Biaya ini sekitar $0.2 per 1jt eksekusi.
  • CPU & RAM usage: $0.000016 per GB-second juga tergolong murah.
  • Temporary Storage: Biaya kecil sebesar $0.000000037 untuk setiap GB-second, tidak benar-benar merugikan Anda.

Biaya Tersembunyi:

  • API Requests: Saat Anda menggunakan Serverless, aplikasi Anda akan sering melakukan panggilan API. Ini bisa menjadi cukup mahal, sekitar $4,25 per 1 juta eksekusi.
  • Networking: Anda akan dikenakan biaya sekitar $0,09-0,12 per GB-out, yang dapat sangat mahal jika Anda tidak hati-hati dengan pengiriman data keluar.
  • Other Coupling Product: Jika Anda menggunakan arsitektur serverless, mungkin Anda memerlukan Cloudwatch Log, S3, SNS, SQS, DynamoDB, MemoryDB, dan sebagainya.

Mari buat asumsi,

  • Tanpa Plan Gratis
  • Traffic 1 million
  • Rata-rata RAM adalah 512MB
  • Rata-rata process adalah 100ms
  • Rata-rata Output 10KB
Komponen Formula Harga %
Requests $0.2 x 1,000,000req / 1,000,000 $0.2 3.27%
CPU & RAM $0.000016 x 512mb / 1024 x 100ms / 1000 x 1,000,000req $0.8 13.09%
Storage $0.000000037 x 512mb / 1024 x 100ms / 1000 x 1,000,000req $0.002 0.03%
API Requests $4.25 x 1,000,000req / 1,000,000 $4.25 69.57%
Networking $0.09 x 1,000,000req * 10KB / 1024 / 1024 $0.858 14.04%
Total $6.11 100%

Kamu pikir Lambda itu mahal? Anda akan melihat biaya terbesar adalah Basis-Network.

Pemeliharaan Source Code

Sebuah paradigma di Serverless adalah 1 fungsi untuk 1 pekerja. Saat kamu butuh sistem kompleks untuk aplikasimu, kamu pasti butuh banyak fungsi. Serverless code = banyak lines of code.

Line of Code Comparison

Butuh orang untuk memelihara itu semua. Dia harus bisa menjaga semua berjalan lancar. Banyak lines of code = makin kompleks untuk dipelihara.

Menunggu Proses Cold Start

Ketika Anda membutuhkan latency rendah, mungkin tidak bisa dilakukan. Setiap vendor Serverless memiliki cold start, karena mereka perlu alokasi kode Anda ke instance mereka. Ketika kode Anda dioptimalkan menjadi 1-digit milidetik, Anda bisa mendapatkan waktu lebih dari 100ms hanya untuk cold start. Beberapa vendor memiliki solusi "provision" untuk mengatasi masalah ini, namun biayanya tidak semurah yang diiklankan.