DevOps and Infrastructure

Bulut Faturalarını Kısaltın: Spot Örnekleme ve Otomatik Ölçekleme ile Maliyetleri Optimize Etme Rehberi

Modern DevOps dünyasında bulut, sadece bir hizmet değil; bir iş gücüdür. Ancak kontrolsüz bulut harcamaları kar marjlarınızı hızla eritebilir. Orta ve ileri düzey altyapı mühendisleri için asıl meydan okuma, uygulamaları dağıtmak değil, bunları verimli bir şekilde dağıtmaktır. Performans ile maliyet arasındaki dengeyi kurmanıza yardımcı olacak en güçlü araçlardan ikisi, Amazon EC2 Spot Örnekleme ve dinamik Otomatik Ölçekleme politikalarıdır.

Spot Örnekleme'nin Ekonomisini Anlamak

Geleneksel Talep Üzerine (On-Demand) örnekleri, talepten bağımsız olarak sabit bir saatlik ücretle hizmet verir. Buna karşılık, Spot Örnekleme, AWS Bulut'ta bulunan kullanılmayan EC2 kapasitesi için teklif vermenize olanak tanır. Bu kapasite kullanılmadığı için AWS, Talep Üzerine fiyatlarına kıyasla %90'a varan indirimler sunar. Karşılığında basitlikten ödün vermeniz gerekir: AWS kapasiteye yeniden ihtiyaç duyduğunda Spot Örnekleme, iki dakikalık bir bildirimle kesintiye uğrayabilir.

Bu model, toplu işleme, veri analizi, render alma, CI/CD derlemeleri ve durum bilgisi olmayan web sunucuları gibi hata toleranslı ve esnek iş yükleri için idealdir. Ancak kesinti kabul edilemez olan birincil veritabanları veya gerçek zamanlı işlem işleme gibi kritik, sürekli iş yükleri için uygun değildir.

Spot Örnekleme'yi Otomatik Ölçekleme Gruplarıyla Entegre Etme

Kesintileri manuel olarak yönetmek, felaketle sonuçlanır. Spot Örnekleme'yi güvenle kullanmanın anahtarı, yaşam döngüsü yönetimini Otomatik Ölçekleme Grupları (ASG) aracılığıyla otomatikleştirmektir. Bir ASG, her zaman belirli sayıda örneğin çalıştığını sağlar. Karışık örnek politikaları yapılandırarak AWS'ye, kararlılığı sağlamak için bir Talep Üzerine örneği tabanı korurken daha ucuz Spot Örnekleme'ye öncelik vermesini söyleyebilirsiniz.

Aşağıda, karışık bir örnek politikası tanımlamak için AWS CloudFormation kullanılarak yazılmış bir Altyapı Olarak Kod (IaC) örneği bulunmaktadır:

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyAutoScalingGroup:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties:
      LaunchTemplate:
        LaunchTemplateId: !Ref MyLaunchTemplate
        Version: !GetAtt MyLaunchTemplate.LatestVersionNumber
      MixedInstancesPolicy:
        InstancesDistribution:
          OnDemandBaseCapacity: 1
          OnDemandPercentageAboveBaseCapacity: 20
          SpotInstancePools: 3
        LaunchTemplate:
          LaunchTemplateId: !Ref MyLaunchTemplate
      MinSize: 2
      MaxSize: 10
      DesiredCapacity: 5

Bu yapılandırmada, ASG en az bir Talep Üzerine örneğini garanti eder. Bu taban kapasitenin ötesinde, ek kapasitenin %20'sini Talep Üzerine örneklerle ve tek bir başarısızlık noktası riskini azaltmak için üç farklı havuz türü arasında kalan kısmı Spot Örnekleme ile doldurmaya çalışır.

Akıllı Ölçekleme Politikalarını Yapılandırma

Maliyet optimizasyonu sadece saat başına fiyatla ilgili değildir; aynı zamanda altyapınızı talebe göre doğru boyutlandırmakla de ilgilidir. Statik ölçekleme zamanlamaları verimsizdir çünkü trafik desenleri nadiren tahmin edilebilir olur. Bunun yerine, CloudWatch metriklerine dayalı tahmine dayalı veya tepkisel ölçekleme politikaları uygulayın.

Örneğin, ortalama CPU kullanımını %50'de tutacak bir Hedef Takip Ölçekleme Politikası yapılandırabilirsiniz. Trafik arttığında, ASG örnekler ekler (Spot piyasası oynaksa Talep Üzerine'ye öncelik vererek). Trafik düştüğünde ise örnekleri sonlandırır. Bu sayede, kullanılmayan kapasite için asla ödeme yapmazsınız.

Tahmin edilebilir trafik durumları için Zamanlanmış Eylemler uygulamayı düşünün. Uygulamanız her gün saat 09:00'da günlük raporlar işliyorsa, ek kapasiteyi yalnızca bu pencere sırasında sağlayabilirsiniz:

aws autoscaling put-scheduled-update-group-action \
    --auto-scaling-group-name my-scaling-group \
    --name daily-peak-scaling \
    --schedule "cron(0 9 ? * MON-FR *)" \
    --min-capacity 5 \
    --max-capacity 10 \
    --desired-capacity 7

Dayanıklılık için En İyi Uygulamalar

Spot Örnekleme ile çalışırken mimariniz kesintilere dayanacak şekilde tasarlanmalıdır. Mümkün olduğunca durum bilgisi olmayan bir tasarım benimseyin. Trafığı dağıtmak ve döngüden sağlıksız örnekleri kaldırmak için Esnek Yük Dengeleyici'yi kullanın. Uygulamalarınızın EC2 spot kesinti bildirimini dinleyerek zarif bir şekilde kapanabildiğinden emin olun.

Sonuç

Spot Örnekleme ve Otomatik Ölçekleme ile bulut maliyetlerini optimize etmek, "kur ve unut" türünden bir görev değildir ancak herhangi bir DevOps ekibi için en yüksek getirili (ROI) faaliyetlerden biridir. Spot fiyatlandırmasının derin indirimlerini Otomatik Ölçeklemenin esnekliğiyle birleştirerek, uygulama kullanılabilirliğinden ödün vermeden önemli maliyet tasarrufları elde edebilirsiniz. Spot uygunluğu açısından iş yüklerinizi denetleyerek başlayın, karışık örnek politikaları uygulayın ve spesifik iş gereksinimlerinize uygun olarak ölçekleme metriklerinizi sürekli olarak ince ayarlayın.

Share: