« Tüm yayınlar

1 Milyon Lambda Fonksiyonuna Ölçeklenmenin Verdiği Dersler

ProGlove'un hesap-başına-kiracı mimarisiyle binlerce AWS hesabından 1 milyon Lambda fonksiyonuna ölçeklenirken karşılaştığı kota, maliyet ve mimari dersler.

ProGlove, akıllı barkod okuyucularını bağladığı Insight adlı SaaS platformunu tamamen sunucusuz ve her müşteri için ayrı bir AWS hesabı olacak şekilde tasarladı. Bu 'hesap başına kiracı' mimarisi başlangıçta güvenlik izolasyonu ve maliyet şeffaflığı sağlarken, binlerce hesaba ve milyonlarca Lambda fonksiyonuna ulaşıldığında beklenmedik sorunları da beraberinde getirdi. CloudFormation StackSets ile toplu dağıtım ve Step Functions tabanlı otomatik hesap oluşturma, ölçeklenmenin temel yapı taşları haline geldi.

Ekip, yüzlerce hesabın aynı zamanlanmış işlemleri (rate(5 minutes) gibi) tetiklemesi sonucu kendi altyapısına karşı bir tür kendi kendini DDoS'a uğratma durumu yaşadı; çözüm jitter ve rastgele gecikmelerle isteklerin zaman içine yayılması oldu. Gözlemlenebilirlik maliyetleri de küçük ölçekte önemsiz görünürken binlerce hesapta ciddi bir gider kalemine dönüştü; asıl maliyet sürücüsünün log/metrik aktarımı olduğu fark edilince öncelikli veri ayrımı yapılarak maliyet önemli ölçüde düşürüldü.

Belki de en çarpıcı ders, 'boşta' bir sistemin bile maliyet üretebileceğiydi: EventBridge ile Lambda arasında SQS kullanmak sürekli kuyruk yoklaması nedeniyle inaktif hesaplarda bile maliyete yol açıyordu. Ekip, SQS'i kaldırıp AsyncEventsDropped ve ConcurrentExecutions gibi metriklere dayalı bir izleme yaklaşımına geçti, hata durumları için de merkezi bir DLQ mimarisi kurdu. Bu değişiklikler, gerçek sıfıra ölçeklenmeyi mümkün kılarken kiracı izolasyonunu korumak için ek disiplin gerektirdi.