Nedir Bu AWS Lambda?
Merhabalar, bu yazımda AWS Lambda nedir, neden kullanmalıyızdan bahsetmek istedim;
AWS Lambda, sunucu sağlama ve yönetme ihtiyacı olmadan yazılan kodu çalıştırmaya yarayan sunucusuz bilgi işlem hizmetidir.
AWS Lambda sayesinde kodumuz sadece ihtiyaç duyulduğunda çalıştırılır ve işlem süresine göre ücretlendirilir, kod çalışmadığı durumlarda herhangi bir ücretlendirme olmaz.
İhtiyaç günde birkaç istek veya saniyede binlerce isteğe kadar değişebilir, bu durumda AWS Lambda otomatik olarak ölçeklendirme yaparak performansta herhangi bir kayıp yaşanmasını önler.
AWS Lambda, yazılan kodu yüksek kullanılabilirliğe sahip bir altyapıda çalıştırır, sistem bakımı, kapasite ve otomatik ölçeklendirme, monitoring, loglama gibi işlemlerin tümünü kendi gerçekleştirir. Kodumuzu AWS Lambda’nın desteklediği dillerden birinde yazmamız yeterli.
AWS Lambda’yı neden kullanmalı?
AWS Lambda, standart birçok uygulama senaryosu için ideal bir servis. Uygulama geliştirmeye başlamadan önce bir altyapı oluşturmak gerekiyor. Sunucu kiralamak, gerekli kurulumları gerçekleştirmek, kodlamayı yapmak ve uygulamayı çalıştırmak; bunların hepsi ayrı ayrı iş yükü demek. Bunlarla uğraşmadan kodlamayı yapıp uygulamayı çalıştırmak güzel olmaz mı? İşte sunucusuz çalışmanın en güzel yanı! Kodu yazıyoruz, ZIP ya da container image olarak upload ediyoruz ediyor ve uygulamamız çalışmaya hazır! Artık tek yapmamız gereken bu Lambda fonksiyonunu tetiklemek. Ne zaman tetiklenirse o zaman çalışacak ve çalışmadığı zamanlarda da masraf çıkarmayacak!
Tabii bu aşamaları yapmak artık kolay da geliyor olabilir, cezbeden tarafı nedir bu AWS Lambda’nın diye soru işareti oluşuyor olabilir akılda ama durun bu daha başlangıç, uygulamayı yeni çalıştırdık!
AWS Lambda’nın ücretsiz sürümünde her ay ilk 1 milyon istek ücretsiz, daha sonrasında milisaniye ve kodun tetiklenme sayısına göre hesaplanıyor ve her 1m istek başına $0.20 gibi bir ücretlendirme çıkıyor karşımıza.
Yani bir fikri hızlıca hayata geçirip tutup tutmayacağını test etmenin maliyeti neredeyse sıfır!
Bunun yanında canlıda kullanacağınız servislerde Compute Savings Plan gibi planlamalarla %17'ye varan bir indirim de söz konusu.
Ölçeklenebilme konusu da AWS Lambda’yı çekici kılan en önemli şey. Uygulamaya ne kadar istek gelirse gelsin kodunuzu eşzamanlı olarak çalıştıracağından, isterse aynı anda yüzbinlerce istek gelsin, ölçeklenerek uygulamanızın erişilemez olma durumunu ortadan kaldırıyor ve sorunsuzca devam edebiliyorsunuz. Bunun güzel tarafı uygulamaya sadece yüzlerce istek geleceği zamanlarda da yüzbinlerce isteği kaldıracak bir sunucunun maliyetinden kurtarıyor olması.
Çalıştırılacak fonksiyon için uygun bellek boyutunu seçerek kodun çalışma süresi de optimize edilebilir. Bu sayede fonksiyon uygun ölçekte tutarlı bir performans gösterecektir.
Aşağıdaki örnek iş akışında bir hava durumu uygulamasının çalışması gösterilmiş.
- Kullanıcı, bölgesindeki hava durumunu öğrenmek için linke tıklıyor.
- Amazon API Gateway, ilgili endpointe REST API çağrısı yapıyor. Lambda burada tetikleniyor.
- Lambda fonksiyonu, DynamoDB’den kullanıcının istediği bölgeye ait hava durumu bilgisini istiyor ve kullanıcıya dönüş yapıyor.
Bunun yanısıra AWS üzerinde AWS Lambda’nın kullanıldığı birçok senaryo mevcut. Buradan bir örnek olarak Todo uygulaması kaynak kodlarını inceleyebilirsiniz. Kullanıcı doğrulama yöntemi olarak AWS Cognito kullanılmış, aşağıdaki resimde de Todo App için gerekli her fonksiyonu ayrı Lambda fonksiyonları olarak kullanılmış olduğunu görebilirsiniz.
Kaynak;