Üretim Gecesinin Gizli Kabusu: O Fatura Sizin Kapınızı da Çalacak mı?
Kodu production ortamına aldınız, Stripe entegrasyonunu tamamladınız ve ilk global kullanıcıların gelmesini bekliyorsunuz. Başınızı yastığa rahatça koydunuz. Ancak sabaha karşı telefonunuza düşen bir bildirimle uyanıyorsunuz: OpenAI veya Firebase harcama limitiniz birkaç saat içinde binlerce dolara ulaşmış. Bu senaryo bir şehir efsanesi değil; döngüsel bir kod hatası (infinite loop), ters giden bir asenkron istek mimarisi ya da bot trafiğiyle sunucunuzu hedef alan kötü niyetli bir saldırgan yüzünden her gün onlarca mikro girişimcinin başına gelen finansal bir yıkımdır.
Mikro-SaaS projelerinde bütçe yönetimi sadece kar-zarar tablosundan ibaret değildir; doğrudan hayatta kalma mücadelesidir. Büyük şirketlerin absorbe edebileceği bulut maliyeti dalgalanmaları, sıfır sermaye veya kısıtlı bütçeyle yola çıkan bağımsız bir geliştiricinin (indie hacker) projesini daha ilk aydan kapatmasına neden olabilir. Bu dökümanda, sisteminizi bir gecede servet kaybettiren o meşhur bulut faturası kabusundan koruyacak kod seviyesindeki ve altyapı düzeyindeki somut savunma kalkanlarını inceleyeceğiz.
1. Altyapı Düzeyinde İlk Defans: Yumuşak Uyarılar Değil, Sert Kesintiler (Hard Limits)
Birçok bulut ve yapay zeka sağlayıcısı, varsayılan olarak harcama limitlerini esnek bırakır. Sistemlerin en büyük tuzağı, bütçe aşıldığında sadece e-posta gönderen “Soft Limit” (Yumuşak Sınır) mekanizmalarıdır. Siz uykudayken gelen bir uyarı mailinin finansal çöküşü engelleme şansı sıfırdır. Bu yüzden ilk gün yapılması gereken ilk iş, sağlayıcı panellerinde faturayı doğrudan bıçak gibi kesen “Hard Limit” (Sert Sınır) yapılandırmasıdır.
OpenAI API platformunda “Billing” sekmesi altındaki “Usage Limits” alanına giderek aylık maksimum harcama tavanını kesin bir rakama bağlamalısınız. Bu sınır aşıldığı an API `429 Too Many Requests` veya `402 Payment Required` hatası dönecektir. Evet, uygulamanız geçici olarak çalışmayı durdurur; ancak ertesi sabah banka hesabınızın sıfırlanmadığından emin olursunuz. Aynı durum Google Cloud ve Firebase için de geçerlidir. Firebase bütçe uyarılarını bir AWS Lambda veya Google Cloud Function tetikleyicisine bağlayarak, günlük bütçe aşıldığında veritabanı erişimini otomatik olarak kapatan (Kill Switch) mikro betikler kurgulamak, projenin can simididir.
2. Kod Düzeyinde Güvenlik: FastAPI ile IP Tabanlı Hız Sınırlandırması (Rate Limiting)
Kötü niyetli bir bot, uygulamanızın API uç noktasına saniyede yüzlerce istek göndererek yapay zeka token havuzunuzu dakikalar içinde kurutabilir. Bunu engellemenin en kesin yolu kod düzeyinde hız sınırlandırması uygulamaktır. Aşağıdaki örnekte, modern mikro-SaaS projelerinin vazgeçilmezi olan Python + FastAPI mimarisinde, Redis ve `slowapi` kütüphanesini kullanarak IP başına dakikalık istek sınırını nasıl sabitleyeceğinizi görebilirsiniz.
from fastapi import FastAPI, Request
from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded
# Kullanıcı IP'sine göre sınırlandırma motorunu başlatıyoruz
limiter = Limiter(key_func=get_remote_address)
app = FastAPI()
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
@app.get("/api/v1/generate")
@limiter.limit("5/minute") # Bir IP dakikada en fazla 5 başarılı istek atabilir
async def generate_ai_content(request: Request, prompt: str):
# Yapay zeka motoruna giden istek süreçleri burada başlar
return {"status": "success", "message": "İçerik başarıyla üretildi."}
Yukarıdaki basit kod bloku, sisteminize dadanan bir botun faturanızı şişirmesini engeller. İstek sınırı aşıldığı an backend doğrudan korumaya geçer ve sunucunuz yapay zeka modellerine pahalı API çağrıları yapmayı durdurur.
3. Girdi Denetimi (Input Validation): Token Havuzunu Muhafaza Etmek
Yapay zeka modellerinde maliyet, girdi (input) ve çıktı (output) token sayısına göre hesaplanır. Bir saldırganın, uygulamanızdaki metin giriş alanına kopyala-yapıştır yöntemiyle 500 sayfalık anlamsız bir doküman yapıştırıp “Özetle” butonuna bastığını hayal edin. Eğer backend katmanında bir sınırlandırmanız yoksa, o tek bir istek bile cüzdanınızda ciddi bir delik açacaktır.
Kullanıcıdan gelen her girdinin karakter ve kelime uzunluğunu daha frontend aşamasında kontrol etmelisiniz, ancak bununla yetinmeyip backend kısmında da kesin bir doğrulama filtresi uygulamalısınız. Girdi karakter uzunluğunu maksimum 2000 karakterle sınırlamak, gelen metni LLM modellerine göndermeden önce `tiktoken` gibi kütüphanelerle token boyutunu ölçüp şüpheli büyüklükteki verileri doğrudan reddetmek, projenizin token ekonomisini sürdürülebilir kılar.
4. Trafik Kapıdaki Ajan: Cloudflare WAF Entegrasyonu
En ucuz API isteği, sunucunuza hiç ulaşmayan istektir. Bot trafiğini, DDoS saldırılarını ve maliyet odaklı taramaları daha kodunuza ve backend altyapınıza ulaşmadan eritmenin yolu uygulamanın önüne güçlü bir ters proxy (reverse proxy) katmanı koymaktır. Cloudflare, bu konuda mikro girişimler için ücretsiz katmanıyla en büyük kurtarıcıdır.
Cloudflare paneli üzerinden Web Application Firewall (WAF) kuralları tanımlayarak, Türkiye dışından gelen şüpheli istek dalgalarını engelleyebilir, saniyede olağan dışı istek atan IP adreslerine otomatik olarak “Turnstile” (gelişmiş captcha) doğrulaması fırlatabilirsiniz. Böylece sunucunuz sadece gerçek, doğrulanmış ve organik insan trafiğine hizmet eder; botların faturanızı şişirmesine izin verilmez.
5. Mikro-SaaS Yayına Alım Öncesi “Anti-Kriz” Kontrol Listesi
Projenizi Product Hunt, X veya Hacker News üzerinde dünyaya duyurmadan önce, aşağıdaki maddelerin tamamına tik attığınızdan emin olun. Bu liste, heyecanlı bir lansman gününün finansal bir felaketle bitmesini engelleyecek son bariyerdir:
- OpenAI / Anthropic: Aylık kullanım için “Hard Limit” tanımlandı ve onaylandı mı?
- Firebase / AWS: Günlük bütçe eşikleri ayarlandı ve SMS/E-posta bildirimleri açıldı mı?
- Backend Katmanı: Kritik tüm API uç noktalarında IP başına dakika/saat bazlı hız sınırlaması (Rate limit) aktif mi?
- Veri Giriş Kontrolü: Kullanıcı formlarındaki maksimum karakter sınırı backend mimarisinde valide ediliyor mu?
- Ön Bellek (Caching): Sık sorulan yapay zeka istekleri için Redis veya yerel bir cache mekanizması kurularak mükerrer API harcamalarının önüne geçildi mi?
- DNS ve Güvenlik Sınırı: Alan adı Cloudflare arkasına alınarak temel bot koruma modları devreye sokuldu mu?
Unutmayın, mikro girişimcilikte harika bir ürün inşa etmek kadar, o ürünü koruyacak finansal zırhı da örmek zorundasınız. Kodunuzu koruyun, limitlerinizi belirleyin ve projenizin büyümesini fatura stresi yaşamadan izleyin.
