AWS Elastic Load Balancing Servisi

Java Kotlin Eğitimi

Merhaba Arkadaşlar ,
Mobilhanem.com üzerinden yayınladığımız AWS Dersleri‘ne bugunkü yazimizda Load Balancer (Yük Dengeleyici) kavramı ile devam ediyoruz.

Load Balancer Nedir?

Load Balancer’lar uygulamalarınız koştuğu serverlar arasında iş yükünü dağıtarak, uygulamanızın ölçeklenmesini (scalability) sağlar. Hızlı bir örnek verecek olursak, iki tane server’ınız olduğunu varsayalım: A ve B. Gelen isteklerin A ve B server’ları arasında dağıtılma işlemi Load Balancer tarafından yapılır. Serverlerdan biri down olsa bile, sisteminiz hala çalışmaya devam edebilir.

Classic Load Balancer

Load Balancer’lar ikiye ayrılır diyebiliriz: Layer 4 ve Layer 7. Burdaki Layer kavramını daha iyi anlayabilmek için OSI modelini okumanızı tavsiye ederim. Layer 4 tipi olanlar transport layerlarında bulunan protokolleri (TCP) dağıtırken kullanılır. Layer 7 olanlar ise application layer’ındaki istekleri (HTTP requests) serverlara dağıtırken kullanılır.

Amazon Load Balancer Konusunda Ne Sunuyor?

AWS bu konuda da uygulama geliştiricilerin hayatlarını kolaylaştıracak Elastic Load Balancing servisini sunuyor.

AWS Load Balancing servisi altında kullanabileceğiniz 3 cesit load balancer mevcuttur.

  • ELB (Classic Load Balancer)

AWS’nin çıkardığı ilk ve Layer 7’de çalışan Load Balancer tipidir. Oluşturduğunuz ELB’lere uygulamalarınızın çalıştığı EC2 instance’larını takıp çıkarabilirisiniz. Hem HTTP hem de HTTPS trafiğini ELB’yi konfigüre ederek EC2 instance’ları arasında dağıtabilirsiniz. ELB’yi kullanmaya başlamadan önce bir veya birden fazla listener konfigüre edilmesi gerekir. Listener’lar connection isteklerini karşılayan, bir adet protocol ve port ile front-end (client -> loadbalancer) connectionları, aynı sekilde back-end connection’ları (load balancer -> EC2) konfigüre edilen bir process’dir.

ELB aşağıdaki protokolleri destekler:

  • HTTP
  • HTTPS (secure HTTP)
  • TCP
  • SSL (secure TCP)

AWS’in sundugu diğer güzel bir özellikte “Health Check”dir. ELB’ye takılmış olan EC2 instance’larının health check’leri sizin belirlediğiniz aralıklarla otomatik yapılır ve EC2 instance’larında problem olduğu anlaşılırsa, gelen trafik artık o EC2 instance’larına yönlendirilmez.

  • ALB (Application Load Balancer)

AWS yeni jenerasyon load balancer tipidir. ELB’de olduğu gibi ALB’de de listener’lar konfigür edilmelidir. ALB de ELB’den farklı olarak, listerner’lara kurallar tanımlanılabilir. Bu yazılan kurallara göre, gelen trafik Target Group’lara yönlendirilir. Target Group bir veya birden fazla Target’lardan oluşur. Burdaki target’lar EC2 instance’larına karşılık gelir.

Application Load Balancer

Kısa bir örnek verecek olursak, ALB’ye şu kuralları tanımladığımız varsayalım.

  • Gelen request path’i “/serviceA” ile bitiyorsa, target group A
  • Diger request’leri target B ye yönlerdir.

http://your-site/serviceA path’ine gelen istekler A target grubuna takılmış ve sağlıklı olan EC2 instance tarafından, diğer bütün istekler B’ye takılı EC2 instance tarafından karşılanacak.

  • Network Load Balancer

AWS’nin yeni nesil Layer 4 (TCP) load balancer tipidir ve gelen connection’ları EC2 instance’ları, containerlar ve IP adreslerine dağıtabilir. Aynı anda milyonlarca isteği karşılayabicelek kadar ölçeklenebilir. Yine diger load balancer tiplerinde olduğu gibi birden fazla zone’a kurulabilir ve health check konfigürasyonları yapılabilir.

ELB Nasıl Monitor Edilir ?

Yine diğer birçok serviste olduğu gibi, load balancer servisinin metrikleri AWS CloudWatch servisine gönderilir ve bu metrikler kullanılarak alarmlar oluşturulabilir.

Örnek CloudWatch Grafiği

Örnegin yukarıdaki grafikte, load balancer’a dakikada gelen request sayıları gösteriliyor. Bunun yanısıra daha birçok metriği Cloudwatch servisi üzerinden kontrol edebilirsiniz. Görebilieceğiniz birkaç metrik örneği aşağıda listelenmiştir.

  • RequestCount
  • RequestCountPerTarget
  • TargetResponseTime
  • UnHealthyHostCount
  • HealthyHostCount

Konu hakkında sorularınızı konu altından ve ya SoruCevap sitemizden sorabilirsiniz.

AWS Derslerimizden IAM kimlikleri dersimizin de sonuna gelmiş bulunuyoruz. AWS Derslerimize tıklayarak devam edebilirsiniz.

Salih Kardan

Bilgisayar Mühendisi, Bilkent Universitesi

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?