Bulut Maliyetleri Neden Kontrolden Çıkar?
Çoğu teknik ekip, aylık bulut hizmeti faturasını gördüğünde, nihai tutarın ilk tahminin birkaç katı olduğuna şaşırır. Cevap neredeyse her zaman aynıdır: satın alınmış ancak kullanılmayan kaynaklar, gerçek ihtiyaçtan daha büyük seçilen hizmetler ve sürekli tüketim izleme sisteminin olmaması. Bu makalede, genel tavsiyeler yerine, bulut maliyetlerini azaltmak için bugün uygulayabileceğiniz üç somut adım sunuyoruz.
Önemli olan nokta, maliyet azaltmanın performanstan ödün vermek anlamına gelmediğidir. Aksine, kullanılmayan kaynakları ortadan kaldırarak ve doğru boyutlandırma yaparak genellikle daha iyi bir performans da elde edersiniz. Adım adım ilerleyelim.
Adım 1: Kullanılmayan Kaynakları Tespit Etme
Bulut ortamındaki en büyük maliyet israfı, günlerce veya haftalarca kullanılmadan açık kalan kaynaklardan kaynaklanır. Bu kaynaklar arasında kapatılmamış sanal makineler, eski Snapshot'lar ve kullanılmayan genel IP'ler bulunur.
Kapatılmamış Sanal Makineler
Birçok ekipte, bir geliştirici test sunucusu başlatır ve işi bitince kapatmayı unutur. Bu küçük sunucu ayda belki 5-10 dolar tutar, ancak bu tür birkaç örnek varsa, önemli bir rakama ulaşır.
Bu kaynakları tespit etmek için, OpenStack veya buna dayalı hizmetler kullanıyorsanız, tüm örnekleri durumları ve oluşturulma zamanlarıyla birlikte görmek için aşağıdaki komutu kullanabilirsiniz:
openstack server list --all-projects --long -c ID -c Name -c Status -c Created
Bu komutun çıktısı, hangi örneklerin haftalar önce oluşturulduğunu ve hâlâ ACTIVE durumunda olduğunu gösterir. 30 günden uzun süredir değişmeyen örnekler için gerçekten ihtiyacınız olup olmadığını kontrol edin.
Yaygın Hata: Birçok kişi sanal makineyi kapatmanın maliyeti ortadan kaldırdığını düşünür. Oysa çoğu bulut hizmetinde, makineye bağlı disk hâlâ maliyet oluşturur. Bu yüzden bir sunucuyu kapatıyorsanız, diski de ayırdığınızdan veya tüm örneği sildiğinizden emin olun.
Eski Snapshot'lar ve Kullanılmayan Diskler
Snapshot'lar kullanışlı araçlardır, ancak her gün bir sunucudan snapshot alıp yalnızca son birkaçını saklarsanız, depolama maliyeti hızla artar. 100 GB'lık bir diskin bir snapshot'ı ayda yaklaşık 2 dolara mal olur. Bunlardan on tanesi, kimsenin kullanmadığı bir şey için ayda 20 dolar demektir.
OpenStack'te snapshot listesini görüntülemek için:
openstack image list --private -c ID -c Name -c Created
Önerilen kural: Her sunucudan yalnızca son 3 snapshot'ı saklayın ve gerisini silin. Bu işlemi otomatikleştirmek için, 7 günden eski snapshot'ları otomatik olarak silen bir cron betiği yazabilirsiniz.
Kullanılmayan Genel IP'ler
Hiçbir kaynağa bağlı olmayan her genel IP, aylık maliyet oluşturur. Bu IP'leri bulmak için:
openstack floating ip list --status DOWN
Bu komut, hiçbir örneğe bağlı olmayan IP'leri gösterir. Gelecekte kullanmak için belirli bir IP'yi tutuyorsanız, onu bırakıp ihtiyaç olduğunda yenisini almak daha iyidir. Kullanılmayan bir IP'yi tutmanın maliyeti genellikle onu tekrar edinme zahmetinden daha fazladır.
Adım 2: Hizmetleri Doğru Boyutlandırma
Kullanılmayan kaynakları ortadan kaldırdıktan sonra sıra, aktif olan ancak gerçek ihtiyaçtan daha büyük seçilmiş hizmetlerin boyutunu ayarlamaya gelir. Bu sorun genellikle kaynak eksikliği korkusundan kaynaklanır: biri, ortalama CPU kullanımı %20'nin altında olmasına rağmen 8 çekirdekli ve 16 GB RAM'li bir sunucu alır.
Bir Hafta Boyunca Tüketimi İzleme
Herhangi bir değişiklik yapmadan önce gerçek tüketim verilerini toplamanız gerekir. Prometheus ve Grafana kullanıyorsanız, her sunucu için aşağıdaki metrikleri inceleyebilirsiniz:
- 5 dakikalık aralıklarla ortalama CPU kullanımı
- Gün boyunca maksimum RAM kullanımı
- Disk I/O ve ağ bant genişliği kullanımı
İzleme sisteminiz yoksa, Linux'ta sar komutunu kullanabilirsiniz. Önce onu etkinleştirmeniz gerekir:
sudo apt install sysstat
sudo systemctl enable sysstat
sudo systemctl start sysstat
Bir hafta sonra, toplanan verileri aşağıdaki komutla görüntüleyin:
sar -u -f /var/log/sysstat/sa$(date +%d --date='7 days ago')
Bu komut, her gün için ortalama CPU kullanımını gösterir. CPU kullanımı tüm hafta boyunca %30'un altındaysa, sunucunuz en az bir boyut küçültülerek çalışabilir demektir.
Uygun Boyutu Seçme
Verilere sahip olduğunuzda basit bir kural izleyin: gerçek maksimum tüketiminizin kapasitenin yaklaşık %70-80'i olacağı bir boyut seçin. Bu güven payı (Headroom), ani dalgalanmalar için yeterlidir ve ekstra maliyet ödemenizi gerektirmez.
Örnek: Mevcut sunucunuz 4 çekirdek ve 8 GB RAM'e sahipse, ortalama CPU kullanımı %15 ve maksimum RAM kullanımı 2 GB ise, 2 çekirdek ve 4 GB RAM'li bir örnek uygun bir seçimdir. Bu değişiklik genellikle maliyeti %40-50 oranında azaltır.
Yaygın Hata: Yalnızca CPU'ya odaklanmayın. Programınız bellek odaklıysa (bellek içi veritabanları gibi), RAM'i azaltmak Swap kullanımına ve ciddi performans düşüşüne neden olabilir. RAM'i her zaman ortalamaya göre değil, gerçek maksimum kullanıma göre ayarlayın.
Dalgalanmalar için Auto Scaling Kullanma
Tüketiminiz gün boyunca dalgalanıyorsa (örneğin, çalışma saatlerinde yoğun, gece boş), her zaman için büyük bir sunucu satın almak yerine Auto Scaling özelliğini kullanın. Bu özellik, yoğun saatlerde daha fazla örnek başlatmanıza ve boş saatlerde bunları kapatmanıza olanak tanır.
OpenStack'te, ölçeklendirme politikalarını tanımlamak için Heat kullanabilirsiniz. Basit bir örnek:
heat stack-create -f autoscaling.yaml -P image=ubuntu-22.04 -P flavor=m1.small my-stack
autoscaling.yaml dosyası, örnek grubu tanımını ve CPU metriklerine dayalı artırma/azaltma politikalarını içermelidir. Bu, boş saatlerde maliyetin minimumda kalmasını sağlar.
Adım 3: Sürekli İzleme ve Bütçeleme
Tek seferlik optimizasyon yeterli değildir. İzleme ve uyarı sisteminiz yoksa, birkaç ay sonra maliyetler yine eski durumuna döner. Sürekli izleme, bulut maliyetlerini azaltmanın ayrılmaz bir parçasıdır.
Bütçe Uyarıları Ayarlama
Çoğu bulut hizmeti, maliyet sınırı ve uyarı belirleme imkânı sunar. OpenStack kullanıyorsanız, tüketim verilerini toplamak ve uyarı tanımlamak için Ceilometer hizmetini kullanabilirsiniz:
ceilometer alarm-threshold-create --name cpu-high --description "CPU usage high" --meter-name cpu_util --threshold 80 --comparison-operator gt --period 600 --statistic avg --evaluation-periods 3 --alarm-action 'log://'
Bu komut, ortalama CPU kullanımı üç 10 dakikalık aralıkta %80'in üzerine çıkarsa bir olay kaydeden bir uyarı tanımlar. log:// yerine, Telegram veya e-posta bildirimi göndermek için bir webhook adresi kullanabilirsiniz.
Haftalık Raporlama
Kaynak tüketimiyle ilgili haftalık bir rapor hazırlayın ve teknik ekip toplantısında inceleyin. Bu rapor aşağıdakileri içermelidir:
- Aktif örneklerin listesi ve her birinin maliyeti
- Her örnek için ortalama CPU ve RAM kullanımı
- Snapshot sayısı ve toplam boyutları
- Kullanılmayan genel IP'ler
Bu raporu otomatik oluşturmak için, her hafta çalışan ve çıktıyı HTML dosyası veya metin olarak e-postayla gönderen OpenStack CLI ve basit bir bash betiği kullanabilirsiniz.
Ekiplerle Periyodik İnceleme
Ayda en az bir kez, maliyetleri gözden geçirmek için 30 dakikalık bir toplantı yapın. Bu toplantıda, ekip üyelerinin her biri sorumlu olduğu sunucunun neden hâlâ aktif olduğunu açıklamalıdır. Bu basit uygulama, maliyetleri azaltmada şaşırtıcı bir etkiye sahiptir çünkü insanlar her kaynağın gerekliliği hakkında düşünmek zorunda kalır.
Özet ve Acil Eylemler
Altyapınızda bulut maliyetlerini azaltmaya başlamak için bugün şu üç eylemi gerçekleştirin:
- Tüm aktif örneklerin listesini alın ve 30 günden uzun süredir değişmeyenleri inceleyip silin.
- Ana sunucularınızdan 5'i için bir haftalık tüketimi izleyin ve gerçek maksimum kullanımla uyumlu bir boyut seçin.
- Bir bütçe uyarısı ayarlayın ve haftalık tüketim raporunu teknik ekip e-postasına gönderin.
Bu üç eylem tek başına, hizmet performansını etkilemeden aylık altyapı maliyetinizi %30-50 oranında azaltabilir. Optimizasyonun tek seferlik bir proje değil, sürekli bir süreç olduğunu unutmayın. Her ay 30 dakika ayırıp kaynaklarınızı gözden geçirin.
İzleme ve tüketim yönetimi araçlarını entegre bir şekilde sunan bir altyapı arıyorsanız, ServerNet bulut hizmetleri iyi bir seçenek olabilir. Ancak hizmet sağlayıcı seçiminden bağımsız olarak, bu makalede incelediğimiz ilkeler her bulut platformunda uygulanabilir.
Yorumlar 0
Henüz yorum yok — ilk siz olun!