İçeriğe geç
DevOps

Web Hosting Karşılaştırması: Vercel vs Netlify vs AWS

Tarık Tunç
Web Hosting Karşılaştırması: Vercel vs Netlify vs AWS

Web Hosting Karşılaştırması: Vercel vs Netlify vs AWS

Modern web uygulamalarını yayınlamak için birçok platform seçeneği bulunmaktadır. Vercel, Netlify ve AWS en popüler hosting çözümleri arasında yer alır ve her birinin kendine özgü güçlü yönleri vardır. Doğru platform seçimi projenizin başarısını, geliştirme hızınızı ve maliyetinizi doğrudan etkiler. Bu rehberde bu üç platformu derinlemesine karşılaştırıyor, hangi durumda hangisini tercih etmeniz gerektiğini gerçek dünya senaryolarıyla açıklıyoruz.

Platform Genel Bakış

Özellik Vercel Netlify AWS (Amplify)
Odak Alanı Next.js / Frontend JAMstack / Static Full Cloud / Enterprise
Deployment Git push + CLI Git push + CLI + Drag&Drop Git push + CLI + Console
Edge Network Global (Anycast) Global CDN CloudFront (200+ PoP)
Serverless Functions Node.js, Edge Runtime Node.js, Go, Rust Lambda (15+ dil)
Free Tier Hobby (kişisel) Starter (kişisel) 12 ay Free Tier
Öğrenme Eğrisi Düşük Düşük Yüksek

Vercel: Next.js'in Doğal Evi

Vercel, Next.js'in yaratıcıları tarafından geliştirilen ve özellikle React/Next.js projeleri için optimize edilmiş bir platformdur.

# Vercel ile deployment
npm i -g vercel

# Otomatik framework algılama ile deploy
vercel

# Production deployment
vercel --prod

# vercel.json konfigürasyonu
{
  "framework": "nextjs",
  "regions": ["iad1", "fra1", "sin1"],
  "crons": [
    {
      "path": "/api/cron/cleanup",
      "schedule": "0 0 * * *"
    }
  ]
}

# Vercel Edge Functions
// app/api/geo/route.ts
export const runtime = 'edge';

export async function GET(request: Request) {
  const country = request.headers.get('x-vercel-ip-country');
  const city = request.headers.get('x-vercel-ip-city');
  return Response.json({ country, city });
}

Vercel Avantajları:

  • Next.js için en iyi optimizasyonlar (ISR, Edge Middleware, Image Optimization)
  • Her PR için otomatik preview deployment
  • Yerleşik analytics ve Speed Insights
  • Instant rollback
  • Sıfır konfigürasyon deployment

