AWS ELB ile Yük Dengeleme

Herkese selam! Kurs bugün başlıyor "Geliştiriciler için AWS", bununla bağlantılı olarak ELB incelemesine adanmış ilgili bir tematik web semineri düzenledik. Dengeleyici türlerine baktık ve dengeleyici içeren birkaç EC2 bulut sunucusu oluşturduk. Ayrıca diğer kullanım örneklerini de inceledik.

AWS ELB ile Yük Dengeleme

Web seminerini dinledikten sonra, Olacaksın:

  • AWS Yük Dengelemenin ne olduğunu anlayın;
  • Elastic Load Balancer çeşitlerini ve bileşenlerini bilir;
  • Uygulamanızda AWS ELB'yi kullanın.

Bunu neden bilmeniz gerekiyor?

  • AWS sertifikasyon sınavlarına girmeyi planlıyorsanız kullanışlıdır;
  • bu, yükü sunucular arasında dağıtmanın basit bir yoludur;
  • Bu, Lambda'yı hizmetinize (ALB) eklemenin basit bir yoludur.

Açık ders yaptım Rişat Teregulov, bir pazarlama şirketinde web sitesi geliştirme ve destek için sistem mühendisi.

Giriş

Elastik Yük Dengeleyicinin ne olduğu, basit bir örnekle gösterilen aşağıdaki şemada görülebilir:

AWS ELB ile Yük Dengeleme

Load Balancer istekleri kabul eder ve bunları örnekler arasında dağıtır. Ayrı bir örneğimiz var, Lambda işlevleri var ve bir Otomatik Ölçeklendirme grubu (bir sunucu grubu) var.

AWS ELB Türleri

1. Ana türlere bakalım:

Klasik Yük Dengeleyici. AWS'nin ilk dengeleyicisi, hem OSI 4. hem de 7. katmanlarında çalışır; HTTP, HTTPS, TCP ve SSL desteklenir. Birden fazla Amazon EC2 bulut sunucusunda temel yük dengeleme sağlar ve hem istek hem de bağlantı düzeyinde çalışır. Hadi açalım (gri renkle vurgulanmıştır):

AWS ELB ile Yük Dengeleme

Bu dengeleyicinin eski olduğu kabul edilir, bu nedenle yalnızca belirli durumlarda kullanılması önerilir. Örneğin EC2‑Classic ağı üzerine oluşturulmuş uygulamalar için. Prensip olarak hiç kimse bizi bunu yaratmaktan alıkoymuyor:

AWS ELB ile Yük Dengeleme

2. Ağ Yük Dengeleyici. Ağır iş yüklerine uygundur, OSI Layer 4'te çalışır (EKS ve ECS'de kullanılabilir), TCP, UDP ve TLS desteklenir.

Network Load Balancer, trafiği bir Amazon VPC'deki hedeflere yönlendirir ve ultra düşük gecikme süresiyle saniyede milyonlarca isteği işleyebilir. Ek olarak, ani ve değişen yüklere sahip trafik düzenlerini idare edecek şekilde optimize edilmiştir.

3. Uygulama Yük Dengeleyici. Katman 7'de çalışır, Lambda desteğine sahiptir, başlık ve yol düzeyi kurallarını destekler, HTTP ve HTTPS'yi destekler.
Mikro hizmetler ve konteynerler de dahil olmak üzere modern mimariler üzerine kurulu uygulamalar sunmaya odaklanan gelişmiş istek yönlendirme sağlar. İsteğin içeriğine göre trafiği Amazon VPC'deki hedeflere yönlendirir.

TCP, HTTP kadar yaygın olmadığından, birçok kullanıcı için Classic Load Balancer'ın yerine Application Load Balancer ilk tercih oldu.

Bunu da oluşturalım, bunun sonucunda zaten iki yük dengeleyicimiz olacak:

AWS ELB ile Yük Dengeleme

Yük Dengesi Bileşenleri

Ortak Yük Dengesi Bileşenleri (tüm dengeleyiciler için ortaktır):

  • Erişim Günlüğü Politikası

— ELB erişim günlükleriniz. Ayarları yapmak için Açıklama'ya gidip "Nitelikleri düzenle" düğmesini seçebilirsiniz:

AWS ELB ile Yük Dengeleme

Daha sonra S3Bucket - Amazon nesne depolamasını belirtiyoruz:

