AWS çok mu pahalı?

Furkan Zümrüt
3 min readJun 25, 2019

--

Trendyol Backend Developer arıyor!
Buraya tıklayarak başvurabilirsiniz.

Birçok insan AWS’in çok pahalı olduğunu düşünüyor. Ben AWS’e para vereceğime kendim sunucu alırım bakımını ben yaparım veya Türkiye’de daha ucuz hem TL ile alıyorum, dolar da uçtu hani?!?!

AWS’i ucuz ve etkin bir şekilde kullanabilmek için önce AWS’in servislerini iyi bir şekilde anlamak gerekiyor. İhtiyacı bulut ortamının yeteneklerine göre iyi belirlemeyip, On-Premise altyapılardaki gibi hareket ederek EC2'ları yığarsam tabi ki AWS pahalı olacaktır. Bunun yerine AWS servislerini kullandığın kadar öde yaklaşımını mimariye iyice oturtturmak, doğru yerde doğru servisi kullanmak gerekir.

Örneğin Trendyol üzerinde kullandığımız link kısaltma servisi olan ty.gl ’den biraz bahsedelim.

Aşağıdaki akışta gösterildiği gibi link oluşturacağımız zaman sırasıyla CloudFront ve Api Gateway üzerinden geçip Lambda’yı çalıştırmakta ve linkin uzun hali ve link ile ilgili diğer bilgileri DynamoDB üzerinde depolamaktadır. Client kısaltılmış linke geldiği zaman, uzun link CloudFront Cache’inde bulunduğu için Lambda bir daha çalışmamaktadır.

Serverless Url Shortener

Şimdi bu basit mimarinin maliyetini düşünelim. Trendyol’da şuana kadar 50 milyon link kısaltıldı.

  • Ayda yaklaşık 15 milyon Lambda çalıştırılıyor ve bunun karşılığı 3$
  • DynamoDB Read Capacity, write data storage vs. derken yaklaşık 7$
  • CloudFront Data Transfer 4$

Kısaca 14$ gibi bir miktara içinde 50 milyon link barındıran tamamen Serverless bu sebeple herhangi bir scale derdi olmayan tam bir yap unut modeli elde etmiş oluyoruz.

Bu paylaştığım sadece basit bir örnekti. AWS’nin en büyük avantajlarından biri AWS üzerine kurduğumuz bazı mimarilerin bakım ihtiyacı olmaması. Bu durumda AWS’in var oluşundaki ana düşünceyi anlamak çok önemlidir. Amazonun bu konuda odaklandığı en büyük nokta yazılım geliştiricileri. Ben bir servis yapayım, yazılım geliştirici sadece kodunu geliştirmeye, ürününü çıkarmaya odaklansın. AWS’in çıkardığı çoğu servisteki ortak odak noktası budur. Ben AWS kullanıyorsam öyle bir mimarı kurmalıyım ki AWS’e bir daha girme ihtiyacım olmasın. Sadece koduma odaklanayım düşüncesi bu tip yapılar kurarken önemli olmalı.

Bir düşünelim.. Çok önemli bir kampanya var ve çok ciddi bir trafik bekleniyor. On-Premise bir altyapı üzerindeyiz. Ben sırf bu kampanya var diye ekstra bir buffer bırakmak içinde yeni sunucular almalı bunlara kurulum yapmalı scale etmeliyim. Evet bu gerçekten kampanya gününü kurtarır. Peki ya sonra? Kampanya sonrası trafik düştüğünde bu kullanmadığımız sunucular ne olacak? AWS’e verdiğimiz rakamlar dolar bazında yüksek olabilir ama benim bir kampanyam varsa aynı gün içerisinde belkide 1000x scale edebilir günü rahat bir şekilde kurtarabilir ve kullandığım kadar ödeyebilirim. Ertesi gün ise mimarimi bir akordiyon misali küçültür eski haline çeviririm.

Sonuç olarak AWS gibi servisler kullanırken mimariyi tamamen On-Premise tabanlı altyapılarda kullandığımız ve tasarladığımız mimarilerden tamamen ayrı tutup, bulut tabanlı mimarinin yeteneklerini kullanmalı, bizim için en masrafsız ve en az bakım gerektiren sistemler tasarlamalıyız. Ancak bu şekilde AWS gibi servisler gerçekten yararlı ve bizim için masrafsız olur.

— — —

--

--

No responses yet