AWS Lambda + API Gateway ile WebApp ve RESTfull API

API Gateway + Lambda

WebApp’leri Java, Node.js, PHP, ASPNet, .NET, Ruby on Rails, Phyton vb hangi dil ile yazılıyor olursa olsun bir AppServer üzerine deploy edilerek bunun üzerinden WebApp’lar sunulur.

Temel’de Uygulama Sunucu’sunun üzerine bir paket olarak deploy edilen WebApp uygulaması 80 portu üzerinden hizmet verir.

SquirrelBin Uygulaması göreceğiniz gibi

WebPages Hosting AWS S3 Üstlenir: S3 bucketının webpages hosting sağlayarak içerisinden html+js(angular)+css dosyalarını serve ettiğini görebilirsiniz.

DNS Ayarlamalarını Route53 Üstlenir: Aşağıdaki örnekte squirrelbin.com adresinin S3 yönlendirilme işlemini üstleniyor.

REST API işini AWS API Gateway Üstlenir: /acorns altında GET, POST,PUT DELETE metodlarının https endpointlerinin oluşturulmasını sağlıyor.

Persist işini AWS Lambda + DynamoDB Üstlenir: Endpoint işlemlerini gerçekleştirecek AWS Lambda fonksiyonlarını görebilirsiniz. Lambda fonksiyonları gelen JSONları DynamoDB persist ederek veya buradan sorgulamalar yaparak görevlerini yerine getirirler.

Yukarıdaki resimdende görüldüğü gibi artık WebApp Docker Kopyalamak yerine fonksiyonlarımız en küçük parçalara böldük. Fonksiyonları paralelleştirdik.

Peki ne zaman App kopyalamak mantıklı, ne zaman Microservis Kullanmak Mantıklı.

Bu bence direk Business ile alakalı. Sizin işiniz gereği herkese birbirinden etkilenmeyecek App + DB sağlamak istiyorsanız. WebApp Docker kopyalamak yöntemini kullanırsınız. Bunun için hazır araçlarda mevcut. Eğer amacınız aynı platformdan daha performanslı scalable, reactive bir hizmet vermek ise yukarıdaki Lambda ortamını kullanırsınız.

Bazı Linkler