AWS ELB ile Yük Dengeleme

  • plan

— dahili veya harici dengeleyici. Önemli olan, LoadBalancer'ınızın dışarıdan erişilebilmesi için harici adresler alması gerekip gerekmediğidir, yoksa dahili yük dengeleyiciniz mi olabilir;

  • Güvenlik Grupları

— dengeleyiciye erişim kontrolü. Esasen bu üst düzey bir güvenlik duvarıdır.

AWS ELB ile Yük Dengeleme

AWS ELB ile Yük Dengeleme

  • Alt ağlar

— VPC'nizin içindeki alt ağlar (ve buna bağlı olarak kullanılabilirlik bölgesi). Alt ağlar oluşturma sırasında belirtilir. VPC'ler bölgeye göre sınırlıysa Alt Ağlar da kullanılabilirlik bölgelerine göre sınırlanır. Yük Dengeleyici oluştururken, onu en az iki alt ağda oluşturmak daha iyidir (bir Erişilebilirlik Alanında sorun çıkması durumunda yardımcı olur);

  • Dinleyiciler

— dengeleyici protokolleriniz. Daha önce de belirtildiği gibi, Klasik Yük Dengeleyici için HTTP, HTTPS, TCP ve SSL, Ağ Yük Dengeleyici için TCP, UDP ve TLS, Uygulama Yük Dengeleyici için ise HTTP ve HTTPS olabilir.

Klasik Yük Dengeleyici örneği:

AWS ELB ile Yük Dengeleme

Ancak Application Load Balancer'da biraz farklı bir arayüz ve genel olarak farklı bir mantık görüyoruz:

AWS ELB ile Yük Dengeleme

Load Balancer v2 bileşenleri (ALB ve NLB)

Şimdi sürüm 2 dengeleyiciler Application Load Balancer ve Network Load Balancer’a daha yakından bakalım. Bu dengeleyicilerin kendilerine ait bileşen özellikleri bulunmaktadır. Örneğin, Hedef Gruplar gibi bir kavram ortaya çıktı - örnekler (ve işlevler). Bu bileşen sayesinde Hedef Gruplardan hangilerine trafik yönlendirmek istediğimizi belirleme imkanına sahip oluyoruz.

AWS ELB ile Yük Dengeleme

AWS ELB ile Yük Dengeleme

Basit bir ifadeyle Hedef Gruplarda trafiğin geleceği durumları belirtiyoruz. Aynı Classic Load Balancer'da yoğunluğu hemen dengeleyiciye bağlarsanız, Application Load Balancer'da ilk önce şunları yaparsınız:

  • bir Yük Dengeleyici oluşturun;
  • bir Hedef grup oluşturun;
  • gerekli bağlantı noktaları veya Yük Dengeleyici kuralları aracılığıyla gerekli Hedef Gruplara doğrudan;
  • Hedef gruplarda örnekleri atarsınız.

Bu çalışma mantığı daha karmaşık görünebilir ancak aslında daha kullanışlıdır.

Bir sonraki bileşen Dinleyici kuralları (yönlendirme kuralları). Bu yalnızca Application Load Balancer için geçerlidir. Network Load Balancer'da yalnızca bir Dinleyici oluşturursanız ve trafiği belirli bir Hedef gruba gönderiyorsa, Application Load Balancer'da her şey daha eğlenceli ve kullanışlı.

AWS ELB ile Yük Dengeleme

Şimdi bir sonraki bileşen hakkında birkaç kelime söyleyelim - elastik IP (NLB için statik adresler). Dinleyici kuralları yönlendirme kuralları yalnızca Application Load Balancer'ı etkiliyorsa, Elastic IP yalnızca Network Load Balancer'ı etkiledi.

Bir Ağ Yük Dengeleyici oluşturalım:

AWS ELB ile Yük Dengeleme

AWS ELB ile Yük Dengeleme

Ve tam da oluşturma süreci sırasında bize Elastik IP seçme fırsatı verildiğini göreceğiz:

AWS ELB ile Yük Dengeleme

