AWS’de Maliyet Optimizasyonu

Ebru Dalkır
4 min readNov 28, 2020

--

Merhaba ben Ebru. Bestcloudfor.me teknoloji şirketinde Cloud Native Engineer olarak çalışmaktayım. Bir mühendis olarak işin teknik kısmının yanında business tarafına da hakim olmak bakış açımıza farklılık eklemesinin yanında, yaptığımız işlerin kalitesini de arttıracaktır. Ben de sizlere bu yazımda “Maliyet Optimizasyonu neden yapılır ve AWS tarafında bu işler nasıl yürütülür bunlardan bahsetmek istiyorum.

Bulut bilişim, kaynaklarının internet üzerinden, istek üzerine ve kullandıkça ödeme fiyatlandırmasıyla sunulmasıdır. Fiziksel veri merkezleri ve sunucuları satın almak, bunlara sahip olmak ve sürekliliklerini sağlamak yerine, Amazon Web Services (AWS) gibi bir bulut sağlayıcının sunduğu işlem gücü, depolama ve veritabanları gibi teknoloji hizmetlerine ihtiyaç duyduğumuzda erişebiliyoruz.

Bulut teknolojilerini kullanarak efektif çözümler sunmanın yanında, maliyet optimizasyonunu da başarılı bir şekilde yapmamız gerekmektedir. Bu yaptığımızın işin kalitesini arttıracaktır. İlk olarak kullandığımız bulut teknolojisinin ödeme standartlarını iyi bir şekilde incelememiz ve teknik altyapımızı bunu göz önüne alarak oluşturmalıyız. AWS tarafında bu işleri nasıl yürütülüyor hadi gelin bakalım.

AWS bize 3 çeşit ödeme modeli sunmaktadır. Bunlar;

1- Kullandıkça öde

Kullandıkça öde mantığında, AWS tarafında kullandığın kaynakların fiyatlandırılmasına göre ne kadar kullanıyorsa o kadar ödeme yapılıyor. Bu fiyatlandırma da kaynakların gereksinimlerine göre etkileyen bazı faktörler vardır. Mesela AWS’de bir sunucu oluşturmak istesek kuracağımız bölge, işletim sistemi, depolama alanı, instance type’ı gibi fiyatlandırmayı etkileyen faktörleri göz önünde bulundurmamız gerekir. Müşteri sistemini kurmadan önce uygulamanın ne kadar kaynağa ihtiyacı olduğunu belirleyip tahmini bir fiyatlandırma yapabilmek için “AWS Pricing Calculator” kullanılabilir. AWS Pricing Calculator’a buradan ulaşabilirsiniz.

2- Rezerve ederek ödeme

Rezerve ederek ödeme şeklinde önceden kaynaklarımız için ne kadar kullanacağımızı öngörüp bunu rezerve ediyoruz ve ödeme şeklimize göre bundan maliyet tasarrufu sağlayabiliyoruz. Rezerve Edilmiş Bulut Sunucuları satın alınırken peşin ödeme oranı ne kadar yüksek olursa indirim de o kadar fazla olabiliyor. Amazon EC2, RDS ve Elasticsearch gibi hizmetler için rezerve edilmiş kapasite yatırımı yapılabilir ve on-demand (isteğe bağlı) kapasite ile karşılaştırdığında %75'e kadar tasarruf sağlayabiliriz.

3- Daha fazlasını kullanarak daha az ödeme

AWS’de kullanımımız arttıkça toplu kullanım temelli indirimler alabilir ve önemli oranlarda tasarruf sağlayabiliriz. S3 gibi hizmetler için katmanlı fiyatlandırma uygulanır. Yani bunları ne kadar çok kullanırsak GB başına o kadar az ücret ödeyebiliyoruz.