Vercel Dezavantajları:

  • Fiyatlandırma yüksek bandwidth kullanımında artabilir
  • Serverless function timeout limiti (Hobby: 10s, Pro: 60s)
  • Vendor lock-in riski (Next.js'e özel optimizasyonlar)

Netlify: JAMstack'in Öncüsü

Netlify, JAMstack mimarisinin popülerleşmesinde büyük rol oynamış ve statik siteler ile modern web uygulamaları için kapsamlı bir platform sunar.

# Netlify CLI ile deployment
npm i -g netlify-cli

# Giriş ve proje bağlantısı
netlify login
netlify init

# Deploy
netlify deploy --prod

# netlify.toml konfigürasyonu
[build]
  command = "npm run build"
  publish = ".next"

[build.environment]
  NODE_VERSION = "20"

[[redirects]]
  from = "/api/*"
  to = "/.netlify/functions/:splat"
  status = 200

[[headers]]
  for = "/fonts/*"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"

# Netlify Functions
// netlify/functions/hello.ts
import type { Handler } from '@netlify/functions';

export const handler: Handler = async (event) => {
  const name = event.queryStringParameters?.name || 'Dünya';
  return {
    statusCode: 200,
    body: JSON.stringify({ message: `Merhaba, ${name}!` }),
  };
};
Bilgi: Netlify'ın Form handling, Identity (auth) ve Split Testing gibi yerleşik özellikleri, bu ihtiyaçlar için ek servis entegrasyonu gerektirmez. Özellikle JAMstack projeleri ve pazarlama siteleri için büyük kolaylık sağlar.

Netlify Avantajları:

  • Yerleşik form handling (backend gerektirmez)
  • Split testing (A/B testing)
  • Identity (authentication)
  • Large Media (Git LFS alternatifi)
  • Framework agnostic

Netlify Dezavantajları:

  • Next.js desteği Vercel kadar derin değil
  • Build süreleri Vercel'den biraz daha uzun olabilir
  • Edge Functions henüz Deno tabanlı (Node.js API tam uyumlu değil)

AWS: Sınırsız Esneklik

AWS, tam kontrol ve sınırsız ölçeklenebilirlik sunar. AWS Amplify ile frontend deployment'ı kolaylaşırken, diğer AWS servisleri ile entegrasyon mükemmeldir.

# AWS Amplify ile deployment
npm i -g @aws-amplify/cli

# Proje başlatma
amplify init
amplify add hosting
amplify publish

# amplify.yml - Build yapılandırması
version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
      - .next/cache/**/*

# AWS Lambda Function (API)
// lambda/handler.ts
import { APIGatewayProxyHandler } from 'aws-lambda';

export const handler: APIGatewayProxyHandler = async (event) => {
  return {
    statusCode: 200,
    headers: {
      'Content-Type': 'application/json',
      'Access-Control-Allow-Origin': '*',
    },
    body: JSON.stringify({
      message: 'Merhaba, AWS Lambda!',
      path: event.path,
    }),
  };
};
Uyarı: AWS'de maliyet kontrolü kritiktir. Free tier limitleri aşıldığında beklenmedik faturalar oluşabilir. AWS Budgets ile maliyet alarmları kurun ve kullanmadığınız kaynakları temizleyin. Özellikle CloudFront, Lambda ve S3 kullanımlarını izleyin.

AWS Avantajları:

  • Tam kontrol ve esneklik
  • 200+ servis ile entegrasyon
  • Enterprise SLA ve compliance
  • En geniş global altyapı
  • Maliyet optimizasyonu seçenekleri

AWS Dezavantajları:

  • Yüksek öğrenme eğrisi
  • Karmaşık fiyatlandırma modeli
  • DevOps bilgisi gerektirir
  • Preview deployment'lar otomatik değil

Fiyatlandırma Karşılaştırması

Plan Vercel Netlify AWS Amplify
Free Hobby: 100GB BW Starter: 100GB BW 12 ay: 1000 build dk
Pro/Team $20/üye/ay $19/üye/ay Kullanıma göre
Enterprise Özel fiyat Özel fiyat Kullanıma göre + destek

Hangi Durumda Hangisi?

Projenizin ihtiyaçlarına göre platform seçimi:

  • Next.js projesi: Vercel (en iyi entegrasyon ve performans)
  • Statik site / JAMstack: Netlify (form handling, identity dahil)
  • Enterprise / karmaşık backend: AWS (tam kontrol ve esneklik)
  • Kişisel proje / portfolio: Vercel veya Netlify (ücretsiz planlar yeterli)
  • E-ticaret / yüksek trafik: AWS veya Vercel Enterprise
  • Çok dilli / çok bölgeli: AWS CloudFront veya Vercel Edge
İpucu: Platformlar arası taşınabilirliği korumak için uygulamanızı mümkün olduğunca platform-agnostic tutun. Next.js'in output: 'standalone' ayarı ile oluşturduğunuz build, herhangi bir Node.js ortamında çalışabilir. Docker ile paketleme de taşınabilirliği artırır.

Hibrit Yaklaşım

Birçok proje tek bir platformla sınırlı kalmak zorunda değildir:

# Yaygın hibrit mimari örneği:
# - Frontend (Next.js) → Vercel
# - API Backend → AWS Lambda / ECS
# - Veritabanı → AWS RDS / PlanetScale
# - CDN → CloudFront veya Vercel Edge
# - Auth → Auth0 / Clerk
# - Arama → Algolia / Meilisearch
# - E-posta → AWS SES / Resend

# Vercel'de environment variable ile API endpoint tanımlama
NEXT_PUBLIC_API_URL=https://api.example.com
DATABASE_URL=postgresql://...@aws-rds-endpoint:5432/mydb

Sonuç

Platform seçimi projenizin büyüklüğüne, takımınızın deneyimine ve teknik gereksinimlerinize bağlıdır. Vercel, Next.js projeleri için en sorunsuz deneyimi sunar. Netlify, JAMstack ve statik siteler için mükemmel bir seçimdir. AWS, tam kontrol ve enterprise ölçeklenebilirlik gerektiren projeler için idealdir. Küçük projelerde Vercel veya Netlify'ın ücretsiz planlarıyla başlayıp, ihtiyaç büyüdükçe geçiş yapabilirsiniz.

Kaynaklar

İlgili Yazılar