A blue object with a wavy design on it — Azure Maliyet Optimizasyonu: Bulut Harcamalarını %40 Azaltın

Yalova merkezli 320 çalışanlı bir kimya + lojistik holdingi, aylık Azure faturası $48.500’a ulaştığında “duralım, bunun gerçeği nedir?” sorusu ile FinOps programını başlattı. 6 ay sonunda fatura $28.200’a düştü (%42 azalma) — kapasite veya performans kaybı olmadan. Bu yazı sahadaki kararları paylaşıyor.

Mevcut Durum: $48.500 Nereye Gidiyor?

Servis Aylık (USD) Pay
VM compute $18.200 %37
SQL Database / MI $8.400 %17
Storage $4.800 %10
App Service / Functions $3.900 %8
AKS $3.500 %7
Network (ExpressRoute, egress) $2.800 %6
Backup + DR $2.100 %4
Defender + Sentinel $1.900 %4
Diğer (Cosmos, Redis, KV, ACR, vb) $2.900 %6
Toplam $48.500 %100

Optimizasyon Stratejisi: 8 Aksiyon

Aksiyon 1: VM Rightsizing

Advisor + Cost Management + custom KQL ile son 30 gün CPU/RAM kullanımı düşük VM’ler:

// Last 30 days CPU avg under 15%, candidate to downsize
InsightsMetrics
| where TimeGenerated > ago(30d)
| where Name == "UtilizationPercentage" and Namespace == "Processor"
| summarize AvgCPU = avg(Val), MaxCPU = max(Val) by Computer
| where AvgCPU < 15 and MaxCPU < 50
| order by AvgCPU asc

22 VM downsize edildi (D8s_v5 → D4s_v5, D4s_v5 → D2s_v5). Aylık tasarruf: ~$3.200.

Aksiyon 2: Idle / Orphan Resources Cleanup

// Unattached managed disks
Resources
| where type == "microsoft.compute/disks"
| where properties.diskState == "Unattached"
| project name, location, sku, sizeGB = properties.diskSizeGB

// Unused public IPs
Resources
| where type == "microsoft.network/publicipaddresses"
| where properties.ipConfiguration == ""

// Orphan NICs
Resources
| where type == "microsoft.network/networkinterfaces"
| where properties.virtualMachine == ""

Bulundu: 38 unattached disk (toplam 4.8 TB), 14 unused public IP, 22 orphan NIC. Cleanup sonrası ~$420/ay tasarruf.

Aksiyon 3: Reserved Instances + Savings Plans

Resource type Action Aylık tasarruf
Production VM (32 instance, stable workload) 3-yıl RI ~$3.800 (~%45 indirim)
App Service Plan P1v3 (4 plan) 3-yıl RI ~$340
SQL MI (3 instance, vCore) 3-yıl RI + Hybrid Benefit ~$2.100
Mixed compute (variable) 1-yıl Savings Plan ($1.800/ay commit) ~$580

Toplam reservation tasarrufu: ~$6.820/ay.

Aksiyon 4: Azure Hybrid Benefit

Mevcut Windows Server + SQL Server lisansları (Software Assurance ile) Azure’a uygulandı:

  • Windows Server: 35 VM × ~$60/ay = ~$2.100 tasarruf
  • SQL Server: 3 MI × ~$1.200/ay = ~$3.600 tasarruf
  • Toplam: ~$5.700/ay

Aksiyon 5: Storage Tier Optimizasyon

{
  "rules": [{
    "name": "ArchiveOldData",
    "definition": {
      "filters": { "blobTypes": ["blockBlob"] },
      "actions": {
        "baseBlob": {
          "tierToCool": { "daysAfterModificationGreaterThan": 30 },
          "tierToArchive": { "daysAfterModificationGreaterThan": 180 },
          "delete": { "daysAfterModificationGreaterThan": 2555 }
        }
      }
    }
  }]
}

4.8 TB sıcak storage → cool/archive. Aylık tasarruf: ~$280.

Aksiyon 6: Dev/Test Subscription

4 dev VM + 2 SQL DB Visual Studio Pro Dev/Test subscription’a taşındı:

  • VM: ~%50 indirim (no Windows license fee)
  • SQL: ~%30 indirim
  • Tasarruf: ~$680/ay

Aksiyon 7: Auto-shutdown Dev/Test

az vm auto-shutdown -g rg-dev -n vm-dev-erp 
  --time 2000 --email "devops@firma.com.tr"

# 14 dev VM gece 20:00 - sabah 08:00 kapalı
# 12 saat × 22 iş günü × $1.20/saat = ~$316/ay tasarruf VM başına
# Toplam: ~$2.400/ay

Aksiyon 8: AKS Optimizasyonu

  • Cluster autoscaler agresifleştirildi (min 3 → 2 node)
  • Spot node pool (non-critical workload, %60-90 indirim)
  • HPA + VPA pod resource right-sizing
  • Toplam tasarruf: ~$1.100/ay

FinOps Governance

Tagging Standard

Mandatory tags:
  - Environment: prod | staging | dev | test
  - CostCenter: CC-XXX
  - Owner: name@firma.com.tr
  - Project: project-key
  - DataClassification: public | internal | confidential

Azure Policy: tag eksikse resource creation block

Budget + Alert

az consumption budget create -g rg-prod 
  --budget-name "monthly-prod-budget" 
  --amount 22000 --time-grain Monthly 
  --start-date 2026-01-01 --end-date 2027-12-31 
  --notifications @notif.json
# %50, %80, %100, %110 thresholds
# Email + Teams webhook alert

Aylık FinOps Review

  • Cost Management dashboard review
  • Top 10 cost increase drivers
  • Reservation utilization (target %95+)
  • Untagged resources count (target 0)
  • Anomaly detection (Cost Mgmt AI)

Sonuç (6 Ay)

Aksiyon Aylık tasarruf
VM rightsize $3.200
Idle/orphan cleanup $420
Reservations + Savings Plan $6.820
Hybrid Benefit $5.700
Storage tiering $280
Dev/Test subscription $680
Auto-shutdown $2.400
AKS optimizasyon $1.100
Toplam aylık tasarruf ~$20.600 (%42)
Yıllıklandırılmış ~$247.000

Sahada Düşülen Üç Tuzak

  1. Reservation’ı kullanım analizi olmadan almak: Yanlış SKU/region reservation = para çöp. Önce 30-60 gün baseline + Advisor önerisi.
  2. Storage’ı tek seferlik temizlik olarak görmek: Lifecycle policy yoksa storage 6 ayda yeniden şişer. Otomasyon şart.
  3. FinOps’u IT’nin tek başına problemi sanmak: Maliyet sahibi development team’lerdir. Cost showback (her takıma kendi maliyeti gösterilir) = davranış değişir.

CloudSpark olarak Azure FinOps programları, maliyet baseline + optimization roadmap, reservation/savings plan stratejisi, tag governance ve dashboard kurulumu için danışmanlık veriyoruz.

🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español