"Sadece kodunuzun çalıştığı milisaniyeler için ödeme yaparsınız" şeklindeki serverless efsanesi, AWS Lambda üzerinde bir AI ajanı çalıştırmaya çalıştığınızda çöker. Uygulamada en büyük maliyet kalemleri Lambda hesaplama ücreti değil; soğuk başlatma (cold-start) gecikmesi, yeniden deneme döngüleri ve bu döngülerin oluşturduğu token kullanımıdır.

Alışılagelmiş serverless tablosu AI ajanlarını neden yanıltıyor?

Çoğu geliştirici, bir Lambda fonksiyonunu saf bir hesaplama kum havuzu (sandbox) gibi görür: handler'ı hızlı tutun, mütevazı bir bellek boyutu ayarlayın ve faturanın sabit kaldığını izleyin. Bu, basit HTTP uç noktaları için işe yarar; ancak bir dil modelini çağıran, yanıtı değerlendiren ve muhtemelen tüm döngüyü yeniden deneyen bir ajan, tek bir Lambda çağrısıyla birebir eşleşmez. Ajanın dahili iş akışı, model çağrılarının sayısını katlar ve her ek çağrı, hesaplama maliyetini gölgede bırakabilecek bir token maliyeti ekler.

Soğuk başlatmalar gizli fiyat etiketidir

Bir Lambda konteyneri ilk kez tahsis edildiğinde (provisioned), dağıtım paketini açması gerekir. Söz konusu ajan büyük bir Python kütüphanesi setini bünyesine kattığı için imaj boyutu oldukça büyük olabilir. Sadece yerel testlerde kullanılan bir tarayıcı otomasyon kütüphanesi gibi yalnızca geliştirme aşamasına özel araçları çıkarmak, imaj boyutunu küçültür; bu da paket açma süresini kısaltır. Daha ince bir paket, fonksiyonun bir isteği işlemek için daha hızlı hazır hale gelmesi anlamına gelir ve konteynerin ısınmasını beklemek için harcanan süreyi azaltır.

İkinci bir kaldıraç ise başlatma kodunun nerede bulunduğudır. Ajanın grafiğini modül içe aktarma (import) sırasında oluşturarak, ağır iş yükünün her istekte değil, konteyner başına yalnızca bir kez gerçekleşmesini sağlayabilirsiniz. Isınmış (warm) çağrılar ise bu işi tamamen atlar. Buradaki ödün, biraz daha uzun bir soğuk başlatma süresidir; ancak getirisi, konteyner ısındıktan sonra istek başına neredeyse sıfıra yakın kurulum süresidir.

Bellek, aynı zamanda bir gecikme ayarıdır

Lambda'da ayırdığınız bellek miktarı, fonksiyonun alacağı CPU payını da belirler. Fonksiyonu 1 GB belleğe ayarlamak, ona tam bir sanal CPU çekirdeği sağlar. Ekstra CPU, kütüphanelerin içe aktarılmasını ve ajan grafiğinin oluşturulmasını hızlandırarak hem soğuk başlatma hem de ısınma gecikmesini azaltır.

Döngü maliyeti: Yeniden denemeler token harcamasını katlar

Ajan, bir çalışan-değerlendirici (worker-evaluator) döngüsünü takip eder. Çalışan bir yanıt üretir, değerlendirici bunu kontrol eder ve eğer değerlendirici bir hata tespit ederse görev çalışana geri gönderilir. Döngü, pes etmeden önce beş kez tekrarlanabilir. Bu da tek bir harici isteğin şunları tetikleyebileceği anlamına gelir:

  • çalışan modeline beş adede kadar çağrı
  • değerlendirici modeline beş adede kadar çağrı
  • ajanın yapmaya karar verdiği herhangi bir sayıda araç (tool) çağrısı

Lambda faturası öngörülebilir kalır çünkü AWS milisaniye başına ücret alır, ancak token faturası, kaç kez yeniden deneme yapılması gerektiğine bağlı olarak büyük dalgalanmalar gösterebilir.

Zaman aşımı tuzağı: API Gateway vs. Lambda

API Gateway, önünde durduğu HTTP isteği için 29 saniyelik katı bir zaman aşımı (timeout) uygular. Alttaki Lambda fonksiyonu beş dakikalık bir yürütme penceresi için yapılandırılmış olsa bile, beş turluk bir ajan döngüsü bu sınırı kolayca aşabilir. Lambda Function URL'leri ile API Gateway'i devre dışı bırakmak, 29 saniyelik sınırı ortadan kaldırarak fonksiyonun döngüsünü kesintiye uğramadan tamamlamasına olanak tanır.

Geliştiriciler ne için bütçe ayırmalı?

Ders basit: Sunucusuz bir AI ajanı için bütçe planlamak, Lambda çalışma süresinin milisaniyelerini toplamanın ötesindedir. Şunları hesaba katmanız gerekir:

  • dağıtım paketinin boyutu ve bunun sonucunda oluşan soğuk başlatma gecikmesi
  • CPU'yu ve dolayısıyla içe aktarma hızını belirleyen bellek ayarı
  • token kullanımını doğrudan etkileyen çalışan-değerlendirici döngüsündeki beklenen yeniden deneme sayısı
  • erken zaman aşımlarını önlemek için ön uç seçimi (API Gateway vs. Function URL)

Bu değişkenlerden herhangi birini göz ardı etmek, öngördüğünüz faturaya hiç benzemeyen bir fatla karşılaşmanıza neden olabilir.