“Bulut maliyetlerimiz kontrol dışına çıktı, %40 düşürmek mümkün mü?” sorusu son 2 yılda en çok aldığımız brief. Cevabı genellikle evet, ama sihirli bir tek tuş yok. FinOps disiplini ile sürekli optimize edilirse %30-50 tasarruf gerçekçi. Bu yazıda 7 ana disiplin altında uyguladığımız teknikleri, gerçek müşteri tasarruf rakamlarıyla anlatıyorum.
Önce Görünürlük: Showback ve Tagging
Optimize edemezsin görmediğini. İlk adım her zaman: Hangi resource hangi takım/ürün/proje için harcanıyor?
Müşterilerimize empoze ettiğimiz minimum tag seti:
- CostCenter: Maliyet merkezi (örn: “MKT-001”, “IT-OPS”)
- Owner: Sorumlu kişi/takım email
- Environment: dev, test, staging, prod
- Project: İş yükü adı (örn: “ecommerce-frontend”)
- DataClass: public, internal, confidential, restricted
- ExpiresOn: Geçici resource için bitiş tarihi (boş ise “kalıcı”)
Bu tag’lerin zorunlu olması Azure Policy ile (deny if missing). Aylık rapor (Power BI) cost center bazında, owner bazında, project bazında dağılımı gösteriyor. Showback raporu her ay departmanlara gidiyor: “Geçen ay sizin kullanımınız 45.300 TL idi, yıllık projeksiyon 540.000 TL.”
Bu görünürlük tek başına davranış değişikliğine yol açıyor. Bir holding müşterimizde showback ilk ay rapor edildikten sonra 3. ayda doğal toplam %18 düştü (kimse şişirdiği test ortamı için fatura kabul etmek istemedi).
Disiplin 1: Rightsizing (Doğru Boyutlandırma)
En sık karşılaştığım israf: 8 vCPU / 32 GB VM, ortalama %4 CPU + %18 RAM kullanıyor. Yani %75 idle. Yıllık binlerce dolar boşa.
Müşterilerimizde uyguladığımız rightsizing süreci:
- Son 30 gün metrikleri topla (Azure Monitor, Datadog veya CloudSpark monitoring).
- P95 CPU ve P95 memory hesapla (peak değil, %95’lik dilim).
- P95 + %20 buffer ile yeni VM size hesapla.
- Bakım penceresi içinde resize.
Bursa otomotiv müşterimizde 180 VM rightsizing analizi:
| Mevcut | Adet | Önerilen | Aylık tasarruf |
|---|---|---|---|
| 16 vCPU / 64 GB | 22 | 4 vCPU / 16 GB | $3.520 |
| 8 vCPU / 32 GB | 45 | 2 vCPU / 8 GB | $3.150 |
| 8 vCPU / 32 GB | 18 | 4 vCPU / 16 GB | $540 |
| 4 vCPU / 16 GB | 30 | 2 vCPU / 8 GB | $1.050 |
Toplam aylık tasarruf $8.260. Yıllık ~$99.000. Tek seferlik analiz + bakım penceresi efforu ~~3 gün danışman.
Disiplin 2: Auto-Shutdown (Off-Hours Kapatma)
Dev/test/staging ortamları çoğu zaman 7/24 çalışmak zorunda değil. Çalışma saatleri dışı kapatınca aylık fatura ~~%65 azalıyor (haftada 5 gün × 10 saat = 50 saat / 168 saat = %30 uptime).
Otomasyon: Azure Logic App veya CloudSpark scheduler ile cron benzeri bir job. Hafta içi 19:00 stop, sabah 07:30 start. Hafta sonu kapalı.
# CloudSpark CLI üzerinden scheduled stop
cspk vm schedule create
--name auto-shutdown-dev
--filter "Environment=dev"
--action stop
--cron "0 19 * * 1-5"
cspk vm schedule create
--name auto-startup-dev
--filter "Environment=dev"
--action start
--cron "30 7 * * 1-5"
Bu tek tekniğe örnek bir e-ticaret müşterisinde aylık $4.200 tasarruf yarattı (78 dev/test VM).
Disiplin 3: Reserved Instances ve Savings Plans
Production VM’leri “tahmin edilebilir” baseline’a sahipse Reserved Instance (1 veya 3 yıl) ile %30-65 indirim alabilirsin.
| Süre | Ödeme modeli | İndirim |
|---|---|---|
| 1 yıl | Aylık | %17-25 |
| 1 yıl | Pegan ödeme | %30-35 |
| 3 yıl | Aylık | %40-45 |
| 3 yıl | Pegan ödeme | %55-65 |
Strateji: Production VM’lerin tahmin edilebilir %70’i için 3 yıl Reserved, kalan %30 on-demand. Bu kombinasyon ile genelde net %35-45 fatura indirimi.
CloudSpark’ta benzer “Committed Use Discount” mekanizması mevcut. Yıllık taahhüt karşılığında listfiyatı %25 indirim.
Disiplin 4: Idle Resource Cleanup
Aylık fatura içinde küçük ama biriken kalemler:
- Unattached managed disks: VM silinmiş ama disk kalmış. 100 disk × $5/ay = $500.
- Unused public IP: Allocated ama hiçbir resource’a bağlı değil. $4/ay × 30 = $120.
- Old snapshots: 3 yıl önceki VM snapshot, 200 GB. Aylık $20.
- Empty resource groups: Resource yok ama log analytics workspace, app insights tutuluyor.
- Stale load balancers: Backend pool boş.
Her ay otomatik script ile bu “orphan” resource’ları tespit ediyoruz, owner’a notification, 14 gün içinde aksiyon yoksa sil. Bursa müşterimizde ilk temizlikten $1.800/ay tasarruf çıktı.
Disiplin 5: Storage Tier Yönetimi
Object storage (S3) fiyatları tier’a göre 4-5x değişiyor:
| Tier | Aylık $/GB | Erişim modeli |
|---|---|---|
| Hot (sıcak) | $0.018 | Sürekli erişim |
| Cool | $0.010 | 30 gün+ erişim sıklığı |
| Cold | $0.006 | 90 gün+ erişim sıklığı |
| Archive | $0.002 | Yıllık erişim, retrieval ücretli |
Lifecycle policy ile otomatik tier değişimi:
{
"Rules": [{
"ID": "logs-tiering",
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transitions": [
{"Days": 30, "StorageClass": "COOL"},
{"Days": 90, "StorageClass": "COLD"},
{"Days": 365, "StorageClass": "ARCHIVE"}
],
"Expiration": {"Days": 2555}
}]
}
Bir SaaS müşterimizde 18 TB log archive vardı, hot tier’da. Lifecycle policy ile %85 cold tier’a indi, aylık $250 → $90.
Disiplin 6: Network Egress Optimizasyonu
Hyperscaler’larda data transfer out (egress) en pahalı kalemlerden biri ($0.05-0.12/GB). Optimize teknikleri:
- CDN: Static asset’leri CDN’den serve et, origin’den çıkış %90 azalır.
- Same region: Sub-resources arası trafiği aynı region’da tut, cross-region trafik ücretli.
- Compression: HTTP response gzip/brotli ile sıkıştır.
- Cache headers: Browser cache TTL doğru ayarla, repeat trafik azalsın.
- Direct connect: Yüksek volume on-prem ↔ cloud trafik için ExpressRoute / dedicated link.
CloudSpark’ta egress fiyatı çok daha düşük (0.005-0.01 USD/GB), bu kalem hyperscaler kadar agresif değil.
Disiplin 7: Spot/Preemptible Instance
Batch job, CI/CD runner, ML training gibi tolere edebilen iş yükleri için spot instance:
- Azure Spot VM: %50-90 indirim, 30 saniye eviction notice ile durabiliyor.
- AWS EC2 Spot: %70-90 indirim, 2 dakika notice.
- CloudSpark: Reservation pool dışında düşük öncelikli kapasite, %40 indirim.
Bir analytics müşterimizde Spark batch job’ları %85 spot, %15 on-demand. Aylık compute fatura $14.000 → $4.800.
Sahada Düşülen Üç Tuzak
- Tek seferlik optimizasyon: %40 düşürdün, mutlu oldun. 6 ay sonra fatura geri çıkmış. FinOps sürekli operasyon, aylık review şart.
- Aşırı sıkı tasarruf production’ı vuruyor: Reserved instance ile commit ettiğin kapasite aşılırsa on-demand fiyatına dönüyorsun, planlama önemli.
- Otomasyon olmadan manuel müdahale: 200 VM’i her ay elle inceleyemezsin. Cost anomaly detection (Azure Cost Management, Kubecost, Apptio) ile alert kurulmalı.
Sonuç: %40 Tasarruf Tek Tuş Değil, Sürekli Operasyon
Bulut maliyet optimizasyonu bir proje değil, bir kültür. CFO ile CTO’nun aynı dile sahip olması, FinOps rolünün net tanımlanması, tagging disiplininin tüm ekiplere yayılması — bunlar olduğunda %40 tasarruf doğal sonuç. Olmadığında en pahalı optimizasyon araçları bile fark yaratmıyor.
CloudSpark olarak FinOps assessment, cost anomaly tespiti, rightsizing analizleri, Reserved/Savings Plan optimizasyonu, tagging ve showback dashboard kurulumu hizmetleri sunuyoruz. Mevcut bulut faturanız için ücretsiz tasarruf potansiyeli analizi yapıyoruz.



