AWS Elastic Load Balancer (ELB)
Gelen uygulama trafiğini Amazon EC2 bulut sunucuları, kapsayıcılar, IP adresleri ve Lambda İşlevleri gibi birden çok hedefe dağıtır.
Yük Dengeleyiciler, gelen trafiği kabul eden ve ardından trafiği birden çok hedefe dağıtan fiziksel donanım veya sanal yazılım olabilir. Yükü farklı kurallarla dengeleyebilir. Bu kurallar, yük dengeleyici türlerine göre değişir.
ELB, yük dengeleme trafiği için AWS çözümüdür ve 3 tür mevcuttur:
1- Application Load Balancer (ALB — HTTP/HTTPS)
2-Network Load Balancer (NLB — TCP/UDP)
3- Classic Load Balancer (CLB — Legacy )
Trafik Kuralları
Listeners, gelen trafik listeners’e karşı değerlendirilir. listeners, herhangi bir trafiğin listeners bağlantı noktasıyla eşleşip eşleşmediğini değerlendirir. Classic Load Balancer için EC2 bulut sunucuları doğrudan Load Balancer’a kaydedilir.
Rules (Classic Load Balancer için kullanılamaz), Listeners daha sonra trafikle ne yapılacağına karar vermek için kuralları çağırır. Genellikle bir sonraki adım trafiği bir Target Group’a iletmektir.
Target Groups (Classic Load Balancer için kullanılamaz), EC2 bulut sunucuları bir Target Group’a hedef olarak kaydedilir.

ALB veya NLB için trafik listeners gönderilir. Bağlantı noktası eşleştiğinde, ne yapılması gerektiğine dair kuralları kontrol eder. Kurallar, trafiği bir Target Group’a iletecektir. Target Group, trafiği bu Target Group’a kayıtlı EC2 bulut sunucularına eşit olarak dağıtır.


CLB trafiği Listeners’e gönderilir. Bağlantı noktası onunla eşleştiğinde, trafiği CLB’ye kayıtlı herhangi bir EC2 bulut sunucusuna iletir, CLB, Listeners kural uygulamanıza izin vermez.
Application Load Balancer (ALB),
ALB, HTTP ve HTTPS trafiğini dengelemek için tasarlanmıştır. Katman 7'de çalışırlar (OSI Modelinin)
ALB, HTTP protokolüne dayalı olarak dinleyicilerinize(listeners) yönlendirme kuralları eklemenize izin veren İstek Yönlendirme adlı bir özelliğe sahiptir. ALB’ye Web Uygulaması Güvenlik Duvarı (WAF) eklenebilir.
Network Load Balancer (NLB),
NLB, TCP/UDP’yi dengelemek için tasarlanmıştır. Katman 4'te çalışırlar. Son derece düşük gecikme sürelerini korurken saniyede milyonlarca isteği işleyebilirler. Bölgeler Arası Yük Dengeleme gerçekleştirebilir. Çok oyunculu video oyunları için veya Ağ Performansı kritik olduğunda işimize yarabilir.
Classic Load Balancer (CLB),
AWS ilk yük dengeleyiciydi (eski) HTTP, HTTPS veya TCP trafiğini dengeleyebilir (aynı anda değil). Sticky Sessions gibi katman 7'ye özgü özellikleri (OSI Modeli) kullanabilir. Ayrıca, yalnızca TCP uygulamaları için katı katman 4 (OSI Modeli) dengelemesini de kullanabilir. Bölgeler Arası Yük Dengelemesi gerçekleştirebilir. Temel alınan uygulama yanıt vermiyorsa 504 hatasıyla (zaman aşımı) yanıt verir. (Web sunucusu veya veritabanı düzeyinde) Kullanılması tavsiye edilmez, bunun yerine NLB veya ALB kullanın.
Sticky Sessions

Sticky Sessions, bir kullanıcının oturumunu belirli bir EC2 bulut sunucusuna bağlamanıza olanak tanıyan gelişmiş bir yük dengeleme yöntemidir. Bu oturumlardan gelen tüm isteklerin aynı EC2 bulut sunucusuna gönderilmesini sağlar. Tipik olarak bir CLB ile kullanılır. ALB için etkinleştirilebilir, ancak tek tek EC2 bulut sunucuları için değil yalnızca target group’da ayarlanabilir. Cookies, hangi EC2 Bulut Sunucusunun hatırlanması için kullanılır. Belirli bilgiler yalnızca yerel olarak tek bir EC2 bulut sunucusunda depolandığında kullanışlıdır.
X-Forwarded-For (XFF),

Bir kullanıcının IPv4 adresine ihtiyacınız varsa, X-Forwarded-For başlığını kontrol edin. XFF başlığı, bir HTTP proxy’si veya bir yük dengeleyici aracılığıyla bir web sunucusuna bağlanan bir istemcinin kaynak IP adresini tanımlamak için kullanılan bir komut yöntemidir.
Health Checks,

ELB tarafından izlenen EC2 bulut sunucuları, Durum Kontrollerini Hizmet İçi veya Hizmet Dışı olarak geri bildirir. Durum Denetimleri, durumunu belirlemek için doğrudan sunucu ile iletişim kurar. ELB, sağlıksız EC2 bulut sunucularını sonlandırmaz (öldürmez). Yalnızca trafiği sağlıklı EC2 bulut sunucularına yönlendirir.

ALB ve NLB için sağlık kontrolleri target group üzerinde bulunur.
Cross-Zone Load Balancing

Yalnızca Classic ve Network Load Balancer için.

Cross-Zone Load Balancing — Enabled = istek, tüm etkin AZ’de EC2 bulut sunucuları arasında eşit olarak dağıtılır.

Cross-Zone Load Balancing — Disabled = istek, yalnızca AZ’de EC2 bulut sunucularına eşit olarak dağıtılır.
Request Routing,

Gelen isteğe kurallar uygulayın ve ardından trafiği yönlendirin veya yeniden yönlendirin.

Özetle,
- Üç ELB, türü vardır, Network, Application, Classic Load Balancer.
- Bir ELB’de en az iki AZ olmalıdır.
- ELB bölgeler arası gidemez. Her bölge için bir tane oluşturmalısınız.
- ALB’nin trafiği yönlendirmek için listeners, rules ve target groups’ları vardır.
- NLB trafiği yönlendirmek için listeners ve target groups kullanır.
- CLB kullanım listeners ve EC2 bulut sunucuları doğrudan CLB’ye hedef olarak kaydedilir.
- ALB, HTTP trafiği içindir ve adı, Web Uygulaması için iyi olduğunu ima eder.
- NLB, TCP/UDP içindir, örneğin, yüksek ağ çıkışı için iyidir. Video oyunları.
- CLB eskidir ve ALB veya NLB kullanılması önerilir.
- ELB’den geçen gelen trafiğin orijinal IP’sini almak için X-Forwarded-For (XFF) kullanın.
- WAF’ı ALB’ye bağlayabilirsiniz ancak NLB veya CLB’ye bağlayamazsınız.
- Amazon Certification Manager SSL’yi herhangi bir ELB’ye SSL ekleyebiliriz.
- ALB, subdomain header, path ve diğer HTTP(S) bilgilerine göre yönlendirme yapabileceğiniz gelişmiş İstek Yönlendirme kurallarına sahiptir.
- Sticky Sessions CLB veya ALB için etkinleştirilebilir ve oturumlar Çerez aracılığıyla hatırlanır.