Amazon EC2 için de ayrı ödeme seçenekleri mevcuttur. Bunlar;

  • Savings Plans, 1 veya 3 yıl boyunca sürekli bir kullanım tutarına (saat başına ödeme) taahhüt etmeye karşılık olarak EC2 ve Fargate kullanımında düşük fiyatlar sunan esnek bir fiyatlandırma modelidir.
  • Amazon EC2 Spot bulut sunucuları, bulut sunucularımız çalıştığı sırada geçerli olan spot fiyatı öderiz. İsteğe Bağlı(on-demad) seçeneğine göre %90'a kadar indirimlidir. Başlangıç ve bitiş zamanı esnek olan uygulamalarımız içi kullanabiliriz.

Burada uygun olan ödeme seçeneklerini uygulamalarımızın kaynak kullanımlarına göre belirliyoruz. Haftalık ve aylık olmak üzere kaynak kullanımlarımızı kontrol ederek, kullanımdaki ani artış ve azalışların raporlamaları yapılabilir. Bu rapordan çıkan sonuca göre tasarruf planlarımızı yeniden düzenleyebiliriz. Özellikle e-ticaret üzerine işler yapanlar için bu maliyet tasarrufu daha bir önem taşıyor. Özellikle kampanya dönemlerinde gelen trafiği, karşılayabilecek şekilde ve kaynakların maliyet tasarrufuna göre scale edilmesi gerekir. Bu noktada kampanya dönemi öncesi load testler yapmak, kaynakların kullanım miktarlarını belirlemede önemli bir rol oynar. Ayrıca birden kaynakları yükseltmeyip, kampanyanın yoğun olduğu zamanlara göre kademeli olarak scale işlemlerimizi yapmak daha doğru bir yaklaşım olur. Böylelikle kaynaklarımızı gereğinden fazla arttırmayarak tasarruf etmiş oluruz.

Peki maliyet tasarrufu için başka neler yapabiliriz?

  • Geliştirme, test, eğitim için açılmış ve bir süre sonra kullanılmayan sunucuları ve kaynakları kapatabilir veya sadece çalışma saatlerinde açık kalacak şekilde konfigüre edebiliriz.
  • Harcamalarımız hakkında bize anında fikir vermesi için Amazon CloudWatch alarmları ve bildirimlerini ayarlayabiliriz.
  • EC2 bulut sunucularımızdan CPU kullanımı, veri aktarımı ve disk kullanım etkinliği ölçümlerini takip edebilir ve iletişim kanallarımıza bu bildirimlerin gelmesini sağlayabiliriz.
  • Gereksinimler zamanla değiştiğinden, optimizasyon ve belli aralıklara değerlendirmeler yapabiliriz.
  • Kaynaklarımızı oluştururken CostCenter tagi ile tagleyerek hangi kaynak için ne kadar kullandığımızı görebiliriz.

Ayrıca maliyet optimizasyonu ile ilgili AWS’nin kendi servisi olan AWS Trusted Advisor ‘u da kullanabiliriz. Kaynaklarımızı AWS’nin en iyi uygulamalarına uygun bir şekilde tedarik etmemize yardımcı olan gerçek zamanlı rehberlik hizmeti sunan çevrim içi bir araçtır. Servisin denetimleri ile AWS altyapımızı optimize etmemize, güvenliği ve performansı arttırmamıza, genel maliyetlerimizi düşürmemize ve hizmet sınırlarını izlememize yardımcı olur.

Son olarak, tahmini ve gerçek kullanım maliyet raporları oluşturmada; AWS konsolunda yer alan ve başlıca hizmetler, kullanım türleri, API işlemleri ve diğerleri gibi AWS maliyetimize katkıda bulunan ilgili öğeleri görselleştirmemize olanak tanıyan bir grafik arabirimi olan AWS Cost Explorer’dan faydalanabiliriz.

Ayrıca bu ara yüzden aylık maliyet tahmin raporları, kaynak tipine göre kullanım miktarları, trend kullanımları, reserved instance kullanımları ve saving planlarımızı görebiliriz.

Sizlerle AWS tarafında ve genel anlamda maliyet tasarrufu neden ve nasıl yapılır kısaca bahsettim. Umarım faydalı olmuştur.

Keyifli okumalar…

--

--