Bulut faturası beklenenden çok yüksek geldi. Maliyeti nasıl analiz eder ve düşürürsünüz?
Cevap
Önce maliyetin nereden geldiğini ölçerim, sonra en büyük kalemlerden başlayarak optimize ederim. Tahminle optimizasyon yapmak yanlış yere efor harcatır.
1. Analiz
- Cost Explorer (AWS), Billing reports (GCP) veya platform panelinde servis ve kaynak bazında kırılım.
- Kaynaklara
env,team,servicegibi tag'ler verilmemişse ilk iş budur; kimin neyi harcadığı görünür olmalı. - Ani artışın zamanını bir deploy veya trafik değişikliğiyle eşleştirin.
2. Sık görülen maliyet kaynakları
- Veri transferi (egress): CDN kullanmadan büyük dosya sunmak, bölgeler arası trafik, NAT Gateway üzerinden geçen trafik.
- Unutulan kaynaklar: kapatılmamış staging ortamları, eski snapshot'lar, sahipsiz disk ve IP'ler, eski preview ortamları.
- Aşırı büyük instance'lar: %10 CPU kullanan büyük makineler.
- Log hacmi: debug seviyesinde tutulan ve uzun süre saklanan loglar.
- Serverless döngüleri: kendi kendini tetikleyen fonksiyonlar, sonsuz retry.
- Yönetilen DB: ihtiyaçtan büyük instance, gereksiz read replica.
3. Aksiyonlar
- Statik dosyaları ve görselleri CDN'den sunun, cache hit oranını artırın.
- Instance'ları gerçek kullanıma göre küçültün (right-sizing); sürekli yükte reserved instance / savings plan alın.
- Staging ve preview ortamlarını mesai dışında kapatın, PR kapanınca silin.
- Log seviyesini düşürün, saklama süresini kısaltın, S3 lifecycle kuralları ile eski verileri ucuz sınıflara taşıyın.
- Kesintiye toleranslı işler için spot instance kullanın.
- Bütçe alarmı kurun ki bir sonraki sürpriz ay sonunda değil, gününde fark edilsin.
İlgili Bulut & Deploy soruları
- Edge function ve edge rendering nedir? Kodu ne zaman edge'de, ne zaman tek bir bölgede (region) çalıştırırsınız?
- Production'daki bir full stack uygulamayı nasıl izlersiniz? Log, metrik, trace ve alarm stratejiniz nedir?
- Veritabanı şema değişikliklerini (migration) kesintisiz (zero-downtime) nasıl deploy edersiniz? Expand-contract nedir?
- Blue-green deployment ile canary deployment arasındaki fark nedir? Rollback nasıl yapılır?
- Serverless (ör. AWS Lambda, Vercel Functions) ile container tabanlı deploy (Cloud Run, ECS, Kubernetes) arasında nasıl seçim yaparsınız?
- Uygulamanıza özel bir alan adı bağlayıp HTTPS'i nasıl kurarsınız? A, CNAME kayıtları ve TTL ne işe yarar?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.