Application Load Balancer (ALB)

  • HTTP Katmanında Çalışır: OSI katman modeli bazında 7. katman (Application Layer) yük dengeleyicisidir.

  • Makineden Makineye HTTP Uygulama Trafiğini Yönlendirir: Uygulamalar arası HTTP/S trafiğini analiz eder ve uygun hedefe yönlendirir.

  • Birden Fazla Uygulamayı Yönlendirebilir: Host-based (host-header) veya path-based (path-pattern) routing ile aynı ALB altında birden fazla uygulama çalıştırılabilir. Örnek:

    • api.ornek.com → service A

    • web.ornek.com → service B

    • /admin → admin backend

  • HTTP'den HTTPS’e Otomatik Yönlendirme Yapar: Güvenliği artırmak için gelen tüm HTTP isteklerini otomatik olarak HTTPS'e yönlendirme (redirect) desteği sunar.

  • HTTP/2 ve WebSocket Desteği Vardır: Modern uygulamalar için daha verimli bağlantı yönetimi ve düşük gecikme sağlayan HTTP/2 ile birlikte, WebSocket üzerinden gerçek zamanlı iletişim imkânı sunar.

HTTP trafiği bazında ALB Tanımı

Target Group (Hedef Grup)

  • EC2 instance’ları (Auto Scaling Group ile yönetilebilir) → HTTP üzerinden hedeflenebilir

  • ECS görevleri (tasks) → ECS tarafından yönetilir, HTTP trafiğini alabilir

  • Lambda fonksiyonları → Gelen HTTP isteği bir JSON olayı (event) olarak çevrilir ve Lambda’ya iletilir

  • IP Adresleri → Sadece özel (private) IP adresleri desteklenir

Yönlendirme ve Sağlık Kontrolleri

  • ALB, birden fazla hedef gruba (target group) trafik yönlendirebilir

  • Sağlık kontrolleri, hedef grup seviyesinde tanımlanır ve uygulanır

Farklı hedef gruplara yönlendirme kuralları:

  • URL yolu (path) bazlı yönlendirme: Örnek: example.com/users veya example.com/posts

  • Hostname (alan adı) bazlı yönlendirme: Örnek: one.example.com, other.example.com

  • Sorgu parametresi veya header bazlı yönlendirme: Örnek: example.com/users?id=123&order=false

Query Header Paramater Routing

ALB'nin Avantajları

  • Mikro servisler ve container tabanlı uygulamalar için idealdir (Örnek: Docker, Amazon ECS)

  • ECS için dinamik port yönlendirme (port mapping) desteği sunar

  • Karşılaştırma açısından: Aynı işi klasik yük dengeleyici (Classic Load Balancer) ile yapmak için her uygulama için ayrı bir yük dengeleyici gerekirken, ALB tek başına yeterlidir.

Bilinmesi Gerekenler

  • Sabit bir hostname’e sahiptir: Örnek format: xxx.region.elb.amazonaws.com

  • Uygulama sunucuları istemcinin (client) IP adresini doğrudan göremez.

    • Gerçek istemci IP’si, HTTP başlığı olan X-Forwarded-For içine eklenir.

    • Ek olarak, port bilgisi X-Forwarded-Port, protokol bilgisi ise X-Forwarded-Proto başlığı ile iletilebilir.

Örneklem

Last updated