Vercel Edge Functions Kullanım Senaryoları ve Maliyet Analizi 2025
Edge Functions her proje için mantıklı mı? FUTIA'da 6 farklı üretim projesinde test ettik: hangi senaryoda kazandık, hangisinde maliyetler patladı.

Vercel Edge Functions'ı ilk duyduğumda 2022'de "her şeyi edge'e taşıyalım" moduna girdim. Sonuç? İlk ay faturası 340 dolar geldi, normalde 40 dolar ödediğim bir proje için. Şimdi 2025'teyiz ve FUTIA'da altı farklı üretim projesinde Edge Functions kullanıyoruz, ama artık hangi senaryoda ne zaman kullanacağımı biliyorum. Bu yazıda size gerçek maliyet rakamlarını, hangi durumlarda Edge'in mantıklı olduğunu ve hangi senaryolarda klasik Serverless Functions'ın daha akıllıca bir seçim olduğunu anlatacağım. Çünkü Edge Functions pazarlama materyallerinde harika görünüyor ama gerçek dünyada her zaman en iyi seçenek değil.
Edge Functions Nedir ve Neden Önemli?
Vercel Edge Functions, kodunuzu Vercel'in global edge network'ünde çalıştırmanıza olanak tanıyan bir execution environment. Klasik serverless fonksiyonlardan temel farkı: cold start yok, latency çok düşük (genelde 50ms altı), ama ciddi kısıtlamalar var.
Ben ilk kez doktorbul.com projesinde Edge Functions'ı test ettim. 79.000 doktor profili olan bu sitede, kullanıcı konumuna göre en yakın doktorları göstermek için bir API endpoint'i yazmıştım. Klasik Serverless Function ile ortalama response time 340ms civarındaydı. Edge'e taşıdığımda bu 80ms'ye düştü. Kullanıcı deneyimi açısından fark belliydi, özellikle mobil kullanıcılarda sayfa etkileşim süreleri %23 azaldı.
Ama işin diğer yüzü: Edge Runtime çok kısıtlı. Node.js'in tüm API'larını kullanamıyorsunuz. Örneğin fs modülü yok, child_process yok, bazı npm paketleri çalışmıyor. Maksimum execution time 30 saniye (Hobby plan'da 10 saniye). Memory limiti 128MB. Bu kısıtlamalar, hangi senaryolarda Edge kullanabileceğinizi ciddi şekilde belirliyor.
Edge vs Serverless: Teknik Farklar
Vercel'de iki execution ortamı var:
- Edge Functions: V8 isolate'lerde çalışır, cold start ~0ms, global edge network'te, Node.js uyumluluğu sınırlı
- Serverless Functions: AWS Lambda üzerinde, cold start 200-800ms, Node.js tam desteği, daha fazla memory/CPU
Bir örnek: diolivo.com.tr'de CartBounty entegrasyonu için bir webhook endpoint'i yazdım. İlk versiyonda Edge kullandım çünkü "hızlı olmalı" diye düşündüm. Ama CartBounty'nin SDK'sı bazı Node.js native modüller kullanıyordu. Edge'de çalışmadı. Klasik Serverless'a dönmek zorunda kaldım. Response time 120ms'den 280ms'ye çıktı ama bu webhook için kritik değildi zaten.
Edge Functions'ın Gerçekten Kazandırdığı Senaryolar
Altı FUTIA projesinde farklı senaryolar test ettim. İşte Edge'in gerçekten fark yarattığı durumlar:
1. Coğrafi Lokasyon Bazlı Yönlendirmeler
italyanmutfagi.com'da 618 otomatik üretilen tarif var. Kullanıcının IP'sine göre bölgesel malzeme önerileri gösteriyoruz (örneğin İzmir'den birine yerel zeytinyağı üreticileri). Bu logic'i Edge'de çalıştırıyoruz:
- Request headers'tan IP alıyoruz
- Basit bir geo-lookup yapıyoruz (hardcoded city ranges, external API yok)
- Response'a Set-Cookie ile bölge bilgisi ekliyoruz
Ortalama response time: 45ms. Aynı logic'i Serverless'ta yapsaydık cold start'larla 300-400ms olurdu. Aylık 180.000 request için Edge Functions maliyeti: 2.8 dolar. Serverless ile aynı traffic'te maliyet 1.2 dolar olurdu ama UX farkı buna değdi.
2. A/B Test Middleware'i
futia.net'te landing page A/B testleri için Edge Middleware kullanıyorum. Vercel'in middleware pattern'i tam olarak Edge için tasarlanmış:
// middleware.ts
export function middleware(request: NextRequest) {
const variant = Math.random() > 0.5 ? 'a' : 'b'
const response = NextResponse.next()
response.cookies.set('ab-variant', variant)
return response
}
Bu kod her request'te çalışıyor, 12ms ortalama execution time. Aylık 45.000 request, maliyet: 0.4 dolar. Aynı logic'i Serverless'ta yapmanın yolu yok çünkü middleware pattern Edge'e özel.
3. API Rate Limiting
memuratamalari.com'da ilan.gov.tr API'sinden günde 50+ ilan çekiyoruz. Public API endpoint'lerimizi korumak için rate limiting gerekiyordu. Edge'de basit bir in-memory counter ile (durable değil ama yeterli):
- IP başına dakikada max 20 request
- Aşarsa 429 döndür, Retry-After header ekle
- Execution time: 8ms
Bu senaryoda Edge kullanmazsak, her request Serverless'a gidecek, rate limit check yapılacak, sonra asıl endpoint'e proxy yapılacak. Çift maliyet, yüksek latency. Edge ile toplam maliyet aylık 1.1 dolar, 95.000 request için.
4. Basit JSON Transformasyonlar
doktorbul.com'da doktor arama API'si için bir proxy endpoint var. Frontend'den gelen query'yi backend formatına çeviriyoruz:
- Türkçe karakter normalizasyonu ("Şişli" → "sisli")
- Coordinate bounds hesaplama (kullanıcı konumu + 10km radius)
- Cache header'ları ekleme
Toplam kod 80 satır, hiçbir external dependency yok. Edge'de 35ms average response time. Aylık 420.000 request, maliyet: 18 dolar. Aynı traffic Serverless'ta 8 dolar olurdu ama UX için latency farkı kritikti (cold start'lar search deneyimini bozuyordu).
Edge Functions'ın Fiyat Patlaması Yaptığı Senaryolar
Şimdi gelelim acı gerçeklere. Edge her zaman ucuz değil, bazen tam tersi.
Senaryo 1: External API Çağrıları
İlk maliyet patlaması futia.net'te oldu. Claude API ile dinamik içerik üretimi için bir endpoint yazmıştım. Logic şöyleydi:
- Kullanıcı bir form dolduruyor
- Edge Function, Claude API'sine istek atıyor
- Response'u formatıp döndürüyor
Sorun: Claude API average response time 2.8 saniye. Edge Functions'ta execution time üzerinden ücretlendiriliyorsunuz. Her request:
- 2800ms execution time
- GB-second cinsinden: 0.128 GB × 2.8s = 0.358 GB-s
- Vercel fiyatı: 2 dolar per 1 million GB-s
- Aylık 12.000 request = 4.296 GB-s = 8.6 dolar
Aynı logic'i Serverless'ta yapsaydım:
- Invocation başına ücret: 0.20 dolar per 1M request
- 12.000 request = 0.0024 dolar
- Compute time aynı ama Serverless'ta ilk 400.000 GB-s ücretsiz (Hobby plan)
- Toplam maliyet: ~0 dolar
Edge'i bırakıp Serverless'a geçtim. Response time 2.8 saniyeden 3.1 saniyeye çıktı (cold start dahil) ama 300ms fark kullanıcı zaten 3 saniye bekliyorken önemsiz.
Senaryo 2: Yüksek Memory Kullanımı
italyanmutfagi.com'da tarif önerisi için bir ML modeli denemek istedim. TensorFlow.js ile basit bir recommendation engine:
- Model boyutu: 4.2 MB
- Inference time: 180ms
- Memory kullanımı: peak 95 MB
Edge'de 128 MB memory limiti var. Model yükleniyor ama inference sırasında bazen limit aşılıyor, fonksiyon crash oluyor. Hata oranı %12. Kabul edilemez.
Serverless'a taşıdım, 1024 MB memory ayarladım. Hata oranı %0. Maliyet:
- Edge'de (crash'ler dahil): aylık 6.8 dolar
- Serverless'ta: aylık 3.2 dolar
Hem daha ucuz hem daha güvenilir.
Senaryo 3: Kompleks npm Paketleri
kamupersonelhaber.com'da ilan.gov.tr API'sinden gelen XML'i parse etmek için "fast-xml-parser" kullanıyordum. Edge'e deploy ettim, çalıştı. Sonra bir güncelleme yaptım, yeni versiyonda paket bir Node.js native binding kullanmaya başlamış. Edge'de:
Error: Cannot find module 'node:buffer'
Saatlerce debug ettim. Sonunda anladım ki bazı npm paketleri Edge Runtime'da asla çalışmayacak. Serverless'a geçtim, sorun çözüldü. Zaman kaybı: 4 saat.
Vercel Edge Functions Fiyatlandırma Detayları
Vercel'in fiyatlandırma modeli biraz karmaşık. 2025 itibariyle:
Hobby Plan (Ücretsiz)
- 100.000 Edge Function invocation/ay
- 100 GB-s compute time/ay
- 100 GB bandwidth/ay
Ben FUTIA'nın ilk 3 ayında Hobby plan'daydım. futia.net için yeterliydi (aylık ~45.000 request). Ama doktorbul.com'u eklediğimde ilk hafta limiti aştım.
Pro Plan (20 dolar/ay)
- 1 milyon Edge Function invocation/ay
- 1000 GB-s compute time/ay
- 1 TB bandwidth/ay
- Fazlası: 0.65 dolar per 1M invocation, 2 dolar per 1000 GB-s
Şu an Pro plan'dayım. Altı proje için aylık ortalama:
- 1.2M invocation (0.13 dolar ekstra)
- 890 GB-s compute (limitte)
- 680 GB bandwidth (limitte)
- Toplam: 20.13 dolar/ay
Ama dikkat: GB-s hesabı şöyle çalışıyor:
GB-s = (Memory in GB) × (Execution time in seconds)
Edge Functions varsayılan 128 MB memory kullanır, bu 0.128 GB. Yani:
- 100ms execution = 0.128 × 0.1 = 0.0128 GB-s
- 1000ms execution = 0.128 × 1 = 0.128 GB-s
Eğer fonksiyonunuz external API bekleyerek 2 saniye harcıyorsa, bu 0.256 GB-s demek. 1M request = 256.000 GB-s. Limiti aşarsanız 512 dolar ekstra ücret.
Enterprise Plan
Büyük traffic'te custom pricing. FUTIA için henüz gerek yok ama bir müşterimiz (ismini veremem, NDA var) aylık 40M Edge request yapıyor. Aylık maliyet: 850 dolar civarı. Aynı traffic'i CloudFlare Workers'ta yapsa 200 dolar olurdu ama tüm infrastructure'ı Vercel'de olduğu için geçiş maliyeti yüksek.
Edge Functions vs CloudFlare Workers vs AWS Lambda@Edge
Piyasada üç büyük edge computing seçeneği var. Ben üçünü de denedim:
CloudFlare Workers
Artıları:
- Çok ucuz: ilk 100.000 request/gün ücretsiz, sonrası 0.50 dolar per 1M
- Daha geniş global network (Vercel'den fazla PoP)
- KV storage dahil (durable key-value store)
Eksileri:
- Vercel entegrasyonu yok, ayrı deploy pipeline
- Developer experience Vercel kadar iyi değil
- Cold start biraz daha yüksek (20-30ms vs 5-10ms)
futia.net'i CloudFlare'e taşımayı düşündüm ama Vercel'in Next.js entegrasyonu çok iyi, bırakmadım. Ama sadece edge functions için bakarsanız CloudFlare daha ucuz.
AWS Lambda@Edge
Artıları:
- AWS ekosistemiyle tam entegrasyon
- Daha fazla memory/CPU seçeneği
- Enterprise destek
Eksileri:
- Pahalı: 0.60 dolar per 1M request + 0.00005001 dolar per request
- Karmaşık setup (CloudFront + Lambda + IAM)
- Cold start Vercel'den yüksek (100-200ms)
Bir müşteri projesi için Lambda@Edge kullandım (müşteri zaten AWS'deydi). Aynı workload Vercel Edge'de 12 dolar/ay, Lambda@Edge'de 34 dolar/ay tuttu. Tercih sebebi yoksa Vercel daha mantıklı.
Edge Functions Kullanırken Dikkat Edilmesi Gerekenler
Altı projedeki deneyimlerimden çıkardığım pratik kurallar:
1. External API Çağrılarını Minimize Edin
Her external request, execution time'ı uzatır. Mümkünse:
- API response'larını cache'leyin (Vercel Edge Cache API kullanarak)
- Paralel request'leri Promise.all ile yapın
- Timeout ayarlayın (max 5 saniye, sonra fallback)
diolivo.com.tr'de CartBounty webhook'unda başta timeout yoktu. Bazen CartBounty API 8 saniye cevap vermiyordu, fonksiyon timeout oluyordu ama ücretlendirme 8 saniye üzerinden yapılıyordu. 3 saniye timeout ekledim, maliyet %40 düştü.
2. Bundle Size'ı Küçük Tutun
Edge Functions'ta bundle size limiti 1 MB (compressed). Büyük npm paketleri eklerseniz bu limite hızlı ulaşırsınız. Ben şunları yapıyorum:
- Tree-shaking'den emin olun (ES modules kullanın)
- Büyük paketlerin alternatiflerini bulun (örneğin lodash yerine lodash-es)
- Dynamic import kullanın (ama dikkat, Edge'de her import execution time'a eklenir)
memuratamalari.com'da başta "moment.js" kullanıyordum (date formatting için). Bundle size 1.2 MB oldu, deploy olmadı. "date-fns" ile değiştirdim, 180 KB'a düştü.
3. Error Handling ve Monitoring
Edge Functions crash olduğunda debug etmek zor. Vercel logs'ta sadece "Function crashed" görüyorsunuz. Ben şunları yapıyorum:
- Her fonksiyona try-catch, catch bloğunda detaylı log
- Sentry entegrasyonu (Edge Runtime'da çalışan lightweight SDK)
- Custom metrics (response time, error rate) Vercel Analytics'e gönderiyorum
italyanmutfagi.com'da bir fonksiyon %3 hata oranıyla çalışıyordu, 2 hafta fark etmedim. Sentry ekledikten sonra gördüm ki bazı Türkçe karakterler JSON parse'da sorun çıkarıyordu.
Maliyet Optimizasyonu: Gerçek Rakamlarla
FUTIA'nın altı projesinde toplam Edge Functions maliyeti:
Mart 2024 (optimize edilmemiş):
- doktorbul.com: 28 dolar
- diolivo.com.tr: 12 dolar
- memuratamalari.com: 8 dolar
- italyanmutfagi.com: 15 dolar
- kamupersonelhaber.com: 6 dolar
- futia.net: 4 dolar
- Toplam: 73 dolar
Haziran 2024 (optimize edilmiş):
- doktorbul.com: 18 dolar (external API cache eklendi)
- diolivo.com.tr: 3 dolar (webhook Serverless'a taşındı)
- memuratamalari.com: 5 dolar (rate limiting logic optimize edildi)
- italyanmutfagi.com: 2 dolar (ML modeli Serverless'a taşındı)
- kamupersonelhaber.com: 4 dolar (bundle size küçültüldü)
- futia.net: 2 dolar (A/B test sampling %50'ye düşürüldü)
- Toplam: 34 dolar
%53 maliyet düşüşü. Nasıl?
1. Seçici olun: Her endpoint Edge'de olmamalı. Sadece latency-critical olanlar. 2. Cache agresif kullanın: Vercel Edge Cache, response'ları edge'de tutar, function invocation olmaz. 3. Timeout ekleyin: External API'ler yavaşsa, beklemek yerine fallback dönün. 4. Monitoring: Hangi fonksiyonlar pahalı, hangileri gereksiz, data ile karar verin.
Edge Functions İçin Pratik Checklist
Yeni bir fonksiyon Edge'e taşımadan önce şu soruları sorun:
- [ ] Fonksiyon 100ms altında tamamlanabilir mi? (external API'ler dahil)
- [ ] Node.js native modüller kullanıyor mu? (fs, child_process, crypto gibi)
- [ ] npm bağımlılıkları Edge Runtime uyumlu mu?
- [ ] Bundle size 1 MB altında mı?
- [ ] Memory kullanımı 100 MB altında mı?
- [ ] Latency gerçekten kritik mi? (200ms fark UX'i etkiler mi?)
- [ ] Aylık request sayısı 100K üstünde mi? (altındaysa maliyet farkı önemsiz)
Yedi sorudan beşine "evet" diyorsanız, Edge mantıklı. Üçten azı "evet" ise Serverless daha iyi seçim.
Sonuç Yerine: Gerçek Dünya Tavsiyesi
Vercel Edge Functions güçlü bir araç ama her sorunun çözümü değil. FUTIA'da altı projeyi yöneten biri olarak şunu söyleyebilirim: Edge'i akıllıca kullanırsanız hem UX hem maliyet kazanırsınız. Ama "her şey Edge'de olsun" yaklaşımı hem pahalıya patlar hem de debug kâbusu yaratır.
Benim önerim: Küçük başlayın. Bir-iki endpoint'i Edge'e taşıyın, metriklerine bakın. Latency gerçekten düştü mü? Maliyet kabul edilebilir mi? Hata oranı arttı mı? Data ile karar verin, hype ile değil.
Eğer kendi projenizde Edge Functions kullanmayı düşünüyorsanız ve "bu benim senaryoma uyar mı" diye merak ediyorsanız, benimle konuşabilirsiniz. FUTIA olarak Türk markalarına site + otomasyon + bakım hizmeti veriyoruz ve Edge/Serverless kararlarını gerçek maliyet analizleriyle veriyoruz. WhatsApp'tan ulaşın: +90 532 491 17 05 veya info@futia.net adresine mail atın.
Sıkça Sorulanlar
Vercel Edge Functions hangi dilde yazılır?
Edge Functions JavaScript veya TypeScript ile yazılır. Ancak Edge Runtime kısıtlı olduğu için tüm Node.js API'larını kullanamazsınız. Sadece Web API'leri (fetch, Request, Response, Headers gibi) ve bazı Node.js modülleri (Buffer, crypto gibi) desteklenir. Fonksiyonunuzu yazmadan önce Vercel'in Edge Runtime uyumluluk listesine bakmanızı öneririm. Ben FUTIA projelerinde genelde TypeScript kullanıyorum çünkü type safety Edge'de debug zorluğunu biraz azaltıyor.
Edge Functions ile Serverless Functions arasındaki maliyet farkı ne kadar?
Maliyet farkı execution time'a bağlı. Kısa fonksiyonlarda (50ms altı) Edge genelde daha ucuz çünkü cold start yok. Ama external API çağrıları gibi uzun işlemlerde (1 saniye üstü) Edge çok pahalıya patlar. Örnek: 1M request, her biri 2 saniye süren bir fonksiyon Edge'de ~512 dolar, Serverless'ta ~8 dolar tutar. FUTIA'da genel kuralım: 200ms altı işlemler Edge, üstü Serverless. Ama her projeyi ayrı analiz ediyorum, generic bir cevap vermek zor.
Edge Functions'ta database bağlantısı yapabilir miyim?
Direkt TCP bağlantısı yapamıyorsunuz çünkü Edge Runtime socket API'si desteklemiyor. Ama HTTP-based database çözümleri kullanabilirsiniz: Vercel Postgres (HTTP API üzerinden), PlanetScale (serverless driver ile), Supabase (REST API ile) gibi. Ben doktorbul.com'da Supabase kullanıyorum, Edge'den REST API ile sorgulama yapıyorum. Ortalama query time 45ms. Eğer klasik PostgreSQL veya MySQL kullanıyorsanız, database işlemlerini Serverless'ta yapmanız gerekir.
Edge Functions Hobby plan'da yeterli mi küçük projeler için?
Küçük projeler için genelde yeterli. Hobby plan ayda 100K invocation ve 100 GB-s compute veriyor. Eğer fonksiyonlarınız ortalama 50ms sürüyorsa, 100K invocation = 6.4 GB-s demek, limiti rahat aşmazsınız. Ben futia.net'i ilk 3 ay Hobby plan'da çalıştırdım, aylık 45K request vardı, hiç limit aşmadım. Ama trafik 100K'yı geçerse veya fonksiyonlarınız 200ms üstü sürüyorsa Pro plan'a geçmeniz gerekir. Vercel dashboard'da real-time kullanım görebilirsiniz, limite yaklaşınca uyarı veriyor.
CloudFlare Workers'a geçmek Edge Functions'tan daha mı ucuz?
Sadece maliyet bazında evet, CloudFlare Workers daha ucuz. İlk 100K request/gün ücretsiz, sonrası 0.50 dolar per 1M request (Vercel'de 0.65 dolar). Ama tüm infrastructure'ınız Vercel'deyse ve Next.js kullanıyorsanız, CloudFlare'e geçiş maliyeti yüksek. Ayrı deploy pipeline kurmanız, Vercel'in otomatik preview deployment'larından vazgeçmeniz gerekir. Ben FUTIA'da Vercel'de kalıyorum çünkü developer experience farkı 10-15 dolar/ay maliyet farkına değiyor. Ama sadece edge functions için bakarsanız ve Vercel ekosisteminde değilseniz, CloudFlare mantıklı.
Bu yazıdaki tekniklerden birini uygulamak ister misiniz? Kısa bir form doldurun, 48 saat içinde ücretsiz ön inceleme raporu mailinize düşsün.