Bulut Maliyet Optimizasyonu: Hâlâ Geçerli Prensipler
Şunu söyleyeyim, Geçen ay, bir finans kuruluşundaki müşterimizle Azure fatura incelemesi yapıyorduk. Adam masaya oturur oturmaz, “Aşkın bey, biz buluta geçince tasarruf edecektik, faturamız on-prem döneminin iki katına çıktı” dedi. Yüzündeki ifadeyi anlatsam… Açık konuşayım, bu cümleyi Türkiye’de — en azından ben öyle düşünüyorum — son iki yılda en az yirmi kere duydum (kendi tecrübem). Aynı hikâye hep dönüyor; önce heyecanla her şey ayağa kalkıyor, sonra fatura gelince ortam bir anda sessizleşiyor. Evet.
📋 İçindekiler
-
İlginç olan şu ki, Azure Advisor burada öneri veriyor, evet. Ama her tavsiyeyi sorgusuz uygulamayın derim; çünkü bazen düzgün görünen öneri, arka planda sessizce sorun çıkarabiliyor. Geçen yıl bir müşteride Advisor “bu VM’i B-serisi’ne düşür” dedi, biz de uyguladık. Sonra ayda bir çalışan batch processing job sırasında performans yere indi; mevsimsel yükleri Advisor her zaman doğru koklayamıyor (ki bu çoğu kişinin gözünden kaçıyor). Bak şimdi, asıl mesele şu: ortalamaya bakıp karar verirseniz rahat edersiniz gibi görünür, ama pik saatleri kaçırınca tablo bir anda değişiyor.
İşte tam da bu noktada devreye giriyor.
3. Rezervasyonlar ve Savings Plans
Eğer iş yükünüz 1 yıldan uzun sürecekse — kurumsal tarafta çoğu zaman öyle oluyor — Reserved Instances veya Azure Savings Plans ciddi tasarruf sağlayabiliyor. Yüzde 30-60 arası indirim görmek mümkün. Neyse, siz ne dersiniz? Ama burada küçük bir ama var: 1 yıllık ya da üç yıllık taahhüt veriyorsunuz; yani iş yükü yön değiştirirse bu karar ayağınıza dolanabiliyor, özellikle de kapasiteyi sabitleyip sonra büyüme planını başka yöne çekerseniz.
Rezervasyon alırken altın kural şu: son 3 ayın kullanım verisine bakın, en düşük noktayı baz alın. Tepeyi değil, tabanı seçin. Geri kalan kısmı pay-as-you-go ile kapatın.
Maliyet Yönetimi vs. Maliyet Optimizasyonu: Fark Var
Yani, Bu ikisi sık sık birbirine giriyor, hani ilk bakışta aynı şey gibi duruyor ya, işte tam orada küçük bir ayrım var. Lafı gevelemeden söyleyeyim:
Peki neden?
- Maliyet yönetimi (Cost Management): Harcamayı izlemek, raporlamak, bütçe koymak, alert tanımlamak. Yani işin özü şu: “Ne kadar gidiyor?” sorusuna net bir cevap vermek.
- Maliyet optimize etmeu (Cost Optimization): Harcamayı aktif biçimde aşağı çekmek. Doğru kaynak boyutunu seçmek, boşta kalan kaynakları temizlemek, mimari kararları yeniden düşünmek; kısacası “Aynı işi yaparken nasıl daha az öderiz?” sorusuna kafa yormak.
Maliyet yönetimi olmadan iyileştirme yapmak zor. Bu kısmı atlayan çok kişi oluyor; sonra da garip bir şekilde tasarruf bekliyorlar. Ama sadece maliyet yönetimi yapıp iyileştirme tarafına hiç girmemek de ayrı dert,. O zaman ekranlara bakıp iç çekmekten başka bir şey kalmıyor.
Açıkçası, Türkiye’de gördüğüm tablo da çoğu zaman bu oluyor. Cost Management dashboard’u açılmış, herkes arada bir bakıyor, raporlar geliyor, her şey düzenli görünüyor. Kimse “peki şimdi neyi kapatıyoruz?” demiyor. Dashboard’a bakmak para kazandırmıyor; aksiyon kazandırıyor (yanlış duymadınız)
Evet.
💡 Bilgi: Azure Cost Management’ta bütçe alert’leri kurmak ücretsiz. Hemen şimdi gidin, her subscription için aylık bütçe limiti ve %80, %100, %120 eşiklerinde alert tanımlayın. Basit gibi duruyor ama iş görüyor; bazen tek başına ayda yüzlerce doların önüne geçebiliyor.Değer Ölçümü: Sadece Maliyete Bakmak Yetmiyor
Bakın şimdi, en çok kaçırılan yer tam burası. Maliyet iyileştirmeu sadece “az harca” demek değil; işin aslı biraz daha farklı, yani “harcadığın paranın karşılığını al” demek, kulağa aynı geliyor. Tahmin eder misiniz? Pratikte epey ayrışıyor.
Bence, Bir e-ticaret şirketinde çalışıyorduk, adam AI tabanlı ürün öneri motoru kurdu. Aylık Azure maliyeti 15.000 TL artmıştı (kendi tecrübem). CFO önce gerildi, haklıydı da. Ama sonra detaylara bakınca şunu gördük: bu öneri motoru ortalama sipariş değerini %22 artırmıştı; yanlış duymadınız. 15.000 TL ek harcama karşılığında ayda 180.000 TL ek gelir geliyordu, tabloyu CFO’ya gösterince adam bir anda “daha fazla harcayalım mı?” moduna geçti. Azure DevOps Server Nisan Yaması: Ne Geldi, Ne Yapmalı? yazımızda buna da değinmiştik.
Yani mesele şu: her bulut harcamasının yanına bir “iş değeri” metriği koymanız lazım (ki bu çoğu kişinin gözünden kaçıyor). Bu bazen gelir artışı oluyor, bazen operasyonel verimlilik, bazen de risk azaltma; hani tek bir kalıba sokmaya çalışınca konu dağılıyor gibi oluyor. Ölçmeden de ilerleyemiyorsunuz.
FinOps Kültürü: Teknik Değil, Kültürel Bir Dönüşüm
Bak şimdi, Garip gelecek ama FinOps — yani Financial Operations — son yıllarda sık duyduğumuz kavramlardan biri. Kısaca mühendislik, finans ve iş birimlerinin bulut harcamaları konusunda ortak sorumluluk alması demek; AZ-305 sınavına hazırlanırken bunu epey kurcalamıştım ve açık konuşayım, araçlar fena değil ama asıl değişim kafada başlıyor.
Türkiye’de bu kültürün oturması biraz tuhaf ilerliyor, çünkü çoğu şirkette IT bütçesi hâlâ tek bir kalemin altında duruyor. “Kim ne kadar harcıyor?” sorusu pek sorulmuyor. Mühendis kaynağı açıyor, finans ay sonunda faturayı görüyor, arada kimse birbirine tam bakmıyor; FinOps tam da bu kopukluğu toparlıyor, ama itiraf edeyim — Türkiye’de FinOps’u düzgün uygulayan şirket sayısı bir elin parmaklarını geçmez (ciddiyim). Henüz.
Pratik Adımlar: Yarın Sabah Ne Yapmalısınız?
Tamam, teori kısmını biraz deşmiş olduk. Peki şimdi ne olacak? İşin aslı burada başlıyor; yarın sabah masanıza oturunca elinizde somut bir liste olsun istiyorsanız, aşağıdaki adımlar baya iş görüyor, çünkü lafı gevelemeden doğrudan para sızdıran yerleri gösteriyor.
- Tag audit yapın: Kaç kaynağınızda tag eksik, önce onu görün. Azure Policy ile zorunlu tag kuralı koyun; yoksa herkes kendi kafasına göre dağıtıyor ve sonra maliyet raporuna bakınca insanın canı sıkılıyor, hatta bazen “bu kadar mı?” dedirtiyor.
- Azure Advisor’ı açın: Cost tarafındaki önerilere göz atın. Ama körü körüne uygulamayın, çünkü bazı öneriler ilk bakışta mantıklı duruyor ama iş yükünüz farklıysa ters tepebiliyor; hani kağıt üstünde güzel, sahada ise biraz tuhaf kalabiliyor.
- Idle kaynakları temizleyin: Son 30 günde neredeyse hiç trafik almayan şeyler var mı? Disk snapshot’ları, eski IP adresleri, boş resource group’lar… Bunlar sessiz sessiz para yiyor. (bence en önemlisi) Bir de garip olan şu: çoğu ekip bunları görmüyor bile.
- Dev/Test ortamlarını otomatik kapatın: Auto-shutdown schedule’ı mesai dışına alın. Basit geliyor, biliyorum; ama tek hamlede %40-60 tasarruf gördüğüm oldu, şaka değil. Üstelik kurması da öyle saatler sürmüyor, yani biraz tembel işi gibi duruyor ama baya işe yarıyor.
- Bütçe alert’leri kurun: %80 ve %100 eşiklerini muhtemelen ekleyin. Basit bir ayar gibi duruyor ama sonra sizi son gün sürpriz faturadan kurtarıyor; açık konuşayım, bu küçük detay bazen bütün ayın sinirini alıyor. — ciddi fark yaratıyor
Ha bu arada, Azure CLI ile idle kaynakları hızlıca listelemek isterseniz şu komutu kullanabilirsiniz. İlk bakışta biraz kuru görünüyor, kabul; ama sonuçları görünce “vay be” diyorsunuz genelde, çünkü ekran bir anda beklediğinizden kalabalık çıkabiliyor.
# Son 30 gunde CPU kullanimi %5'in altinda olan VM'leri listele az monitor metrics list \ --resource-type "Microsoft.Compute/virtualMachines" \ --metric "Percentage CPU" \ --aggregation Average \ --interval PT1H \ --start-time $(date -d '-30 days' -u +%Y-%m-%dT%H:%M:%SZ) \ --query "[?averageBu sorgu kötü bir başlangıç değil. Hatta baya işe yarıyor. Siz ne dersiniz? Sonuçlara bakınca muhtemelen şaşıracaksınız; çoğu ortamda VM’lerin %20-30’u bu kategoriye düşüyor (tabi iş yüküne göre değişir),. Ortada boş yere açık duran ciddi bir kapasite olabiliyor. Evet, bazen sayı küçük görünür ama fatura tarafında hiç de küçük durmuyor (ben de ilk duyduğumda şaşırmıştım)
Bunu yaşayan biri olarak söyleyeyim, Eğer AI iş yüklerinde maliyet kontrolü için edge computing alternatiflerine de bakmak istiyorsanız, Azure Local ve Armada: Edge’de Egemen AI Dönemi yazımda bunu detaylı anlattım. Inference işlerini edge’e taşımak bazen beklediğinizden daha fazla fark yaratıyor; her senaryoda değil ama bazı durumlarda resmen nefes aldırıyor (en azından benim deneyimim böyle) (ki bu çoğu kişinin gözünden kaçıyor). Neyse, çok dağıtmadan söyleyeyim: doğru yerde kullanınca maliyet baskısı baya azalabiliyor.
Açık konuşayım, bir de şu taraf var: yerel AI modelleri çalıştırmak artık uçuk bir fikir değil. Foundry Local GA Öldü: Bulut Olmadan Yerel AI yazımda anlattığım gibi, bazı inference senaryolarında buluta hiç çıkmadan yerel makinenizde model koşturabiliyorsunuz. Maliyet? Sıfır sayılır. Tabi her senaryoya uymaz, hatta bazı yerlerde hiç uymaz; ama keşfetmeye değer, çünkü bazen en basit çözüm en az uğraştıran oluyor.
Sıkça Sorulan Sorular
Azure’da maliyet iyileştirmeuna nereden başlayayım?
Burada, azure Cost Management + Billing’i aktif kullanmaya başlamak iyi bir ilk adım. Sonra Azure Advisor’daki maliyet önerilerine bir göz at — hani orada gerçekten işe yarayan şeyler çıkıyor. En hızlı kazanım genelde boşta duran kaynakları kapatmaktan ve dev/test ortamlarına auto-shutdown kurmaktan geliyor. Bir de tag’leme stratejisini ilk hafta içinde oturtmaya çalış; tecrübeme göre bunu erteleyenler sonradan çok pişman oluyor, ciddiyim.
AI iş yüklerinde maliyeti nasıl tahmin ederim?
Açıkçası klasik iş yüklerine kıyasla çok daha zor bu. Training maliyetleri için önce küçük bir veri setiyle pilot çalışma yap, GPU-saat başına maliyeti ölç, sonra oradan extrapolate et. Inference içinse token bazlı fiyatlandırmayı iyi anlamak lazım — ortalama sorgu uzunluğunu tahmin etmeye çalış. Yani ilk 2-3 ay gerçek veriye bakarak bütçeni revize etmek neredeyse kaçınılmaz oluyor; bence bunu baştan kabullenmek çok daha sağlıklı.
Reserved Instances mi alsam, Savings Plans mi?
İş yükün belirli bir VM ailesine bağlıysa ve pek değişmeyecekse Reserved Instances daha yüksek indirim sunuyor. Ama mesela farklı bölgeler ya da farklı VM boyutları arasında geçiş yapman gerekiyorsa Savings Plans çok daha mantıklı. Tecrübeme göre çoğu zaman ikisinin bir kombinasyonu en iyi sonucu veriyor — aslında biri ya da diğeri diye düşünmemek lazım.
FinOps ekibi için minimum kaç kişi lazım?
Şahsen, Küçük-orta ölçekli şirketlerde ayrı bir ekip kurmak şart değil aslında. Bir bulut mühendisi, bir finans temsilcisi. Bir iş birimi temsilcisiyle haftada 1 saatlik toplantı bile inanılmaz fark yaratıyor. Bence önemli olan kişi sayısı değil — asıl mesele süreklilik ve hesap verebilirlik kültürü oluşturmak.
Bulut maliyet optimizasyonunu ne sıklıkla yapmalıyım?
Sürekli yapman lazım, yani bu bir kerelik iş değil (bizzat test ettim). Ayda bir fatura incelemesi minimum, haftalık Advisor kontrolü ideal. Büyük mimari değişiklikler veya yeni bir servis (söylemesi ayıp) adaptasyonu öncesinde de mutlaka maliyet analizi yap. Bir de otomasyon kur: bütçe aşımı alert’leri, idle kaynak raporları, reservation kullanım oranları — bunların hepsi otomatik gelmeli, yoksa takip etmek gerçekten çok zorlaşıyor.
Kaynaklar ve İleri Okuma
Azure Cost Management Resmî Dokümantasyonu
Cloud Cost Optimization: Principles That Still Matter – Azure Blog
Selin N.
Buluta geçince “artık her şey ucuzladı” diye rahatlamak tam bir tuzak, biz de ilk yıl faturalar gelince epey şoke olduk. Rezerve instance kullanımı gerçekten fark yaratıyor ama bunu fark etmek biraz zaman alıyor. AI iş yükleri için maliyet hesabını nasıl yapıyorsunuz, o kısmı biraz daha merak ettim açıkçası.
Kaan T.
Buluta geçince “artık her şey esnek ve ucuz” diyoruz ama ilk fatura gelince gerçeklerle yüzleşiyoruz. Bizim şirkette de özellikle test ortamlarını kapatmayı unutmak çok para yaktırdı, sanki para musluk gibi akıyor. AI iş yüklerinin maliyeti de ayrı bir baş ağrısı olmaya başladı, bu konuyu detaylandırsanız iyi olur.
Tolga F.
Tam olarak yaşadığımız şeyi anlatıyor. Geçen yıl ekip olarak AWS’e geçtik, ilk fatura gelince herkes birbirine baktı. Reserved Instance vs Spot Instance kararını doğru vermek gerçekten kritik, özellikle AI iş yüklerinde maliyet patlaması çok hızlı oluyor.
Yorumlar kapalı.







3 comments