AWS Lambda Nedir?
AWS Lambda, Amazon'un olay güdümlü compute servisidir: bir fonksiyon yüklersiniz, AWS gelen her olay için onun bir kopyasını çalıştırır ve invocation başına ödersiniz. Provizyon edilecek veya yamalanacak sunucu yoktur; sıfırdan binlerce eşzamanlı yürütmeye ölçekleme otomatiktir. Bu gerçekten değerlidir — ama "serverless", "sıfır operasyon" demek değildir ve Lambda'nın, bir mimariyi ona emanet etmeden önce bilinmeye değer keskin kenarları vardır.
Nasıl Çalışır?
Lambda fonksiyonları olaylarla tetiklenir: bir API Gateway HTTP isteği, S3'e düşen bir dosya, SQS'teki bir mesaj, bir EventBridge zamanlaması, bir DynamoDB stream'i. Her eşzamanlı olay kendi yürütme ortamını alır; ölçekleme bu sayede sunucu başına değil istek başınadır. Resmî olarak desteklenen runtime'lar Node.js, Python, Java, .NET, Go ve Ruby'yi kapsar; geri kalan her şey için özel runtime'lar ve 10 GB'a kadar container imajları vardır.
Pazarlamanın atladığı bir incelik: AWS altta yatan işletim sistemini ve runtime'ı yamalar, ama runtime sürümünün sahibi sizsiniz. Runtime'lar AWS'nin takvimine göre kullanımdan kaldırılır — Node.js sürümleri 18'den 20'ye, 22'ye ilerler, Python sürümleri eskir — ve her kullanımdan kaldırma, fonksiyon filonuzun tamamında bir test-ve-yükseltme döngüsü dayatır. Yüzlerce fonksiyonu olan ekipler bunu tekrarlayan bir operasyonel vergi olarak hisseder.
Fiyatlandırma Modeli
Lambda iki sayaçtan faturalar: istekler (şu anda milyon başına 0,20 $) ve GB-saniye cinsinden compute süresi — bellek tahsisi çarpı yürütme süresi, 1 ms hassasiyetle (x86'da GB-saniye başına yaklaşık 0,0000167 $, Graviton'da biraz daha az). Bellek 128 MB'tan 10 GB'a kadar yapılandırılabilir ve CPU onunla birlikte ölçeklenir; bu yüzden bir fonksiyona daha fazla bellek vermek onu çoğu zaman hem daha hızlı yapar hem de maliyeti neredeyse hiç artırmaz. Ücretsiz katman ayda bir milyon isteği ve 400.000 GB-saniyeyi kapsar. Bunun doğal sonucu: Lambda düşük veya ani dalgalanan trafik için son derece ucuzdur, sürekli yüksek kullanımda ise giderek pahalanır — orada Fargate veya EC2 üzerinde her zaman açık bir container, çoğu zaman Savings Plans ile birlikte, genellikle kazanır. Karar vermeden önce hesabı kendi gerçek trafiğinizle yapın.
Cold Start'lar ve Nasıl Hafifletilir?
Bir istek geldiğinde sıcak bir yürütme ortamı yoksa, Lambda bir tane oluşturmak zorundadır: kodu indir, runtime'ı başlat, sizin ilklendirme kodunuzu çalıştır. Bu cold start, küçük bir Python veya Node.js fonksiyonu için onlarca milisaniyeden, ağır bir JVM veya .NET uygulaması için birkaç saniyeye kadar değişir. Düşük trafikte isteklerin kayda değer bir kısmı cold start'a denk gelir — gerçek bir p99 olayını Lambda cold start ders çıkarımımızda yazdık.
Hafifletme adımları, denenecek sırayla: deployment paketlerini küçük, ilklendirmeyi lazy tutun; mümkün olan yerde daha hafif runtime'ları tercih edin; fonksiyonları önceden ilklendirilmiş bir snapshot'tan devam ettiren ve cold start'ları tipik olarak bir büyüklük mertebesi kısaltan SnapStart'ı etkinleştirin (Java, .NET ve Python için mevcut — Java'da ücretsiz, diğerlerinde cache-ve-restore başına ücretli); sıkı gecikme SLO'ları içinse ortamları sıcak tutan ama boştayken de faturalayan provisioned concurrency satın alın.
Lambda Ne Zaman KULLANILMAMALI?
- Uzun süren işler. Katı 15 dakikalık zaman aşımı büyük batch işlerini eler — orkestrasyon için Step Functions, yürütme için AWS Batch ve Fargate kullanın.
- Sürekli, öngörülebilir yüksek trafik. Kullanım istikrarlı biçimde yüksek olduğunda GB-saniye fiyatlandırması, her zaman açık container'lara karşı kaybeder.
- Sıkı düşük gecikmeli p99'lar — provisioned concurrency'ye para ödemeden.
- Uzun ömürlü bağlantılar. WebSocket'ler ve streaming oturumları yürütme modeliyle çatışır.
- Taşınabilirlik gereksinimleri. Olay formatları, IAM bağlantıları ve servis entegrasyonları sizi AWS'ye bağlar; bu çoğu zaman makul bir takas, ama bilinçli yapın.
Olay yapıştırıcısı, ani dalgalanan trafikli API'ler ve arka plan işleme için Lambda, AWS'de pragmatik varsayılan olmayı sürdürüyor — ve onu iyi deploy etmek çözülmüş bir problem; GitHub Actions'tan OIDC ile Lambda deploy rehberimize bakın. Yeni bir iş yükü için serverless ile container'lar arasında tartıyorsanız, bulut bilişim pratiğimiz tam olarak bu tür mimari ve maliyet değerlendirmesini yapar.
Bunu production'da mı çalıştırıyorsunuz? AWS Yönetilen Hizmetler ekibimiz bu tür ortamları 7/24 işletir — isimleri belli kıdemli mühendislerle izleme, olay müdahalesi, yama ve maliyet kontrolü, 3.000 €/ay'dan başlayan fiyatlarla.