2024-08-10Hunkar Döner

Modern Load Balancing: ALB mi, NLB mi, Envoy Gateway mi?

Load BalancingAWSALBNLBEnvoy GatewayKubernetes
M

Modern Load Balancing: ALB mi, NLB mi, Envoy Gateway mi?

Modern mikroservis mimarilerinde trafik yönetimi (Traffic Management), uygulamanın performansı ve güvenliği için en kritik bileşenlerden biridir. AWS üzerinde çalışırken karşımıza genellikle Application Load Balancer (ALB) ve Network Load Balancer (NLB) seçenekleri çıkar. Ancak Kubernetes'in yükselişiyle birlikte Envoy Gateway gibi yeni nesil çözümler de denkleme dahil oldu. Peki hangisini ne zaman seçmelisiniz?

Bu rehberde, bu teknolojilerin farklarını ve kullanım senaryolarını inceleyeceğiz. Karmaşık ağ yapılarınızı yönetmek için Kubernetes Danışmanlığı ve AWS Danışmanlığı hizmetlerimizden destek alabilirsiniz.

1. Application Load Balancer (ALB): Uygulama Katmanının Hakimi

ALB, OSI modelinin 7. katmanında (L7 - Application Layer) çalışır. Yani HTTP/HTTPS trafiğini anlar, içeriğine bakar ve buna göre kararlar verir.

  • Ne Zaman Kullanılır? Web uygulamaları, mikroservisler, konteynerler.
  • Özellikleri:
    • İçerik Tabanlı Yönlendirme: /api isteklerini bir servise, /images isteklerini başka bir servise yönlendirebilir.
    • SSL Sonlandırma: Sertifika yönetimini (ACM entegrasyonu) kolayca yapar.
    • WAF Entegrasyonu: AWS WAF ile çalışarak güvenliği sağlar.
  • Dezavantajı: TCP/UDP trafiğini (örn: veritabanı bağlantıları veya oyun sunucuları) desteklemez.

2. Network Load Balancer (NLB): Hız ve Performans Canavarı

NLB, 4. katmanda (L4 - Transport Layer) çalışır. Paketin içeriğine bakmaz, sadece IP ve Port bilgisine göre yönlendirme yapar.

  • Ne Zaman Kullanılır? Çok yüksek trafikli sistemler (milyonlarca istek/saniye), TCP/UDP uygulamaları, statik IP gerektiren durumlar.
  • Özellikleri:
    • Ultra Düşük Gecikme (Latency): ALB'ye göre çok daha hızlıdır.
    • Statik IP: Sabit bir IP adresi sunar (ALB sunmaz, DNS adı verir).
  • Dezavantajı: HTTP başlıklarını (headers) okuyamaz, akıllı yönlendirme yapamaz.

3. Envoy Gateway: Kubernetes'in Yeni Yıldızı

Envoy Proxy, bulut yerlisi (Cloud Native) uygulamalar için tasarlanmış, yüksek performanslı bir proxy'dir. Envoy Gateway ise bunu Kubernetes giriş kapısı (Ingress/Gateway API) olarak kullanmayı kolaylaştırır.

  • Neden Envoy? AWS ALB/NLB harika servislerdir ancak bazen Kubernetes dünyasının dinamizmine yetmeyebilirler veya platformdan bağımsız (cloud-agnostic) bir çözüm gerekebilir.
  • Avantajları:
    • Gelişmiş Trafik Yönetimi: Canary deployment, Blue/Green deployment, Traffic Mirroring gibi karmaşık senaryoları yerel olarak destekler.
    • Gözlemlenebilirlik (Observability): Çok detaylı metrikler ve loglar sunar.
    • Platform Bağımsız: Hem AWS'te hem de kendi veri merkezinizde aynı konfigürasyonla çalışır.

Karar Anı: Hangisi?

  • Basit bir web uygulamanız varsa ve AWS kullanıyorsanız: ALB.
  • Saniyede milyonlarca istek alan bir oyun sunucusu veya veritabanı proxy'si kuruyorsanız: NLB.
  • Kubernetes üzerinde karmaşık mikroservis trafiği yönetiyor, Canary release yapıyor ve detaylı metrik istiyorsanız: Envoy Gateway.

Genellikle en iyi mimari, bunları birlikte kullanmaktır. Örneğin, dış dünyadan gelen trafiği NLB ile karşılayıp, içerideki Kubernetes kümesine (Cluster) aktarmak ve küme içindeki dağıtımı Envoy (Ingress Controller) ile yönetmek yaygın bir pratiktir.