Elastic IP, zaman içinde farklı EC2 bulut sunucularıyla ilişkilendirilebilecek tek bir IP adresi sağlar. Bir EC2 bulut sunucusunun Esnek IP adresi varsa ve bu bulut sunucusu sonlandırılırsa veya durdurulursa yeni bir EC2 bulut sunucusunu hemen bir Elastik IP adresiyle ilişkilendirebilirsiniz. Ancak gerçek EC2 değişse bile uygulamalar hala aynı IP adresini gördüğünden mevcut uygulamanız çalışmayı durdurmayacaktır.

Burada başka bir kullanım durumu Elastik IP'ye neden ihtiyaç duyulduğu konusunda. Bakın, 3 IP adresi görüyoruz, ancak sonsuza kadar burada kalmayacaklar:

AWS ELB ile Yük Dengeleme

Amazon bunları zamanla, belki her 60 saniyede bir değiştirir (ancak pratikte elbette daha az sıklıkla). Bu, IP adreslerinin değişebileceği anlamına gelir. Network Load Balancer durumunda ise yalnızca bir IP adresini bağlayabilir ve bunu kurallarınızda, politikalarınızda vb. belirtebilirsiniz.

AWS ELB ile Yük Dengeleme

Sonuçlara Berabere

ELB, gelen trafiğin birden fazla hedefe (konteynerler, Amazon EC2 bulut sunucuları, IP adresleri ve Lambda işlevleri) otomatik olarak dağıtılmasını sağlar. ELB, trafiği değişen yüklerle hem tek bir Erişilebilirlik Alanında hem de birden fazla Erişilebilirlik Alanında dağıtma yeteneğine sahiptir. Kullanıcı, yüksek kullanılabilirlik, otomatik ölçeklendirme ve iyi koruma sağlayan üç dengeleyici türü arasından seçim yapabilir. Tüm bunlar uygulamalarınızın hata toleransını sağlamak için önemlidir.

Ana avantajlar:

  • yüksek kullanılabilirlik. Hizmet sözleşmesi, yük dengeleyicinin %99,99 kullanılabilirliğini varsayar. Örneğin, birden fazla Erişilebilirlik Alanı, trafiğin yalnızca sağlıklı nesneler tarafından işlenmesini sağlar. Aslında trafiği farklı kullanılabilirlik alanlarındaki sağlıklı hedeflere yönlendirerek tüm bölgedeki yükü dengeleyebilirsiniz;
  • güvenlik. ELB, Amazon VPC ile çalışarak entegre sertifika yönetimi, kullanıcı kimlik doğrulaması ve SSL/TLS şifre çözme gibi çeşitli güvenlik özellikleri sağlar. Hepsi bir arada TLS ayarlarının merkezi ve esnek yönetimini sağlar;
  • esneklik. ELB, ağ trafiğindeki ani değişiklikleri yönetebilir. Otomatik Ölçeklendirme ile derin entegrasyon, yük değiştiğinde manuel müdahale gerektirmeden uygulamaya yeterli kaynak sağlar;
  • esneklik. İstekleri uygulamalarınızın hedeflerine yönlendirmek için IP adreslerini kullanabilirsiniz. Bu, hedef uygulamaları sanallaştırırken esneklik sağlar ve böylece tek bir örnekte birden fazla uygulamayı barındırma olanağı sağlar. Uygulamalar tek bir ağ bağlantı noktasını kullanabildiğinden ve ayrı güvenlik gruplarına sahip olduğundan, örneğin mikro hizmet tabanlı bir mimariye sahip olduğumuzda uygulamalar arasındaki iletişim basitleşir;
  • izleme ve denetim. Amazon CloudWatch özelliklerini kullanarak uygulamaları gerçek zamanlı olarak izleyebilirsiniz. Metriklerden, loglardan, istek takibinden bahsediyoruz. Basit bir ifadeyle, sorunları tanımlayabilecek ve performans darboğazlarını oldukça doğru bir şekilde tespit edebileceksiniz;
  • hibrit yük dengeleme. Aynı yük dengeleyiciyi kullanarak şirket içi kaynaklar ile AWS arasında yük dengeleme yeteneği, şirket içi uygulamaların buluta taşınmasını veya genişletilmesini kolaylaştırır. Bulut kullanılarak arıza yönetimi de basitleştirilmiştir.

Ayrıntılarla ilgileniyorsanız, resmi Amazon web sitesinden birkaç faydalı bağlantı daha:

  1. Elastik Yük Dengeleme.
  2. Elastik Yük Dengeleme yetenekleri.

Kaynak: habr.com

Yorum ekle